39 ms·
I am working toward that goal of integrating text diffing or CRDT diffing into a database. I wanted extremely high performance multimaster scalability of write
by samsquire 3y ago
I am working toward that goal of integrating text diffing or CRDT diffing into a database.
I wanted extremely high performance multimaster scalability of writes with linear scalability and semiautomatic text diffing and merging. I think this calls for an eventually consistent architecture.
The idea is to implement the GUI so that diffs are exposed to the user if there is a conflict but otherwise use the Myers algorithm.
I implemented a simple MVCC in Java.
https://github.com/samsquire/multiversion-concurrency-control https://github.com/samsquire/multiversion-concurrency-contro...
And I implemented a 3 way text diff with myers algorithm based on https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1/ https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm...
https://github.com/samsquire/text-diff https://github.com/samsquire/text-diff
I implemented an eventually consistent mesh protocol that uses timestamps to provide last write wins
https://github.com/samsquire/eventually-consistent-mesh https://github.com/samsquire/eventually-consistent-mesh
I implemented an barebones toy SQL and Graph cypher and document storage database
https://github.com/samsquire/hash-db https://github.com/samsquire/hash-db
I need to combine the ideas in each of these projects into a cohesive solution.
I did some incomplete work on trying to implement the YATA algorithm.