Open benclmnt opened 1 year ago
DB maintains separate primary and shadow copies of the database. To perform an update, the DBMS copies the affected pages from primary to shadow copy, where it then applies the necessary changes. Committing the changes involves flushing the modified shadow copy and swapping the primary and shadow copy.
This is similar to "old-master-new-master" processing
When OS evict pages, it needs to remove the mappings from both the page table and each CPU core's TLB. Current CPUs do not provide coherence for remote TLBs, so the OS has to issue an expensive inter-processor interrupt to flush them, called a TLB shootdown.
Link to paper
Main Claim
mmap
is not a suitable replacement for a traditional buffer pool that manually handlesread
andwrite
syscalls. This is despite the seemingly less complexity and more efficiency benefits thatmmap
offers.Main problems
mmap
might flush dirty page at any time, without regards to whether the page contains any changes from uncommitted transaction.mmap
doesn't support asynchronous reads.mmap
-based file I/O suffers from page table contention, single-threaded page eviction and TLB shootdowns.