4 ms·
This would be the killer 2050 alien feature. Git is a really good mental model on itself. Git + Neon = you invent the future!
by chwzr 4y ago
This would be the killer 2050 alien feature. Git is a really good mental model on itself. Git + Neon = you invent the future!
- mattashii 4y agoIt would be a killer feature, but the thing is that Git has a conflict resolution feature that puts the working tree in an invalid state until the user has manually fixed certain issues, so that you cannot commit until you manually fix the files and mark those as such. Doing so for a database seems less desirable from an availability perspective, especially with high-throughput databases.
- ledauphin 4y agoI've been wondering if it makes sense for databases to start offering CRDTs natively, so that you can perform merges that are algorithmically conflict-free.
- nikita 4y agoCRDTs are pretty hard to implement at the Neon storage level - pages don’t know what’s written on them. I don’t know of a general purpose database that supports CRDTs. It would be cool though!
- mattashii 4y agoIn a sense, a CRTD is a database. But the 'conflict-free' is only because it defines semantics for conflicting operations. But, because SQL has conflict resolution by cancellation of one of the two conflicting modifications, I don't think that it is reasonable (or even possible) to merge 2 divergent databases in a single way that always conforms to the needs of the developer and/or application.
- throwaway892238 4y agoBut the manual intervention of conflict resolution in a Git repo is done in a working tree. The named branch's HEAD remains the same until the conflict has been resolved and the commit is merged/pushed. So nobody sees the conflict at all, they only ever see either the old code, or the merged resolved code.