Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | Merge pull request 'Fix router keyword handling (fix #442)' (#446) from ↵ | Alex | 2022-12-15 | 4 | -149/+161 | |
| |\ | | | | | | | | | | | | | | | | router-keywords-fix into main Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/446 | |||||
| | * | Fix router keyword handling (fix #442)router-keywords-fix | Alex Auvolat | 2022-12-12 | 4 | -149/+161 | |
| | | | ||||||
| * | | Properly enforce allow_create_bucketfix-allow-create-bucket | Alex Auvolat | 2022-12-12 | 1 | -0/+9 | |
| |/ | ||||||
* | | Merge commit 'ec12d6c' into next | Alex Auvolat | 2022-12-11 | 1 | -6/+8 | |
|\ \ | |/ |/| | ||||||
| * | Fix HTTP return code | Alex Auvolat | 2022-11-08 | 1 | -1/+1 | |
| | | ||||||
| * | Return more info when layout's .check() fails, fix compilation, fix test | Alex Auvolat | 2022-11-08 | 1 | -5/+2 | |
| | | ||||||
| * | Style improvements | Alex Auvolat | 2022-11-07 | 1 | -3/+3 | |
| | | ||||||
| * | Merge branch 'main' into optimal-layout | Alex Auvolat | 2022-11-07 | 5 | -9/+9 | |
| |\ | ||||||
| * | | cargo fmt | Mendes | 2022-10-10 | 1 | -4/+4 | |
| | | | ||||||
| * | | modifications in several files to : | Mendes | 2022-10-05 | 1 | -1/+6 | |
| | | | | | | | | | | | | | | | | | | - have consistent error return types - store the zone redundancy in a Lww - print the error and message in the CLI (TODO: for the server Api, should msg be returned in the body response?) | |||||
* | | | simplifyadmin-health-api | Alex Auvolat | 2022-12-11 | 1 | -8/+1 | |
| | | | ||||||
* | | | Always return 200 OK on /v0/health, reinstate admin api doc as draft and ↵ | Alex Auvolat | 2022-12-11 | 1 | -6/+1 | |
| | | | | | | | | | | | | complete it | |||||
* | | | Separate /health (simple text answer) and /v0/health (full json answer, ↵ | Alex Auvolat | 2022-12-05 | 3 | -48/+33 | |
| | | | | | | | | | | | | authenticated) | |||||
* | | | Refactor health check and add ability to return it in json | Alex Auvolat | 2022-12-05 | 2 | -85/+55 | |
| | | | ||||||
* | | | Implement /health admin API endpoint to check node health | Alex Auvolat | 2022-12-05 | 2 | -0/+98 | |
| | | | ||||||
* | | | Fix typo in admin API on BucketInfo | Quentin Dufour | 2022-11-11 | 1 | -2/+2 | |
| |/ |/| | ||||||
* | | Merge pull request 'Use status code 204 No Content for empty responses' ↵ | Alex | 2022-10-18 | 4 | -8/+8 | |
|\ \ | | | | | | | | | | | | | | | | (#403) from tobikris/garage:http-no-content into main Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/403 | |||||
| * | | Use status code 204 No Content for empty responses | Tobias Krischer | 2022-10-17 | 4 | -8/+8 | |
| |/ | ||||||
* / | cargo2nix unstable (patched), rust 1.63.0, nixpkgs 22.05 (32-bit builds are ↵ | Alex Auvolat | 2022-10-14 | 1 | -1/+1 | |
|/ | | | | broken) | |||||
* | Fix span name for api server requests | Alex Auvolat | 2022-09-26 | 1 | -1/+5 | |
| | ||||||
* | Initialize metrics exporter earlier (fix #389)fix-metrics | Alex Auvolat | 2022-09-20 | 1 | -2/+5 | |
| | ||||||
* | Faster GetObject workflow for getting entire objectsfaster-get | Alex Auvolat | 2022-09-19 | 2 | -35/+52 | |
| | ||||||
* | Properly return HTTP 204 when deleting non-existent object (fix #227)deleteobject-204 | Alex Auvolat | 2022-09-14 | 1 | -8/+7 | |
| | ||||||
* | Fix clippy lint that says we should implement Eq | Alex Auvolat | 2022-09-13 | 2 | -23/+23 | |
| | ||||||
* | Remove/change println! in server code (fix #358) | Alex Auvolat | 2022-09-13 | 2 | -2/+0 | |
| | ||||||
* | Use streaming block API for get with Range requestsnetapp-stream-body | Alex Auvolat | 2022-09-13 | 1 | -33/+60 | |
| | ||||||
* | Merge branch 'lx-perf-improvements' into netapp-stream-body | Alex Auvolat | 2022-09-08 | 5 | -59/+65 | |
|\ | ||||||
| * | Merge branch 'main' into lx-perf-improvements | Alex Auvolat | 2022-09-08 | 5 | -59/+65 | |
| |\ | ||||||
| | * | Move version back into utilimprove-deps | Alex Auvolat | 2022-09-07 | 1 | -2/+2 | |
| | | | ||||||
| | * | Make all HTTP services optionnal | Alex Auvolat | 2022-09-07 | 3 | -27/+20 | |
| | | | ||||||
| | * | Report build features in garage --help | Alex Auvolat | 2022-09-07 | 1 | -0/+2 | |
| | | | ||||||
| | * | Move GIT_VERSION injection later in build chain to reduce build times | Alex Auvolat | 2022-09-07 | 1 | -1/+1 | |
| | | | ||||||
| | * | Remove opentelemetry-otlp dep in api/ | Alex Auvolat | 2022-09-06 | 1 | -2/+0 | |
| | | | ||||||
| | * | Bump versions to 0.8.0 (compatibility is broken already) | Alex Auvolat | 2022-09-06 | 1 | -6/+6 | |
| | | | ||||||
| | * | Allow building without Prometheus exporter (/metrics endpoint) | Jakub Jirutka | 2022-09-06 | 2 | -24/+36 | |
| | | | | | | | | | | | | | | | | | | prometheus and opentelemetry-prometheus add 7 extra dependencies in total and increases the size of the garage binary by ~7 % (with fat LTO). | |||||
| | * | Make OTLP exporter optional via feature "telemetry-otlp" | Jakub Jirutka | 2022-09-06 | 1 | -1/+2 | |
| | | | | | | | | | | | | | | | opentelemetry-otlp add 48 (!) extra dependencies and increases the size of the garage binary by ~11 % (with fat LTO). | |||||
* | | | Faster copy, better get error message | Alex Auvolat | 2022-09-06 | 2 | -9/+7 | |
| | | | ||||||
* | | | Make use of BytesBuf from new Netapp | Alex Auvolat | 2022-09-02 | 1 | -33/+10 | |
| | | | ||||||
* | | | Update to Netapp with OrderTag support and exploit OrderTags | Alex Auvolat | 2022-09-01 | 2 | -8/+23 | |
| | | | ||||||
* | | | Fix clippy | Alex Auvolat | 2022-07-29 | 2 | -5/+1 | |
| | | | ||||||
* | | | Use streaming in block manager | Alex Auvolat | 2022-07-29 | 2 | -13/+28 | |
|/ / | ||||||
* | | fix clippy | Alex Auvolat | 2022-07-29 | 1 | -6/+1 | |
| | | ||||||
* | | Faster chunker | Alex Auvolat | 2022-07-29 | 1 | -10/+32 | |
| | | ||||||
* | | More make clippy happy | Alex Auvolat | 2022-07-29 | 1 | -2/+0 | |
| | | ||||||
* | | Performance improvements: | Alex Auvolat | 2022-07-29 | 1 | -5/+25 | |
| | | | | | | | | | | - reduce contention on mutation_lock by having 256 of them - better lmdb defaults | |||||
* | | Compute hashes on dedicated threads | Alex Auvolat | 2022-07-29 | 4 | -24/+35 | |
|/ | ||||||
* | improve internal item counter mechanisms and implement bucket quotas (#326) | Alex | 2022-06-15 | 7 | -75/+186 | |
| | | | | | | | | | | | | | | | | - [x] Refactoring of internal counting API - [x] Repair procedure for counters (it's an offline procedure!!!) - [x] New counter for objects in buckets - [x] Add quotas to buckets struct - [x] Add CLI to manage bucket quotas - [x] Add admin API to manage bucket quotas - [x] Apply quotas by adding checks on put operations - [x] Proof-read Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/326 Co-authored-by: Alex <alex@adnab.me> Co-committed-by: Alex <alex@adnab.me> | |||||
* | Send CORS headers for all requestsbug/cors | Quentin Dufour | 2022-06-13 | 1 | -9/+2 | |
| | ||||||
* | Abstract database behind generic interface and implement alternative drivers ↵ | Alex | 2022-06-08 | 1 | -0/+2 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#322) - [x] Design interface - [x] Implement Sled backend - [x] Re-implement the SledCountedTree hack ~~on Sled backend~~ on all backends (i.e. over the abstraction) - [x] Convert Garage code to use generic interface - [x] Proof-read converted Garage code - [ ] Test everything well - [x] Implement sqlite backend - [x] Implement LMDB backend - [ ] (Implement Persy backend?) - [ ] (Implement other backends? (like RocksDB, ...)) - [x] Implement backend choice in config file and garage server module - [x] Add CLI for converting between DB formats - Exploit the new interface to put more things in transactions - [x] `.updated()` trigger on Garage tables Fix #284 **Bugs** - [x] When exporting sqlite, trees iterate empty?? - [x] LMDB doesn't work **Known issues for various back-ends** - Sled: - Eats all my RAM and also all my disk space - `.len()` has to traverse the whole table - Is actually quite slow on some operations - And is actually pretty bad code... - Sqlite: - Requires a lock to be taken on all operations. The lock is also taken when iterating on a table with `.iter()`, and the lock isn't released until the iterator is dropped. This means that we must be VERY carefull to not do anything else inside a `.iter()` loop or else we will have a deadlock! Most such cases have been eliminated from the Garage codebase, but there might still be some that remain. If your Garage-over-Sqlite seems to hang/freeze, this is the reason. - (adapter uses a bunch of unsafe code) - Heed (LMDB): - Not suited for 32-bit machines as it has to map the whole DB in memory. - (adpater uses a tiny bit of unsafe code) **My recommendation:** avoid 32-bit machines and use LMDB as much as possible. **Converting databases** is actually quite easy. For example from Sled to LMDB: ```bash cd src/db cargo run --features cli --bin convert -- -i path/to/garage/meta/db -a sled -o path/to/garage/meta/db.lmdb -b lmdb ``` Then, just add this to your `config.toml`: ```toml db_engine = "lmdb" ``` Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/322 Co-authored-by: Alex <alex@adnab.me> Co-committed-by: Alex <alex@adnab.me> | |||||
* | Fix Content-Type headers for {admin,k2v} errors and admin responsesfix/admin-api-content-type | Alex Auvolat | 2022-05-25 | 8 | -43/+30 | |
| | | | | Fix #315 |