In solidDB systems where the performance is limited by CPU, it is likely that you can gain performance benefits by switching from the default memory allocation model. If you use large pages (on Windows) or huge pages (on Linux), you can gain up to 20% performance benefit for your system. However, you also incur an increased memory footprint due to memory being retained in solidDB memory pools instead of being released back to the operating system.
Note Pages that are greater than 4Kb in size are called ‘large’ pages in Windows and ‘huge’ pages in Linux.
To fine-tune memory allocation, you must understand how your operating system provides memory resources.
Using large (or huge) pages reduces Translation Lookaside Buffer (TLB) misses. TLB stores translations from virtual memory to physical memory, but is limited in space.
Increasing the page size reduces the required number of TLB entries, which effectively increases the hit ratio, leading to a significant increase in performance for memory-intensive applications such as database cache or in-memory database.
You can use the following models for memory management within solidDB:
▪ malloc() (on Windows and Linux)
▪ mmap() (on Linux only)
▪ VirtualAlloc (on Windows only)
All of the models receive blocks of memory from the operating system and either release the memory as soon as feasible, or retain the memory in solidDB buffers for further use.