Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | admin api: increased compatibility for v0/ endpointsv0.9.0-rc2 | Alex Auvolat | 2023-10-05 | 5 | -163/+388 |
| | |||||
* | admin api: remove broken GET /v0/key router rule | Alex Auvolat | 2023-10-05 | 1 | -1/+1 |
| | |||||
* | Merge branch 'main' into nextv0.9.0-rc1 | Alex Auvolat | 2023-10-03 | 1 | -3/+3 |
|\ | |||||
| * | api: allow custom unix bind mode and use 0o220 for admin server | networkException | 2023-10-03 | 1 | -1/+1 |
| | | |||||
| * | everywhere: support unix sockets when binding in various places | networkException | 2023-09-29 | 1 | -2/+2 |
| | | | | | | | | | | this patch implements binding to paths as a unix socket for generic server and web server. | ||||
* | | Merge branch 'main' into nextv0.9.0-beta1 | Alex Auvolat | 2023-08-29 | 2 | -21/+55 |
|\| | |||||
| * | admin api: refactor caddy check api code | Alex Auvolat | 2023-08-28 | 1 | -17/+22 |
| | | |||||
| * | support {s3,web}.root_domains in /check endpointbug/support-root-domains-on-demand-tls | Quentin Dufour | 2023-08-08 | 2 | -12/+41 |
| | | |||||
* | | admin docs: reformatting, key admin: add check | Alex Auvolat | 2023-06-14 | 2 | -10/+11 |
| | | |||||
* | | admin: uniformize layout api and improve code | Alex Auvolat | 2023-06-14 | 2 | -42/+57 |
| | | |||||
* | | admin and cli: hide secret keys unless asked | Alex Auvolat | 2023-06-14 | 3 | -18/+39 |
| | | |||||
* | | admin api: move all endpoints to v1/ by default (v0/ still supported) | Alex Auvolat | 2023-06-14 | 1 | -22/+22 |
| | | |||||
* | | admin api: make name optionnal for CreateKey | Alex Auvolat | 2023-06-14 | 1 | -2/+2 |
| | | |||||
* | | admin api: switch GetClusterHealth to camelcase (fix #381 again) | Alex Auvolat | 2023-06-14 | 2 | -1/+29 |
| | | |||||
* | | admin api: change cluster status/layout to use lists and not maps (fix #377) | Alex Auvolat | 2023-06-14 | 2 | -36/+95 |
| | | |||||
* | | Merge branch 'main' into next | Alex Auvolat | 2023-06-13 | 1 | -1/+1 |
|\| | |||||
| * | *: apply clippy recommendations. | Jonathan Davies | 2023-05-09 | 3 | -5/+5 |
| | | |||||
* | | admin API: add missing camelCase conversions (fix #381) | Alex Auvolat | 2023-06-13 | 2 | -0/+7 |
| | | |||||
* | | comments and clippy lint fixes | Alex Auvolat | 2023-06-09 | 2 | -4/+4 |
| | | |||||
* | | fix mpu counter (add missing workers) and report info at appropriate places | Alex Auvolat | 2023-06-09 | 1 | -6/+18 |
| | | |||||
* | | Merge branch 'main' into next | Alex Auvolat | 2023-04-25 | 4 | -2/+63 |
|\| | |||||
| * | admin/cluster.rs: Added rust_version. | Jonathan Davies | 2023-03-10 | 1 | -0/+2 |
| | | |||||
| * | Improved bucket authorization response strings. | Jonathan Davies | 2023-01-29 | 1 | -6/+10 |
| | | |||||
| * | api_server.rs: Adapted to use query string per Caddy upstream change. | Jonathan Davies | 2023-01-29 | 1 | -15/+19 |
| | | |||||
| * | More clippy fixes | Alex Auvolat | 2023-01-26 | 2 | -3/+3 |
| | | |||||
| * | Implemented website hosting authorization endpoint. | Jonathan Davies | 2023-01-13 | 2 | -0/+51 |
| | | | | | | | | Fixes: #468 | ||||
* | | Merge branch 'main' into next | Alex Auvolat | 2023-01-04 | 1 | -6/+9 |
|\| | |||||
| * | Fix router keyword handling (fix #442)router-keywords-fix | Alex Auvolat | 2022-12-12 | 1 | -6/+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 | 2 | -6/+6 |
| |\ | |||||
| * | | 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 |
| |/ |/| | |||||
* | | Use status code 204 No Content for empty responses | Tobias Krischer | 2022-10-17 | 2 | -6/+6 |
|/ | |||||
* | Initialize metrics exporter earlier (fix #389)fix-metrics | Alex Auvolat | 2022-09-20 | 1 | -2/+5 |
| | |||||
* | Move version back into utilimprove-deps | Alex Auvolat | 2022-09-07 | 1 | -2/+2 |
| | |||||
* | Make all HTTP services optionnal | Alex Auvolat | 2022-09-07 | 1 | -9/+10 |
| | |||||
* | 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 |
| | |||||
* | Allow building without Prometheus exporter (/metrics endpoint) | Jakub Jirutka | 2022-09-06 | 1 | -22/+33 |
| | | | | | | prometheus and opentelemetry-prometheus add 7 extra dependencies in total and increases the size of the garage binary by ~7 % (with fat LTO). | ||||
* | improve internal item counter mechanisms and implement bucket quotas (#326) | Alex | 2022-06-15 | 3 | -41/+70 |
| | | | | | | | | | | | | | | | | - [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> | ||||
* | 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> |