endpointservices / mps3 Goto Github PK
View Code? Open in Web Editor NEWInfraless Database over any s3 storage API.
License: MIT License
Infraless Database over any s3 storage API.
License: MIT License
The minio test do not run reliably
Shoudl work with R2 but not tested yet
A subscribe keeps a key hot, so we don't need to poll for that case.
AWS conformance test is looking back too much. Seems like it is accessing very old files and not auto-cleaning, probably because the manifest key format changed.
API docs plz
a participant can write into the future, making a local write mask the write until committed, when it then pops back into existence as the commited local write ends up temporally behind the existing future record. The invariant that local writes will end up at the head of the log is broken.
Its a bit overfitted to the KV of JSON in s3 use-case, we should allow content-types, query ranges and arbitrary web-urls under a common logical keyspace.
We should serialize state for fast boot and for working offline
GET should include a batch get which is a consistent snapshot. Would help testing too (e.g. parrallel puts)
We occasionally fail causaility. whats the issue?
for localfirst we don't need a poll file and the optionality is easier explained
None of the XML parsers are consistent across JS runtimes. We could use regex instead as the problem is fairly bounded
https://github.com/endpointservices/mps3/blob/main/docs/S3%20XML%20Escaping%20Cases.md
This would bring us closer to supporting more runtimes (like CF workers)
switch to aws4fetch
For some proxies it would be useful to mix in cookies, and auth headers
sha256 checksum is calculated incorrectly, workaround is "useChecksum: false" in options
To build towards merge functionality, we should be able to conditionally write a document if there have been no changes to some other keys
We fetch the same immutable resources. Lets put an LRU in there
To help people connect existing content into the database, we should support import
ing a key (just a manifest update). The inverse is forgetting a key, and to help archiving keys we should have a move.
We have no way of enumerating what is in the DB
The manifest leaves a trail, it should be automatically tidied up
Content and manifest could be offline first, there should be no need to configure an s3 client. Also the credentials for each manifest may be different.
If content is deleted behind mps3's back, the key should disappear from the manifest when detected.
We currently have to find a place to look forward from, it be more sympathetic if we do timestamps in reverse order
We tunred htis off during refactoring but its quite useful
we should optimize our bandwidth costs
its not super clear how to secure this. We should provide examples
Randomized testing is showing failures of the causal consistency checks. There seems to be a few race conditions when fetching content during notify.
Maybe prefix escaping?
Currently the client seems to read the whole log on startup, but this is a bug.
We can use the AWS created at timestamp to validate the manifest timestamp on read.
Now the algorithm has stabilised we should write it down
We should log in a structured way, maybe something like zipkin with a trace_id passed through on reads which can be added on puts for end-to-end tracing across clients.
Surfaced using s3 as the upstream, might be just that, throws KeyNotFound which list object cannot parse.
We have some bad logic for avoiding double firing local writes which ends up masking true negatively inhibiting things that should fire. (its got a test case "Read own write twice")
We should be able to switch to offline mode dynamically. This should terminate any hanging GET requests and throw Offline exceptions.
currently the config enforces credentials
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.