Please sign in to comment.
The BPlusTree implementation works and can use generic key/value types.
The BTree implementation is limited to only uint64 type keys. The performance difference is fairly striking given existing tests (which are modification heavy). The generic implementation has some important characteristics: 1. It derives its specific types using client-supplied code (i.e. the user of the library supplies specific key/value implementation). This is important because there's no generic way to do value comparisons in Go. 2. It uses factory methods to allocate and free node memory. This will be critical for on-disk or other exotic implementations. 3. It uses a load/store mechanism on nodes. Nodes are not altered in their backing storage. Instead slice-based representations are altered then given back to client code. This simplifies the operations the client must implement and made for much cleaner code.
- Loading branch information...
Showing with 277 additions and 342 deletions.
Oops, something went wrong.