bundy

* Modular * Extensible * Friendly *

[Bundy-hackers] "production-ready" support for shared memory (mmap)

JINMEI Tatuya / 神明達哉 jinmei at wide.ad.jp
Fri May 23 08:37:41 CEST 2014


I've implemented almost all of the remaining TODOs from BIND 10 (plus
something more) for supporting shared-memory (mmap) based zone data.
Many of the changes will have to be reviewed, but I think it reaches a
"production ready" (in some definition:-) state.  I've pushed the
latest snapshot for feature review in the "shmem-preview" branch.  I
plan to run it on my personal server.  If someone can also try it,
that would be very much appreciated.

This feature includes:
- multiple processes can now share the same mapped memory, reducing
  the total memory footprint
- faster startup: the persistent mapped file is just mmaped on
  startup, then compared to the underlying data source to apply any
  outstanding diffs (if it's a restart from a clean shutdown, there's
  normally no need to apply diffs).
- reconfiguration support: data source reconfiguration is handled in a
  separate memory manager so the service of the authoritative server
  isn't stopped or disrupted until the reconfiguration is fully
  completed.
- zone update support: diffs from incoming IXFR or DDNS are applied to
  the mapped file by the separate memory manager and then remapped in
  other processes.

--
JINMEI, Tatuya