Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | First implementation of K2V (#293) | Alex | 2022-05-10 | 1 | -170/+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> | ||||
* | Support STREAMING-AWS4-HMAC-SHA256-PAYLOAD (#64) (#156) | Jill | 2022-01-17 | 1 | -1/+4 |
| | | | | | | | | Closes #64. Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/156 Co-authored-by: Jill <kokakiwi@deuxfleurs.fr> Co-committed-by: Jill <kokakiwi@deuxfleurs.fr> | ||||
* | Fix some error codes | Alex Auvolat | 2022-01-05 | 1 | -2/+2 |
| | |||||
* | New model for buckets | Alex Auvolat | 2022-01-04 | 1 | -7/+7 |
| | |||||
* | Fix clippy lints (fix #121) | Alex Auvolat | 2021-10-26 | 1 | -2/+3 |
| | |||||
* | Fix HTTP return code for DeleteObject (fix #98) | Alex Auvolat | 2021-10-11 | 1 | -1/+2 |
| | |||||
* | Improved XML serializationbetter_xml | Alex Auvolat | 2021-05-06 | 1 | -36/+20 |
| | | | | | | - Use quick_xml and serde for all XML response returned by the S3 API. - Include tests for all structs used to generate XML - Remove old manual XML escaping function which was unsafe | ||||
* | rename types to CamelCase | Trinity Pointard | 2021-05-03 | 1 | -1/+1 |
| | |||||
* | fix clippy warnings on api | Trinity Pointard | 2021-05-03 | 1 | -4/+6 |
| | |||||
* | Many S3 compatibility improvements:v0.2.1.5 | Alex Auvolat | 2021-04-28 | 1 | -3/+20 |
| | | | | | | | | - return XML errors - implement AuthorizationHeaderMalformed error to redirect clients to correct location (used by minio client) - implement GetBucketLocation - fix DeleteObjects XML parsing and response | ||||
* | Small fixes | Alex Auvolat | 2021-03-15 | 1 | -1/+1 |
| | |||||
* | Time and metadata improvements | Alex Auvolat | 2021-03-15 | 1 | -0/+1 |
| | |||||
* | Fix race condition | Alex Auvolat | 2021-03-15 | 1 | -4/+4 |
| | |||||
* | Cargo fmt | Alex Auvolat | 2021-02-23 | 1 | -2/+2 |
| | |||||
* | Add verification of part numbers in CompleteMultipartUpload (WIP #30) | Alex Auvolat | 2021-02-20 | 1 | -16/+14 |
| | |||||
* | add application/xml header and missing xml escapes | Alex Auvolat | 2021-02-19 | 1 | -3/+5 |
| | |||||
* | Replace with option syntaxic sugar | Quentin | 2020-11-11 | 1 | -16/+5 |
| | |||||
* | Refactor error management in API parterror-refactoring | Alex Auvolat | 2020-11-08 | 1 | -3/+2 |
| | |||||
* | cargo fmt | Alex Auvolat | 2020-07-08 | 1 | -6/+4 |
| | |||||
* | Migrate S3 api to use new model | Alex Auvolat | 2020-07-08 | 1 | -5/+6 |
| | |||||
* | Apply cargo fmt; add trace output when request signature is bad | Alex Auvolat | 2020-07-08 | 1 | -3/+1 |
| | |||||
* | Update to Hyper 0.13.6 that accepts non-Sync streams in wrap_stream. | Alex Auvolat | 2020-07-07 | 1 | -6/+5 |
| | | | | 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 | -69/+100 |
| | |||||
* | Implement DeleteObjects | Alex Auvolat | 2020-05-01 | 1 | -8/+100 |
| | |||||
* | Work on API | Alex Auvolat | 2020-04-28 | 1 | -0/+54 |