I’ve come across CRDTs and I’m excited for their potential but I’m concerned that it doesn't really play nicely with databases that I know of. Whenever I have to update my database state I will still have to do some kind of locking beit pessimistic or optimistic before writing data. Unless there is a DB which accepts CRDTs, OTs or some kind of patchsets as part of its DSL and it handles the concurrency internally? Are there any such databases?
Are there any databases backed by CRDTs?
2.5k Views Asked by david_adler At
1
There are 1 best solutions below
Related Questions in DATABASE
- How to add the dynamic new rows from my registration form in my database?
- How to store a date/time in sqlite (or something similar to a date)
- Problem with add new attribute in table with BOTO3 on python
- When an E-R attribute should be perceived as a relationship attribute or as an entity set attribute?
- SQLAlchemy: efficient relationship loading in 3-way many-to-many relationship
- Cannot connect to Postgres Database when running Quarkus Tests with Gitlab ci
- Local or remote database with react-native?
- I want to edit a specific row in database
- How to enter data in mongodb array at specific position such that if there is only 2 data in array and I want to insert at 5, then rest data is null
- Open Web Library
- database login.py and register.py error showing 404 file not found and doesn't work
- SQL71561: SqlComputedColumn: When column selected
- Liquibase as SaaS To Configure Multiple Database as Dynamic
- Updated max input vars but table still shows error
- Spring does not map set of roles
Related Questions in DATABASE-DESIGN
- SQL schema for a fill-in-the-blank exercise
- When an E-R attribute should be perceived as a relationship attribute or as an entity set attribute?
- steps to create a web app with backend and database and web
- Use data type uuid or varchar(36) for my UUID column?
- Containing Object Design
- Many-to-many relationship between objects of the same type
- When hashing an API key, should I hash the suffix / prefix as well?
- Database design, authentication and authorization in a microservices ticketing system
- Unique index on 3 columns where NULL conflicts with all other values in one column
- Can i create a table with 2 foreign keys? These 2 foreign keys are 2 primary keys of 2 different tables
- I have a basic ms access question about a relationship between 3 tables
- how can i calculate mutual friends/followers efficiently?
- Access Table ,setting in design ,column 'Catagory' as Combobox in lookup with list "Action";"War";"Drama". in vb.net DGV and Detail how to multiselct
- Table Design for Calculating Median Over User-Defined Period from Pre-Processed Data
- Use conditional constraint or normalize table?
Related Questions in CRDT
- Why only commutativity is sufficient for op-based CRDTs and not also associativity?
- Automerge synchronisation
- CRDTS: Delta-state Add-Wins-Observed-Removed Map
- Should the operations of an operation-based CRDT be commutative?
- How to avoid using a lock (Mutex) to read and send messages from a WebSocket connection with async Rust
- how to switch the doc when using yjs to implement an online collaboration editor without websocket reconnection
- React rerendering too much when using YJS
- Issue with Integrating Yjs and Monaco-Editor in Angular - Error with Webpack CSS Dependencies
- How to prevent selected fields from being updated in Y.js?
- How to change this merge() method for a Multi-Value Register CRDT implementation?
- Which part of the CAP Theorem does CRDT Sacrifice?
- replicating trees between ACID RDB using CRDT
- How to handle concurrent adds on the same key in Last Write Wins map?
- How to handle different paths when working with CRDTs (Yjs), when 2 changes happen concurrently?
- How real time collaborative editors store document in database ? What should be the schema to support "Operational Transform" or CRDT data structure?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
There are several I know about. Starting from pretty solid ones:
There are also less mature cases like AntidoteDB which offers great hopes but it's very development process is rather slow (at the moment).
Some distributed databases offer limited support for some of the CRDT types eg. RavenDB and Cassandra counter type.
Azure CosmosDB allows you to configure a multi-master replication where you can define your own "stored procedure" (in JavaScript), that will be responsible for handling conflicts that occurred during concurrent writes. This way you can write your own CRDTs.
There are also products designed for working as CRDTs on client devices. These are not databases in a strict sense, but rather frameworks that can be embedded into application itself. They have support for persistence but usually are designed to work on smaller volumes of data. These include Yjs, automerge and ditto.