Comments (2)
Other CRDT libraries garbage collection and tombstone.
Y.js:
We can't garbage collect deleted structs (tombstones) while ensuring a unique order of the structs. But we can 1. merge preceeding structs into a single struct to reduce the amount of meta information, 2. we can delete content from the struct if it is deleted, and 3. we can garbage collect tombstones if we don't care about the order of the structs anymore (e.g. if the parent was deleted).
Automerge
Yes, RGA uses tombstones. I think this is okay for now, as in most cases, the tombstones are not really the dominant cost. Also, I think it is desirable to retain history (so you can see what was changed when), and that requires remembering deleted parts of the document anyway.
automerge/automerge#221 (comment)
from yorkie.
Yorkie's GC logic looks like this:
- Agent returns
MinPulledTicket
to the client in the response ofPushPull
API- find
min_pulled_server_seq
document `d1` server_seq: 10 client `c1` server_seq: 5 client `c2` server_seq: 7 min_pulled_server_seq: 5
- create
MinPulledTicket
, time.Ticket ofmin_pulled_server_seq
- find
- The client purge elements(marked with tombstone) that were removed earlier than the
MinPulledTimeTicket
received in response toPushPull
.
from yorkie.
Related Issues (20)
- Integrate yorkie-mongodb Helm Chart in yorkie-argocd
- Update RHT DeepCopy method to correctly handle nodes with isRemoved set to true
- Show Server Version in Yorkie CLI HOT 2
- Run CI Only on Code Level Change PR HOT 2
- Support collecting metrics for MongoDB sharded clusters HOT 4
- Define REST API Spec for Consistent Usage of Project Key HOT 5
- Cannot find node of CRDTTreePos HOT 1
- Incorrect indexes in TreeChange when running Tree.Style HOT 1
- Divergence by concurrent Tree.Edit and Tree.RemoveStyle
- Tree inconsistency between Changes-generated and Snapshot-generated HOT 1
- Duplicate changes pushes during simultaneous sync and detach calls
- Resolve Split-Brain of WatchDocument with Stateful Session Affinity
- Handling reattaching detached document in SDK HOT 1
- Synchronization fails when editing including Undo In the CodeMirror example. HOT 1
- Update Document updatedAt to only include Document.Root modifications HOT 2
- Issue with document deletion in MemDB causing malfunction
- Implement DB Query for GetDocuments API to improve performance HOT 9
- Provide detailed error codes for enhancing error handling from Client
- Improve performance for creating crdt.TreeNode HOT 5
- Resolve N+1 issue in GetDocuments API response when snapshot is included
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yorkie.