Object Database As Memory Management System

Object Database has survived for no particular reason. There's an obvious case that Object Database overwhelms other database systems both in performance and productivity.

It is where non-predeterministic query is issued, often in an algorithm.

For example, any algorithms on a Graph are good examples. Suppose you have a practical, optimized shortest path search algorithm. Which verteces you need to retrieve?

Unknown.

Until its previous vertex is evaluated.

So, in this case, it takes too long if it gets done straightforward. With RDBMS, you need to issue a query for every single vertex. That involves heavy tasks like disk and network access. While Object Database can prefetch/cluster them according to their relations. That will save those two heavy tasks down to 1/(prefetch_size * cache_hit_rate). Of course it gets worse if cache_hit_rate is too low, though.

The benefit is significant. In some particular cases. That's why 10 out of 10 US telecom uses Versant.

So, now I am wondering if we can extend the benefit.

Last year, in game industry, there was a trend called Data Oriented Design.

The Latency Elephant.

Until recently, we didn't doubt the best strategy was to bring data onto memory. It is almost the fastest. But it is not true anymore.

It looks like the same thing as described above between client and server happens between memory and CPU. When you zoom in by 1000x(compared to client/server), you'll see there's a long way.

The solution is obvious. To put related objects together on a single page so that cache miss won't happen. The result is shown in the same way, 1/(prefetch_size * cache_hit_rate), compared to the worst scenario(every object is on a different page from each other).

It is obvious, but not easy. OS hids physical representation and only present logical representation both in file and memory allocation. So, you have to roll the abstraction carpet, and go down.

But what about sending Object Database down there, and let it manage. It must be effective not only for existing users, but also for Memory Management System in general.

No feedback yet

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
PoorExcellent
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
Free Blog Themes and Free Blog Templates