myui/btree4j

Exception with message: range scan failled... bug?

tanneess opened this issue · 3 comments

Hi,

This is pretty easy to produce: Modify the BtreeIndexTest.testBtreeIndex test. Increase the repeat in the invokeTest method (multiply by 10)
final int repeat = 10000000;

=>

java.lang.IllegalStateException: range scan failed... bug?

at btree4j.BTree.scanRange(BTree.java:365)
at btree4j.BTree.search(BTree.java:333)
at btree4j.BTreeIndex.search(BTreeIndex.java:136)
at btree4j.BTreeIndexTest.invokeTest(BTreeIndexTest.java:181)
at btree4j.BTreeIndexTest.testBTreeIndex(BTreeIndexTest.java:147)
...

By the way, thanks for the great work 👍.

Apparently multiplying the DEFAULT_IN_MEMORY_NODES by 8 and the BTREE_NODECACHE_PURGE_UNIT by 8 as well solves the problem. This seems like a strange side effect from what I understood to be a cache. But maybe my assumptions are wrong?

myui commented

Thank you for reporting. Reproduced.

That's strange. Will check it in this weekend.

myui commented

@tanneess Some dirty pages were not properly flushed.

fixed in #13 and release v0.9.1 on maven central. Please test it by v0.9.1 or master branch.