Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | PollRange & PollItem: min timeout = 1 sec | Alex Auvolat | 2023-01-11 | 2 | -2/+2 |
| | |||||
* | Correctly return bad requests when seeh marker is invalid | Alex Auvolat | 2023-01-11 | 2 | -11/+5 |
| | |||||
* | Implement PollRange API endpoint | Alex Auvolat | 2023-01-10 | 5 | -17/+86 |
| | |||||
* | K2V: Subscription to ranges of items | Alex Auvolat | 2023-01-10 | 1 | -1/+1 |
| | |||||
* | PutObject: better cleanup on Drop (incl. when request is interrupted in the ↵ | Alex Auvolat | 2023-01-03 | 1 | -34/+59 |
| | | | | middle) | ||||
* | cleanup | Alex Auvolat | 2023-01-03 | 1 | -0/+1 |
| | |||||
* | Bump everything to v0.8.1 | Alex Auvolat | 2023-01-02 | 1 | -6/+6 |
| | |||||
* | 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 |
|/ | |||||
* | 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 |