prabhatbhattarai / project-voldemort

Automatically exported from code.google.com/p/project-voldemort
Apache License 2.0
0 stars 0 forks source link

Use DiskOrderedCursor to improve iteration performance for bdb storage engine #373

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
BDB 5.0.34 includes the DiskOrderedCursor class that improves iteration 
performance for the bdb storage engine (particularly important for 
rebalancing). See the following for documentation:

http://docs.oracle.com/cd/E17277_02/html/GettingStartedGuide/Positioning.html
http://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/DiskOrderedCursor
.html#getNext(com.sleepycat.je.DatabaseEntry, com.sleepycat.je.DatabaseEntry, 
com.sleepycat.je.LockMode)

BDB JE 5.0.x includes other improvements that would benefit Voldemort (various 
improvements around duplicate keys), but the disk format has changed. The 
following, in particular is very inconvenient:

"Because of this format change, an environment with databases configured for 
duplicates must convert their environment with a utility program prior to 
opening the environment with this release. A database might be explicitly 
configured for duplicates using DatabaseConfig.setSortedDuplicates(true), or 
implicitly configured for duplicates by using a DPL MANY_TO_XXX relationship 
(Relationship.MANY_TO_ONE or Relationship.MANY_TO_MANY)"

Original issue reported on code.google.com by ismaelj on 5 Dec 2011 at 12:00

GoogleCodeExporter commented 8 years ago
I have a branch with the required changes, but I don't plan to merge it any 
time soon due to the upgrade procedure required.

https://github.com/ijuma/voldemort/commits/bdb5

Original comment by ismaelj on 5 Dec 2011 at 12:01