A Solution To Von Neumann bottleneck
Here's a question.
Do you have a problem about memory performance that might have been observed as CPU or I/O bottleneck before?
In other words,
Where's your interests about performance bottleneck today? Memory?
Even like this:
Do you use any Virtualization technology?
If yes, you are likely suffering from Von Neumann bottleneck, which is described as follows in Wikipedia:
The separation between the CPU and memory leads to the von Neumann bottleneck, the limited throughput (data transfer rate) between the CPU and memory compared to the amount of memory.
This is not something new, but is considered having been accelerated by increasing number of CPU cores and size of RAM, while having almost the same amount of cache and the same bus size between memory and CPU.
-
Intel released Xeon 7500 series(e.g. X7560) recently. It has NUMA architecture, which has respective dedicated memory bank and bus to each CPU. OS kernels have improved memory management system like SLAB to achieve better cache hit rate from CPU point's of view.
But, inherently, memory allocation is a responsibility of a programmer. A compiler can optimize instructions, but not data manipulated. Today's CPU can predict repeated pattern, but which is extremely simple like a jump.
So, I could say, the third factor, that has accelerated the bottleneck, is a programmer.
-
Object Database is a technology developed long time ago. And its benefit has been considered development efficiency through maximum utilization of Object Oriented Programming Language.
Recently, I found one possible huge benefit of Object Database that has not been addressed before.
ODBMS returns objects that are directly referenced by a user against a query. While returned values are copied to user objects with RDBMS. In this sense, ODBMS provides memory management system. While it is up to a programmer with RDBMS.
So, here's the potential that ODBMS can be a solution to Von Neumann bottleneck.
-
From CPU's point of view, cache is nothing but bringing data up to L1 by the time CPU process it.
L1 <- L2
(L2 <- L3)
L2 <- RAM
(TLB lookup)
(physical address <- virtual address)
(RAM <- I/O: disk or network)
So, I could say, ODBMS is a cache system.
This can explain up to 100x times faster performance on complex data structure like Graph.
Such a redefinition might unveil the true power of ODBMS.
Feedback awaiting moderation
This post has 1 feedback awaiting moderation...