summaryrefslogtreecommitdiffstats
path: root/juniper
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@verizonmedia.com>2020-06-17 09:16:35 +0000
committerTor Brede Vekterli <vekterli@verizonmedia.com>2020-06-25 10:40:10 +0000
commit2185218c0bb44843bb0f3d33abea3b116b35160a (patch)
tree4442f72909b071e626497d3b361c617630da6e8a /juniper
parent6821733667528dddeed658205358f6b9dda12090 (diff)
Create generic B-tree bucket DB and content node DB implementation
This is the first stage of removing the legacy DB implementation. Support for B-tree specific functionality such as lock-free snapshot reads will be added soon. This commit is just for feature parity. Abstract away actual database implementation to allow it to be chosen dynamically at startup. This abstraction does incur some overhead via call indirections and type erasures of callbacks, so it's likely it will be removed once the transition to the new B-tree DB has been completed. Since the algorithms used for bucket key operations is so similar between the content node and distributor, a generic B-tree backed bucket database has been created. The distributor DB will be rewritten around this code very soon. Due to the strong coupling between bucket locking and actual DB implementation details, the new bucket DB has a fairly significant code overlap with the legacy implementation. This is to avoid spending time abstracting away and factoring out code for a legacy implementation that is to be removed entirely anyway. Remove existing LockableMap functionality not used or that's only used by tests.
Diffstat (limited to 'juniper')
0 files changed, 0 insertions, 0 deletions