Tag:
Branch:
Tree:
main
api-v1
bucket-cors-more
bug/check_static
build-convert-db
dangerous/no-fsync
db-debug-log
demonstrate-cargo2nix-bug
dev0.7.3
doc/benchmarks
feat/website-redir
jepsen
k2v-watch-range
main
main-0.8.x
nlnet-task3
old-main
optimal-layout
pnet_datalink-0.33.0
poc/nomad-ci
smithy2
storage-optimizations
sync-08-09
test-ci-wait
test/compilation
windows
0.1.0
0.1.0b
0.1.1
0.1.1b
0.4-alpha
0.4-beta
format_table-v0.1.0
format_table-v0.1.1
v0.2.0
v0.2.1
v0.2.1.5
v0.3.0
v0.3.0.1
v0.3.0.2
v0.4-rc1
v0.4-rc2
v0.4.0
v0.5-beta1
v0.5.0
v0.5.0.1
v0.5.1
v0.6.0
v0.6.0-rc1
v0.6.1
v0.7.0
v0.7.0-rc1
v0.7.1
v0.7.1-admin-k2v
v0.7.1-admin-k2v-2
v0.7.1-k2v
v0.7.2
v0.7.2+ci-test-version
v0.7.2-k2v
v0.7.2.1
v0.7.2_ci-test-2
v0.7.3
v0.7.3-beta1
v0.7.3-beta2
v0.7.99-k2v
v0.7.99.1-k2v
v0.7.99.2-k2v
v0.7.99.3-k2v
v0.8.0
v0.8.0-beta1
v0.8.0-beta1-k2v
v0.8.0-beta2
v0.8.0-beta2-k2v
v0.8.0-dangerous-no-fsync
v0.8.0-rc1
v0.8.0-rc2
v0.8.1
v0.8.2
v0.8.3
v0.8.3-rc1
v0.8.4
v0.9.0
v0.9.0-beta1
v0.9.0-beta2
v0.9.0-beta3
v0.9.0-beta4
v0.9.0-rc1
v0.9.0-rc2
${ noResults }
1 Commits (main)
Author | SHA1 | Message | Date |
---|---|---|---|
Alex | 5768bf3622 |
First implementation of K2V (#293)
**Specification:** View spec at [this URL](https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/k2v/doc/drafts/k2v-spec.md) - [x] Specify the structure of K2V triples - [x] Specify the DVVS format used for causality detection - [x] Specify the K2V index (just a counter of number of values per partition key) - [x] Specify single-item endpoints: ReadItem, InsertItem, DeleteItem - [x] Specify index endpoint: ReadIndex - [x] Specify multi-item endpoints: InsertBatch, ReadBatch, DeleteBatch - [x] Move to JSON objects instead of tuples - [x] Specify endpoints for polling for updates on single values (PollItem) **Implementation:** - [x] Table for K2V items, causal contexts - [x] Indexing mechanism and table for K2V index - [x] Make API handlers a bit more generic - [x] K2V API endpoint - [x] K2V API router - [x] ReadItem - [x] InsertItem - [x] DeleteItem - [x] PollItem - [x] ReadIndex - [x] InsertBatch - [x] ReadBatch - [x] DeleteBatch **Testing:** - [x] Just a simple Python script that does some requests to check visually that things are going right (does not contain parsing of results or assertions on returned values) - [x] Actual tests: - [x] Adapt testing framework - [x] Simple test with InsertItem + ReadItem - [x] Test with several Insert/Read/DeleteItem + ReadIndex - [x] Test all combinations of return formats for ReadItem - [x] Test with ReadBatch, InsertBatch, DeleteBatch - [x] Test with PollItem - [x] Test error codes - [ ] Fix most broken stuff - [x] test PollItem broken randomly - [x] when invalid causality tokens are given, errors should be 4xx not 5xx **Improvements:** - [x] Descending range queries - [x] Specify - [x] Implement - [x] Add test - [x] Batch updates to index counter - [x] Put K2V behind `k2v` feature flag Co-authored-by: Alex Auvolat <alex@adnab.me> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/293 Co-authored-by: Alex <alex@adnab.me> Co-committed-by: Alex <alex@adnab.me> |
2 years ago |