4 ms·
I don't understand your meaning, then... lots of database systems have hardcoded fixed pointer offsets for data structures, and some even compile queries into b
by Jweb_Guru 10y ago
I don't understand your meaning, then... lots of database systems have hardcoded fixed pointer offsets for data structures, and some even compile queries into bytecode with those hardcoded pointer paths (for instance, HyPeR does this using LLVM, and I think some other column-stores do as well). Is your issue that those databases aren't hierarchical? On modern machines, pointer chasing is much slower than predictable sequential memory access, so that model doesn't seem like the performance win it was in the past... maybe I'm wrong.
- js8 10y agoI think what IMS does is they have those pointers, but these are pointers between records on disk (to minimize IO), not in memory. And the hierarchy is essentially a pre-calculated one-to-many join. So what you do when you design IMS DB is you look at what joins you need and you build your DB structure around that. And that's where, even though IMS is still row-oriented, it differs from the relational model, which is more flexible, but at the cost of higher IO per query. DataDraw is kinda similar, but in memory. There is a reason why it doesn't have a generic SQL interface, although it would be probably possible to build a slow one on top of it. P.S. I don't know HyPeR, and I can't google it. And yes, it's possible that somebody already reinvented IMS, I am just not aware of it.