S3-compatible object store for small self-hosted geo-distributed deployments https://garagehq.deuxfleurs.fr/
Go to file
Alex fa13cf6996 Repair: do not mark deleted when upstream object is not found
With the previous behaviour, repairing could see some data as absent
and decide that the object or version was deleted,
thus going on to delete the version and blocks.
In the case where read_quorum + write_quorum <= replication_factor
however, entries may not yet be returned by the get, thus data would
have been deleted that should hot have been. The new behavior is more
cautious and just skips the entry when the warning is emitted.
2020-05-04 13:30:42 +00:00
src Repair: do not mark deleted when upstream object is not found 2020-05-04 13:30:42 +00:00
.gitignore Work on API 2020-04-28 10:18:14 +00:00
Cargo.lock Implement HTTP ranges in get 2020-05-04 13:09:23 +00:00
Cargo.toml Split code for modular compilation 2020-04-24 10:10:01 +00:00
LICENSE First commit: skeleton for something great 2020-04-05 23:33:42 +02:00
Makefile Implement multipart uploads 2020-04-26 20:39:32 +00:00
README.md Make the repair command accept subcommands to not do everything all the time 2020-04-21 16:40:17 +00:00
TODO update todo 2020-04-26 20:50:23 +00:00
genkeys.sh Cleanup 2020-04-12 19:18:31 +02:00
rustfmt.toml Fix the Sync issue. Details: 2020-04-10 22:01:48 +02:00
test_delete.sh Do not insert deletion marker if there is no object to delete 2020-04-21 14:33:12 +00:00
test_read.sh More aggressive sync timings & improve other stuff 2020-04-19 17:59:59 +00:00
test_write.sh Better concurrency: 2020-04-22 16:51:52 +00:00

README.md

Garage

THIS IS ALL WORK IN PROGRESS. NOTHING TO SEE YET BUT THANKS FOR YOUR INTEREST.

Garage implements an S3-compatible object store with high resiliency to network failures, machine failure, and sysadmin failure.

To log:

RUST_LOG=garage=debug cargo run --release -- server -c config_file.toml

What to repair

  • tables: to do a full sync of metadata, should not be necessary because it is done every hour by the system
  • versions and block_refs: very time consuming, usefull if deletions have not been propagated, improves garbage collection
  • blocks: very usefull to resync/rebalance blocks betweeen nodes