Quote:
Originally Posted by user777
How does dynamic shared memory work.
There is a note from oracle:
|
What are you really looking for here?
1) You want to know about dynamic shared memory in general and just used a quote from Oracle documentation as an example?
2) You want to know how to configure Oracle and didn't understand that section.
For (2), I downloaded that link and didn't understand that section either. I think it deals with an advanced feature that you almost certainly aren't using. Even if you were on one of the OS's that support the feature, you likely wouldn't be using it.
For (1), I tried a google search. The results were surprisingly bad. I didn't find any overview of the concept nor any implementation status (what software is available, what OS's and applications support it). I couldn't even tell if there was general agreement on the meaning of the phrase.
One meaning of the phrase used in many places is that it provides the apparent features of NUMA across a less tightly coupled connection than NUMA.
A simple (AMD) example of NUMA would be a motherboard on which you have multiple CPU chips, with an integrated memory controller in each CPU chip and memory directly connected to each of those memory controllers and an interconnect (Hyper Transport) between the memory controllers. A thread running in one CPU chip can access memory connected to that CPU chip at high speed through the integrated memory controller. It can access memory connected to a different CPU chip with exactly the same code (and no OS intervention) and simply lower performance (through the Hyper Transport). The BIOS (or maybe OS) organizes the entire pool of memory into one physical address space and the OS maps pages of that physical address space into processes with some allocation bias to increase the probability that accesses will be local.
A simple "dynamic shared memory" design would look the same from the point of view of the virtual address space of a thread, but would be very different underneath. The non local pages could not be mapped because they aren't on the same motherboard nor in the same physical address space. On access to a non local location, you would have a virtual memory fault and the OS would need to move or duplicate the page from its location on another motherboard (likely across a LAN from another computer). That would be similar to bringing in a faulted page from a memory mapped file, when that file happens to be opened through a network connection to a fileserver.