Pete,
Good points regarding NUMA architecture. I don't know the answers to your questions on how the 16 DIMM chipset handle memory access. Here is the link to the ServerWorks top of the line chipset: serverworks.com
As far as a CPU accessing more than 4 GB of memory, I don't think it should be any different that 8086. I think the offset keeps getting applied to the address to get the final address. The shortcut is that it is always 0 in under 4 GB memory configuration.
I don't know whether this shortcut can be exploited for greater performance, or if you get the penalty regardless.
As far as single application accessing more than 4 GB, it would have to be compiled that way. I think it was the Large memory model in 8086 (where your code in your module was up to 64K and the data segment was larger). I think this kind of nonsense would have to be reintroduced.
One thing that is not clear to me is how the Database Server would work in the NUMA environment. Suppose you have a simple configuration of 2 modules, each with a CPU and 4 DIMM of memory. The database server app sees these as just 2 CPUs that it can assign threads to. How does it recognize the memory? Does it know that some memory is local to one CPU, and some is remote.
The internal Oracle tables rarely go beyond 100MB per thread.
I am not sure I understand how this works. My understanding (which may be incorrect) is that the database server controls the memory, and movement of data in and out. When a thread has some work to do, it requests some service of the database manager to give it data say row 900 of Table A.
The database server than checks its cache and if not there loads the data, and just passes the "worker thread" just a pointer to this data.
Well, as I said, that is my understanding, and it may be completely incorrect. But if this is the case, there would have to be a new layer of added to the logic of the database server which would have to optimize the allocation of resources based on their physical location.
Do you know if anybody is doing anything in this area? Oracle, IBM, MSFT?
Joe |