Michael Gaare on Triple Stores
The following is written by Michael Gaare following a real-life conversation and is re-printed here with permission.
MICHAEL GAARE: Among other reasons, I think they failed because they suck at writes. Like relational databases, they're "place" oriented. Relational databases can achieve good write performance because they have natural transaction boundaries in the form of rows and tables, and they can exploit that structure to do smarter things around locks. Triple stores have no such advantages - it's one big graph, impossible to lock because anything could touch anything. A lot of that is down to basic math/computer science: look at how expensive all the algorithms to detect graph partitions, cycles, figure out bipartite things, etc are. A lot of exponential complexity there. In SQL, the worst case scenario is a table scan - O(n).
Is this true though? He says it's hard to detect partitions and shard. But I think it's the transaction boundaries defined by the application that matter. Maybe it can't be auto detected.
Why exactly does a 5-store fix this? It does not change the graph-nature of the problem. It just gives the cache consistency you need to make strong consistency distributed and fast.