summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS24
-rw-r--r--btree/__init__.py2
-rw-r--r--debian/changelog11
3 files changed, 36 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 3b7d471..3b710de 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,30 @@ These are the release notes for btree, a Python implementation of a
copy-on-write B-tree, designed by Odah Rodeh.
+Version 0.16.1, released 2011-01-07
+---------------------------------
+
+* Bug fix: Remove temporary node used while splitting a leaf node that has
+ grown too large.
+* Bug fix: Since we do, in fact, modify nodes in-place when they are not
+ shared between trees, it was possible for a node to be put into the
+ node store upload queue, and later modified. This is not a problem as
+ such, but when inserting a value into a leaf node, we modify it in place
+ making it too large, and then create one or two new nodes. If the
+ too-large node was at the beginning of the upload queue, creating the
+ new node might push it out, resulting in a bug. We fix this by moving
+ the too-large node to the end of the queue, ensuring it will not be
+ pushed out. A cleaner solution would be to not modify the node if it
+ will grow too big, but that change will need to wait for a later date.
+* BTree now checks that nodes are not too big when they are put into the
+ node store. The node store already did the checking, but only at the
+ point where it was ready to write the node to disk, and that meant the
+ problem was caught at a time that was hard to debug.
+* BTree now sets an explicit maximum size of the values inserted into the
+ tree: slightly less than half the size of a node. This is necessary for
+ leaf node splitting to work correctly without requiring more than more
+ than two nodes to hold everything.
+
Version 0.16, released 2011-01-07
---------------------------------
diff --git a/btree/__init__.py b/btree/__init__.py
index 44f5cd7..ad7b3ca 100644
--- a/btree/__init__.py
+++ b/btree/__init__.py
@@ -14,7 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-version = '0.16'
+version = '0.16.1'
from nodes import LeafNode, IndexNode
diff --git a/debian/changelog b/debian/changelog
index f347f19..ec54893 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+python-btree (0.16.1) squeeze; urgency=low
+
+ * New upstream release.
+ - remove temporary nodes used while splitting a leaf node
+ - prevent too-large leaf nodes from getting pushed out of the upload
+ queue during splitting
+ - introduce explicit maximum size for values stored in the tree
+ (slightly less than half the size of a node)
+
+ -- Lars Wirzenius <liw@liw.fi> Sun, 09 Jan 2011 11:38:16 +0000
+
python-btree (0.16) squeeze; urgency=low
* New upstream release.