3 ms·
EdgeDB is built on an extension of the relational data model that we call the graph-relational model. This model completely eliminates the object-relational imp
by KwisaksHaderach 5y ago
EdgeDB is built on an extension of the relational data model that we call the graph-relational model. This model completely eliminates the object-relational impedance mismatch while retaining the solid basis of and performance of the classic relational model.
I don't see how can they retain the performance of the relational model when using graphs on top of PG unless they are using PG as storage k/v layer only.
- robertlagrant 5y agoWhy's that?
- 1st1 5y agoThe key insight here is that we still have schema. We have high-level object types and a first-class notion of a "reference" - we call it "link". Our other extension of the relational model is that every "row" must have a unique ID. Both things combined implement a graph or your types and a graph of your data as it's stored in the underlying tables. Everything is strictly typed and efficient. But EdgeDB isn't ideal for storing loosely typed graph data, neo4j is built for that.
- 1st1 5y agoSee also: https://news.ycombinator.com/item?id=30291538 https://news.ycombinator.com/item?id=30291538
- Rapzid 5y agohttps://www.alibabacloud.com/blog/postgresql-graph-search-practices---10-billion-scale-graph-with-millisecond-response_595039 https://www.alibabacloud.com/blog/postgresql-graph-search-pr... Can use these techniques on top of typical, existing relation model tables as well. Consider a join table, or even a polymorphic join table, that gives you the edges. But you can use unions and stuff to join up data across various tables. Can get really creative with it.