Skip to content

Releases: dwysocki/b-plus-tree

Insert complete

11 May 19:25
Compare
Choose a tag to compare
Insert complete Pre-release
Pre-release

Insert is exactly where I want it to be.

Insert

10 May 22:44
Compare
Choose a tag to compare
Insert Pre-release
Pre-release

Insert now works for all cases.

Split

10 May 18:47
Compare
Choose a tag to compare
Split Pre-release
Pre-release

Wrote split functions for each type of node.

Doubly-Linked Leaves

10 May 00:38
Compare
Choose a tag to compare
Doubly-Linked Leaves Pre-release
Pre-release

Leaves now point to the previous leaf, in addition to the next leaf.

Subset/Equals

09 May 22:14
Compare
Choose a tag to compare
Subset/Equals Pre-release
Pre-release

Added functions for testing if a map is a subset or equal to the B+ Tree

Simple Insert

04 May 23:43
Compare
Choose a tag to compare
Simple Insert Pre-release
Pre-release

Insert now works so long as the leaf is not full

Caching

03 May 23:55
Compare
Choose a tag to compare
Caching Pre-release
Pre-release

Now using a cache map to hold nodes in memory after they have been read from the file, to reduce disc reads, and put off disc writes until needed

Metadata now in header

03 May 22:32
Compare
Choose a tag to compare
Pre-release

Moved metadata from the root to a special header section of the file

Serialization improved and Find working

28 Apr 02:21
Compare
Choose a tag to compare
Pre-release

I now have both serialization and find working. Also, serialization has been improved so that instead of dealing with two separate :keys and :children lists, instead there is a :keys-ptrs sorted-map, and a :last pointer, since one pointer doesn't have a key associated with it

Serialization working

25 Apr 02:32
Compare
Choose a tag to compare
Serialization working Pre-release
Pre-release

Serialization works. However, I am about to redo it, so that serialization is done in a more useful way, so I must make a release, despite not having much else working.
In this release, nodes are serialized with their keys and children in two separate seqs. It would be much more efficient to interleave them as keyvals, and so they will be in the next release. Then they can be read as (sorted-map keyvals), and used in a much more convenient way. The last pointer won't have a key to go with it, so the keyword :last will be reserved to always map to the last pointer. Because of this last pointer, keyvals must always have an odd number of elements, with the last pointer at its end.