aboutsummaryrefslogtreecommitdiff
path: root/src/api
Commit message (Collapse)AuthorAgeFilesLines
...
| * Merge pull request 'Fix router keyword handling (fix #442)' (#446) from ↵Alex2022-12-154-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-fixAlex Auvolat2022-12-124-149/+161
| | |
| * | Properly enforce allow_create_bucketfix-allow-create-bucketAlex Auvolat2022-12-121-0/+9
| |/
* | Merge commit 'ec12d6c' into nextAlex Auvolat2022-12-111-6/+8
|\ \ | |/ |/|
| * Fix HTTP return codeAlex Auvolat2022-11-081-1/+1
| |
| * Return more info when layout's .check() fails, fix compilation, fix testAlex Auvolat2022-11-081-5/+2
| |
| * Style improvementsAlex Auvolat2022-11-071-3/+3
| |
| * Merge branch 'main' into optimal-layoutAlex Auvolat2022-11-075-9/+9
| |\
| * | cargo fmtMendes2022-10-101-4/+4
| | |
| * | modifications in several files to :Mendes2022-10-051-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-apiAlex Auvolat2022-12-111-8/+1
| | |
* | | Always return 200 OK on /v0/health, reinstate admin api doc as draft and ↵Alex Auvolat2022-12-111-6/+1
| | | | | | | | | | | | complete it
* | | Separate /health (simple text answer) and /v0/health (full json answer, ↵Alex Auvolat2022-12-053-48/+33
| | | | | | | | | | | | authenticated)
* | | Refactor health check and add ability to return it in jsonAlex Auvolat2022-12-052-85/+55
| | |
* | | Implement /health admin API endpoint to check node healthAlex Auvolat2022-12-052-0/+98
| | |
* | | Fix typo in admin API on BucketInfoQuentin Dufour2022-11-111-2/+2
| |/ |/|
* | Merge pull request 'Use status code 204 No Content for empty responses' ↵Alex2022-10-184-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 responsesTobias Krischer2022-10-174-8/+8
| |/
* / cargo2nix unstable (patched), rust 1.63.0, nixpkgs 22.05 (32-bit builds are ↵Alex Auvolat2022-10-141-1/+1
|/ | | | broken)
* Fix span name for api server requestsAlex Auvolat2022-09-261-1/+5
|
* Initialize metrics exporter earlier (fix #389)fix-metricsAlex Auvolat2022-09-201-2/+5
|
* Faster GetObject workflow for getting entire objectsfaster-getAlex Auvolat2022-09-192-35/+52
|
* Properly return HTTP 204 when deleting non-existent object (fix #227)deleteobject-204Alex Auvolat2022-09-141-8/+7
|
* Fix clippy lint that says we should implement EqAlex Auvolat2022-09-132-23/+23
|
* Remove/change println! in server code (fix #358)Alex Auvolat2022-09-132-2/+0
|
* Use streaming block API for get with Range requestsnetapp-stream-bodyAlex Auvolat2022-09-131-33/+60
|
* Merge branch 'lx-perf-improvements' into netapp-stream-bodyAlex Auvolat2022-09-085-59/+65
|\
| * Merge branch 'main' into lx-perf-improvementsAlex Auvolat2022-09-085-59/+65
| |\
| | * Move version back into utilimprove-depsAlex Auvolat2022-09-071-2/+2
| | |
| | * Make all HTTP services optionnalAlex Auvolat2022-09-073-27/+20
| | |
| | * Report build features in garage --helpAlex Auvolat2022-09-071-0/+2
| | |
| | * Move GIT_VERSION injection later in build chain to reduce build timesAlex Auvolat2022-09-071-1/+1
| | |
| | * Remove opentelemetry-otlp dep in api/Alex Auvolat2022-09-061-2/+0
| | |
| | * Bump versions to 0.8.0 (compatibility is broken already)Alex Auvolat2022-09-061-6/+6
| | |
| | * Allow building without Prometheus exporter (/metrics endpoint)Jakub Jirutka2022-09-062-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 Jirutka2022-09-061-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 messageAlex Auvolat2022-09-062-9/+7
| | |
* | | Make use of BytesBuf from new NetappAlex Auvolat2022-09-021-33/+10
| | |
* | | Update to Netapp with OrderTag support and exploit OrderTagsAlex Auvolat2022-09-012-8/+23
| | |
* | | Fix clippyAlex Auvolat2022-07-292-5/+1
| | |
* | | Use streaming in block managerAlex Auvolat2022-07-292-13/+28
|/ /
* | fix clippyAlex Auvolat2022-07-291-6/+1
| |
* | Faster chunkerAlex Auvolat2022-07-291-10/+32
| |
* | More make clippy happyAlex Auvolat2022-07-291-2/+0
| |
* | Performance improvements:Alex Auvolat2022-07-291-5/+25
| | | | | | | | | | - reduce contention on mutation_lock by having 256 of them - better lmdb defaults
* | Compute hashes on dedicated threadsAlex Auvolat2022-07-294-24/+35
|/
* improve internal item counter mechanisms and implement bucket quotas (#326)Alex2022-06-157-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/corsQuentin Dufour2022-06-131-9/+2
|
* Abstract database behind generic interface and implement alternative drivers ↵Alex2022-06-081-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-typeAlex Auvolat2022-05-258-43/+30
| | | | Fix #315