Usage
Just add this plugin to the list of plugins during mounting, e.g.
kdb mount file.dump /important dump sync
Then when you observe the change of a value, e.g.
strace kdb set user/important/key value
you can see, done by storage:
open("/home/markus/.kdb/file.dump.16874:1409592592.95084.tmp", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 4
write(4, "kdbOpen 1, 10) = 10
write(4, "ksNew 1, 8) = 8
write(4, "keyNew 19 6, 12) = 12
write(4, "user/important/key value , 26) = 26
write(4, "keyEnd, 7) = 7
write(4, "ksEnd, 6) = 6
close(4) = 0
then done by sync:
open("/home/markus/.kdb/file.dump.16874:1409592592.95084.tmp",
O_RDWR) = 4
fsync(4) = 0
close(4) = 0
and finally commit + sync of directory by resolver:
rename("/home/markus/.kdb/file.dump.16874:1409592592.95084.tmp",
"/home/markus/.kdb/file.dump") = 0
stat("/home/markus/.kdb/file.dump", {st_mode=S_IFREG|0644,
st_size=69, ...}) = 0
fcntl(3, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0,
len=0}) = 0
close(3) = 0
open("/home/markus/.kdb",
O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
fsync(3) = 0

