Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | First implementation of K2V (#293) | Alex | 2022-05-10 | 1 | -461/+0 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | **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> | ||||
* | Fix partnumber | Alex Auvolat | 2022-01-25 | 1 | -91/+117 |
| | |||||
* | Implement part_number for GetObject | Alex Auvolat | 2022-01-24 | 1 | -73/+146 |
| | |||||
* | Multipart improvements | Alex Auvolat | 2022-01-24 | 1 | -24/+71 |
| | | | | | - support part_number for HeadObject - add checks in complete_multipart_upload | ||||
* | Fix some error codes | Alex Auvolat | 2022-01-05 | 1 | -7/+7 |
| | |||||
* | New model for buckets | Alex Auvolat | 2022-01-04 | 1 | -4/+5 |
| | |||||
* | Improved handling of HTTP ranges | trinity-1686a | 2021-11-29 | 1 | -8/+5 |
| | | | | | | | | | | | - correct HTTP code when range syntax is invalid (fix #140) - when multiple ranges are given, simply ignore and send whole file Co-authored-by: Trinity Pointard <trinity.pointard@gmail.com> Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/157 Reviewed-by: Alex <alex@adnab.me> Co-authored-by: trinity-1686a <trinity.pointard@gmail.com> Co-committed-by: trinity-1686a <trinity.pointard@gmail.com> | ||||
* | Fix clippy lints (fix #121) | Alex Auvolat | 2021-10-26 | 1 | -5/+5 |
| | |||||
* | fix clippy warnings on api | Trinity Pointard | 2021-05-03 | 1 | -10/+10 |
| | |||||
* | document api crate | Trinity Pointard | 2021-04-27 | 1 | -1/+4 |
| | |||||
* | Add trinity's comment in the code | Alex Auvolat | 2021-03-18 | 1 | -0/+5 |
| | |||||
* | add support for caching headers | Trinity Pointard | 2021-03-18 | 1 | -1/+44 |
| | |||||
* | Refactor model stuff, including cleaner CRDTs | Alex Auvolat | 2021-03-10 | 1 | -5/+7 |
| | |||||
* | Fix #28, extra headers being ignored (because of profound stupidity) | Alex Auvolat | 2021-02-19 | 1 | -0/+2 |
| | |||||
* | Propose ETag fixbug/etag | Alex Auvolat | 2020-12-05 | 1 | -1/+4 |
| | |||||
* | Reformulate patch | Alex Auvolat | 2020-12-05 | 1 | -5/+7 |
| | |||||
* | Fix Content-Lengthbug/content-range | Quentin | 2020-12-05 | 1 | -4/+5 |
| | |||||
* | Content-range fix | Alex Auvolat | 2020-12-05 | 1 | -15/+29 |
| | |||||
* | Replace with option syntaxic sugar | Quentin | 2020-11-11 | 1 | -24/+11 |
| | |||||
* | Refactor error management in API parterror-refactoring | Alex Auvolat | 2020-11-08 | 1 | -8/+7 |
| | |||||
* | Validate content MD5 and SHA256 sums for PutObject and UploadPart | Alex Auvolat | 2020-07-15 | 1 | -4/+4 |
| | |||||
* | More headers taken into account | Alex Auvolat | 2020-07-09 | 1 | -3/+8 |
| | |||||
* | cargo fmt | Alex Auvolat | 2020-07-08 | 1 | -19/+34 |
| | |||||
* | Migrate S3 api to use new model | Alex Auvolat | 2020-07-08 | 1 | -24/+35 |
| | |||||
* | Apply cargo fmt; add trace output when request signature is bad | Alex Auvolat | 2020-07-08 | 1 | -6/+4 |
| | |||||
* | Update to Hyper 0.13.6 that accepts non-Sync streams in wrap_stream. | Alex Auvolat | 2020-07-07 | 1 | -12/+12 |
| | | | | Simplifies code and makes it possible to publish on crates.io | ||||
* | Rename garage_core to garage_model | Alex Auvolat | 2020-07-07 | 1 | -2/+2 |
| | |||||
* | Implement HTTP ranges in get | Alex Auvolat | 2020-05-04 | 1 | -1/+95 |
| | |||||
* | Implement multipart uploads | Alex Auvolat | 2020-04-26 | 1 | -1/+3 |
| | |||||
* | Prepare for multipart uploads | Alex Auvolat | 2020-04-26 | 1 | -2/+2 |
| | |||||
* | Some basic S3 functionnality | Alex Auvolat | 2020-04-24 | 1 | -0/+131 |