chiark / gitweb /
journal: introduce entry array chain cache
authorLennart Poettering <lennart@poettering.net>
Fri, 26 Oct 2012 01:24:03 +0000 (03:24 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 26 Oct 2012 01:24:03 +0000 (03:24 +0200)
commita4bcff5ba36115495994e9f9ba66074471de76ab
tree16929d0178f57cfe21b6da81ae3e8488ed289b50
parent7fb4d896e1ff018d91498f0e83b02e2534644907
journal: introduce entry array chain cache

When traversing entry array chains for a bisection or for retrieving an
item by index we previously always started at the beginning of the
chain. Since we tend to look at the same chains repeatedly, let's cache
where we have been the last time, and maybe we can skip ahead with this
the next time.

This turns most bisections and index lookups from O(log(n)*log(n)) into
O(log(n)). More importantly however, we seek around on disk much less,
which is good to reduce buffer cache and seek times on rotational disks.
.gitignore
Makefile.am
src/journal/journal-file.c
src/journal/journal-file.h
src/journal/test-journal-enum.c [new file with mode: 0644]
src/shared/hashmap.c
src/shared/hashmap.h