You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2013/12/16 18:40:44 UTC
svn commit: r1551280 - in /directory/mavibot/trunk/mavibot/src:
main/java/org/apache/directory/mavibot/btree/memory/
main/java/org/apache/directory/mavibot/btree/persisted/
test/java/org/apache/directory/mavibot/btree/memory/
Author: elecharny
Date: Mon Dec 16 17:40:44 2013
New Revision: 1551280
URL: http://svn.apache.org/r1551280
Log:
Renamed the Node classes to InMemoryNode and PersistedNode
Added:
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryNode.java
- copied, changed from r1551277, directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/Node.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedNode.java
- copied, changed from r1551277, directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/Node.java
Removed:
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/Node.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/Node.java
Modified:
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/BTreeFactory.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTree.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeBuilder.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryLeaf.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/BTreeFactory.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTree.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTreeBuilder.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedLeaf.java
directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/RecordManager.java
directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeTest.java
directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/LeafTest.java
Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/BTreeFactory.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/BTreeFactory.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/BTreeFactory.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/BTreeFactory.java Mon Dec 16 17:40:44 2013
@@ -64,9 +64,9 @@ public class BTreeFactory
* @param nbElems The number or elements in this node
* @return A Node instance
*/
- public static <K, V> Node<K, V> createNode( BTree<K, V> btree, long revision, int nbElems )
+ public static <K, V> InMemoryNode<K, V> createNode( BTree<K, V> btree, long revision, int nbElems )
{
- Node<K, V> node = new Node<K, V>( btree, revision, nbElems );
+ InMemoryNode<K, V> node = new InMemoryNode<K, V>( btree, revision, nbElems );
return node;
}
@@ -216,7 +216,7 @@ public class BTreeFactory
* @param pos The position in the values array
* @param value the value to inject
*/
- public static <K, V> void setValue( BTree<K, V> btree, Node<K, V> page, int pos, Page<K, V> value )
+ public static <K, V> void setValue( BTree<K, V> btree, InMemoryNode<K, V> page, int pos, Page<K, V> value )
{
page.setPageHolder( pos, new PageHolder<K, V>( btree, value ) );
}
@@ -244,7 +244,7 @@ public class BTreeFactory
}
else
{
- Node<K, V> node = ( Node<K, V> ) btree.getRootPage();
+ InMemoryNode<K, V> node = ( InMemoryNode<K, V> ) btree.getRootPage();
while ( true )
{
Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTree.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTree.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTree.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTree.java Mon Dec 16 17:40:44 2013
@@ -499,7 +499,7 @@ public class InMemoryBTree<K, V> extends
Page<K, V> newRootPage = null;
// Create the new rootPage
- newRootPage = new Node<K, V>( this, revision, pivot, leftPage, rightPage );
+ newRootPage = new InMemoryNode<K, V>( this, revision, pivot, leftPage, rightPage );
rootPage = newRootPage;
}
Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeBuilder.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeBuilder.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeBuilder.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeBuilder.java Mon Dec 16 17:40:44 2013
@@ -150,7 +150,7 @@ public class InMemoryBTreeBuilder<K, V>
int numChildren = numKeysInNode + 1;
- Node<K, V> node = createNode( btree, 0, numKeysInNode );
+ InMemoryNode<K, V> node = createNode( btree, 0, numKeysInNode );
lstNodes.add( node );
int i = 0;
int totalNodes = 0;
Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryLeaf.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryLeaf.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryLeaf.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryLeaf.java Mon Dec 16 17:40:44 2013
@@ -232,8 +232,8 @@ import org.apache.directory.mavibot.btre
// if it has more than N/2 elements, or to merge the two pages.
// Check in both next and previous page, if they have the same parent
// and select the biggest page with the same parent to borrow an element.
- int siblingPos = selectSibling( ( Node<K, V> ) parent, parentPos );
- InMemoryLeaf<K, V> sibling = ( InMemoryLeaf<K, V> ) ( ( ( Node<K, V> ) parent ).getPage( siblingPos ) );
+ int siblingPos = selectSibling( ( InMemoryNode<K, V> ) parent, parentPos );
+ InMemoryLeaf<K, V> sibling = ( InMemoryLeaf<K, V> ) ( ( ( InMemoryNode<K, V> ) parent ).getPage( siblingPos ) );
if ( sibling.getNbElems() == halfSize )
{
Copied: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryNode.java (from r1551277, directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/Node.java)
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryNode.java?p2=directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryNode.java&p1=directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/Node.java&r1=1551277&r2=1551280&rev=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/Node.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/memory/InMemoryNode.java Mon Dec 16 17:40:44 2013
@@ -50,7 +50,7 @@ import org.apache.directory.mavibot.btre
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-/* No qualifier */class Node<K, V> extends AbstractPage<K, V>
+/* No qualifier */class InMemoryNode<K, V> extends AbstractPage<K, V>
{
/**
* Creates a new Node which will contain only one key, with references to
@@ -62,7 +62,7 @@ import org.apache.directory.mavibot.btre
* @param nbElems The number of elements in this Node
*/
@SuppressWarnings("unchecked")
- /* No qualifier */Node( BTree<K, V> btree, long revision, int nbElems )
+ InMemoryNode( BTree<K, V> btree, long revision, int nbElems )
{
super( btree, revision, nbElems );
@@ -83,7 +83,7 @@ import org.apache.directory.mavibot.btre
* @param rightPage The right page
*/
@SuppressWarnings("unchecked")
- /* No qualifier */Node( BTree<K, V> btree, long revision, K key, Page<K, V> leftPage, Page<K, V> rightPage )
+ InMemoryNode( BTree<K, V> btree, long revision, K key, Page<K, V> leftPage, Page<K, V> rightPage )
{
super( btree, revision, 1 );
@@ -175,7 +175,7 @@ import org.apache.directory.mavibot.btre
// Simplest case : the element has been removed from the underlying page,
// we just have to copy the current page an modify the reference to link to
// the modified page.
- Node<K, V> newPage = copy( revision );
+ InMemoryNode<K, V> newPage = copy( revision );
Page<K, V> modifiedPage = removeResult.getModifiedPage();
@@ -247,10 +247,10 @@ import org.apache.directory.mavibot.btre
* @throws IOException If we have an error while trying to access the page
*/
private DeleteResult<K, V> borrowFromRight( long revision, MergedWithSiblingResult<K, V> mergedResult,
- Node<K, V> sibling, int pos ) throws IOException
+ InMemoryNode<K, V> sibling, int pos ) throws IOException
{
// Create the new sibling, with one less element at the beginning
- Node<K, V> newSibling = new Node<K, V>( btree, revision, sibling.getNbElems() - 1 );
+ InMemoryNode<K, V> newSibling = new InMemoryNode<K, V>( btree, revision, sibling.getNbElems() - 1 );
K siblingKey = sibling.children[0].getValue().getLeftMostKey();
@@ -260,7 +260,7 @@ import org.apache.directory.mavibot.btre
// Create the new page and add the new element at the end
// First copy the current node, with the same size
- Node<K, V> newNode = new Node<K, V>( btree, revision, nbElems );
+ InMemoryNode<K, V> newNode = new InMemoryNode<K, V>( btree, revision, nbElems );
// Copy the keys and the values up to the insertion position
int index = Math.abs( pos );
@@ -332,13 +332,13 @@ import org.apache.directory.mavibot.btre
* @throws IOException If we have an error while trying to access the page
*/
private DeleteResult<K, V> borrowFromLeft( long revision, MergedWithSiblingResult<K, V> mergedResult,
- Node<K, V> sibling, int pos ) throws IOException
+ InMemoryNode<K, V> sibling, int pos ) throws IOException
{
// The sibling is on the left, borrow the rightmost element
Page<K, V> siblingChild = sibling.children[sibling.nbElems].getValue();
// Create the new sibling, with one less element at the end
- Node<K, V> newSibling = new Node<K, V>( btree, revision, sibling.getNbElems() - 1 );
+ InMemoryNode<K, V> newSibling = new InMemoryNode<K, V>( btree, revision, sibling.getNbElems() - 1 );
// Copy the keys and children of the old sibling in the new sibling
System.arraycopy( sibling.getKeys(), 0, newSibling.getKeys(), 0, newSibling.getNbElems() );
@@ -346,7 +346,7 @@ import org.apache.directory.mavibot.btre
// Create the new page and add the new element at the beginning
// First copy the current node, with the same size
- Node<K, V> newNode = new Node<K, V>( btree, revision, nbElems );
+ InMemoryNode<K, V> newNode = new InMemoryNode<K, V>( btree, revision, nbElems );
// Sets the first children
newNode.children[0] = new PageHolder<K, V>( btree, siblingChild ); //1
@@ -418,11 +418,11 @@ import org.apache.directory.mavibot.btre
* @throws IOException If we have an error while trying to access the page
*/
private DeleteResult<K, V> mergeWithSibling( long revision, MergedWithSiblingResult<K, V> mergedResult,
- Node<K, V> sibling, boolean isLeft, int pos ) throws IOException
+ InMemoryNode<K, V> sibling, boolean isLeft, int pos ) throws IOException
{
// Create the new node. It will contain N - 1 elements (the maximum number)
// as we merge two nodes that contain N/2 elements minus the one we remove
- Node<K, V> newNode = new Node<K, V>( btree, revision, btree.getPageSize() );
+ InMemoryNode<K, V> newNode = new InMemoryNode<K, V>( btree, revision, btree.getPageSize() );
Tuple<K, V> removedElement = mergedResult.getRemovedElement();
int half = btree.getPageSize() / 2;
int index = Math.abs( pos );
@@ -620,9 +620,9 @@ import org.apache.directory.mavibot.btre
// We will remove one element from a page that will have less than N/2 elements,
// which will lead to some reorganization : either we can borrow an element from
// a sibling, or we will have to merge two pages
- int siblingPos = selectSibling( ( Node<K, V> ) parent, parentPos );
+ int siblingPos = selectSibling( ( InMemoryNode<K, V> ) parent, parentPos );
- Node<K, V> sibling = ( Node<K, V> ) ( ( ( Node<K, V> ) parent ).children[siblingPos].getValue() );
+ InMemoryNode<K, V> sibling = ( InMemoryNode<K, V> ) ( ( ( InMemoryNode<K, V> ) parent ).children[siblingPos].getValue() );
if ( sibling.getNbElems() > halfSize )
{
@@ -672,7 +672,7 @@ import org.apache.directory.mavibot.btre
Page<K, V> modifiedPage = borrowedResult.getModifiedPage();
Page<K, V> modifiedSibling = borrowedResult.getModifiedSibling();
- Node<K, V> newPage = copy( revision );
+ InMemoryNode<K, V> newPage = copy( revision );
if ( pos < 0 )
{
@@ -743,7 +743,7 @@ import org.apache.directory.mavibot.btre
throws IOException
{
// First copy the current page, but remove one element in the copied page
- Node<K, V> newNode = new Node<K, V>( btree, revision, nbElems - 1 );
+ InMemoryNode<K, V> newNode = new InMemoryNode<K, V>( btree, revision, nbElems - 1 );
int index = Math.abs( pos ) - 2;
@@ -825,7 +825,7 @@ import org.apache.directory.mavibot.btre
// to point on the modified child
Page<K, V> modifiedPage = result.getModifiedPage();
- ( ( Node<K, V> ) newPage ).children[pos] = new PageHolder<K, V>( btree, modifiedPage );
+ ( ( InMemoryNode<K, V> ) newPage ).children[pos] = new PageHolder<K, V>( btree, modifiedPage );
// We can return the result, where we update the modifiedPage,
// to avoid the creation of a new object
@@ -855,7 +855,7 @@ import org.apache.directory.mavibot.btre
throws IOException
{
// First copy the current page, but add one element in the copied page
- Node<K, V> newNode = new Node<K, V>( btree, revision, nbElems + 1 );
+ InMemoryNode<K, V> newNode = new InMemoryNode<K, V>( btree, revision, nbElems + 1 );
// Copy the keys and the children up to the insertion position
if ( nbElems > 0 )
@@ -911,8 +911,8 @@ import org.apache.directory.mavibot.btre
int middle = btree.getPageSize() >> 1;
// Create two new pages
- Node<K, V> newLeftPage = new Node<K, V>( btree, revision, middle );
- Node<K, V> newRightPage = new Node<K, V>( btree, revision, middle );
+ InMemoryNode<K, V> newLeftPage = new InMemoryNode<K, V>( btree, revision, middle );
+ InMemoryNode<K, V> newRightPage = new InMemoryNode<K, V>( btree, revision, middle );
// Determinate where to store the new value
// If it's before the middle, insert the value on the left,
@@ -996,9 +996,9 @@ import org.apache.directory.mavibot.btre
* @param revision The new revision
* @return The copied page
*/
- protected Node<K, V> copy( long revision )
+ protected InMemoryNode<K, V> copy( long revision )
{
- Node<K, V> newPage = new Node<K, V>( btree, revision, nbElems );
+ InMemoryNode<K, V> newPage = new InMemoryNode<K, V>( btree, revision, nbElems );
// Copy the keys
System.arraycopy( getKeys(), 0, newPage.getKeys(), 0, nbElems );
Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/BTreeFactory.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/BTreeFactory.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/BTreeFactory.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/BTreeFactory.java Mon Dec 16 17:40:44 2013
@@ -76,9 +76,9 @@ public class BTreeFactory
* @param nbElems The number or elements in this node
* @return A Node instance
*/
- public static <K, V> Node<K, V> createNode( BTree<K, V> btree, long revision, int nbElems )
+ public static <K, V> PersistedNode<K, V> createNode( BTree<K, V> btree, long revision, int nbElems )
{
- Node<K, V> node = new Node<K, V>( btree, revision, nbElems );
+ PersistedNode<K, V> node = new PersistedNode<K, V>( btree, revision, nbElems );
return node;
}
@@ -270,7 +270,7 @@ public class BTreeFactory
* @param pos The position in the values array
* @param value the value to inject
*/
- public static <K, V> void setValue( Node<K, V> page, int pos, PersistedPageHolder<K, V> value )
+ public static <K, V> void setValue( PersistedNode<K, V> page, int pos, PersistedPageHolder<K, V> value )
{
page.setValue( pos, value );
}
@@ -298,7 +298,7 @@ public class BTreeFactory
}
else
{
- Node<K, V> node = ( Node<K, V> ) btree.getRootPage();
+ PersistedNode<K, V> node = ( PersistedNode<K, V> ) btree.getRootPage();
while ( true )
{
@@ -343,7 +343,7 @@ public class BTreeFactory
}
else
{
- Node<K, V> node = ( Node<K, V> ) btree.getRootPage();
+ PersistedNode<K, V> node = ( PersistedNode<K, V> ) btree.getRootPage();
while ( true )
{
Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTree.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTree.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTree.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTree.java Mon Dec 16 17:40:44 2013
@@ -554,7 +554,7 @@ public class PersistedBTree<K, V> extend
rightPage, revision );
// Create the new rootPage
- newRootPage = new Node<K, V>( this, revision, pivot, holderLeft, holderRight );
+ newRootPage = new PersistedNode<K, V>( this, revision, pivot, holderLeft, holderRight );
// If the BTree is managed, we now have to write the page on disk
// and to add this page to the list of modified pages
Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTreeBuilder.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTreeBuilder.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTreeBuilder.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedBTreeBuilder.java Mon Dec 16 17:40:44 2013
@@ -169,7 +169,7 @@ public class PersistedBTreeBuilder<K, V>
int numChildren = numKeysInNode + 1;
- Node<K, V> node = createNode( btree, 0, numKeysInNode );
+ PersistedNode<K, V> node = createNode( btree, 0, numKeysInNode );
lstNodes.add( node );
int i = 0;
int totalNodes = 0;
Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedLeaf.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedLeaf.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedLeaf.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedLeaf.java Mon Dec 16 17:40:44 2013
@@ -222,8 +222,8 @@ import org.apache.directory.mavibot.btre
// if it has more than N/2 elements, or to merge the two pages.
// Check in both next and previous page, if they have the same parent
// and select the biggest page with the same parent to borrow an element.
- int siblingPos = selectSibling( ( Node<K, V> ) parent, parentPos );
- PersistedLeaf<K, V> sibling = ( PersistedLeaf<K, V> ) ( ( ( Node<K, V> ) parent ).getPage( siblingPos ) );
+ int siblingPos = selectSibling( ( PersistedNode<K, V> ) parent, parentPos );
+ PersistedLeaf<K, V> sibling = ( PersistedLeaf<K, V> ) ( ( ( PersistedNode<K, V> ) parent ).getPage( siblingPos ) );
if ( sibling.getNbElems() == halfSize )
{
Copied: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedNode.java (from r1551277, directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/Node.java)
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedNode.java?p2=directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedNode.java&p1=directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/Node.java&r1=1551277&r2=1551280&rev=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/Node.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/PersistedNode.java Mon Dec 16 17:40:44 2013
@@ -49,7 +49,7 @@ import org.apache.directory.mavibot.btre
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
-/* No qualifier */class Node<K, V> extends AbstractPage<K, V>
+/* No qualifier */class PersistedNode<K, V> extends AbstractPage<K, V>
{
/**
* Creates a new Node which will contain only one key, with references to
@@ -61,7 +61,7 @@ import org.apache.directory.mavibot.btre
* @param nbElems The number of elements in this Node
*/
@SuppressWarnings("unchecked")
- /* No qualifier */Node( BTree<K, V> btree, long revision, int nbElems )
+ PersistedNode( BTree<K, V> btree, long revision, int nbElems )
{
super( btree, revision, nbElems );
@@ -82,7 +82,7 @@ import org.apache.directory.mavibot.btre
* @param rightPage The right page
*/
@SuppressWarnings("unchecked")
- /* No qualifier */Node( BTree<K, V> btree, long revision, K key, Page<K, V> leftPage, Page<K, V> rightPage )
+ PersistedNode( BTree<K, V> btree, long revision, K key, Page<K, V> leftPage, Page<K, V> rightPage )
{
super( btree, revision, 1 );
@@ -114,7 +114,7 @@ import org.apache.directory.mavibot.btre
* @param rightPage The right page
*/
@SuppressWarnings("unchecked")
- /* No qualifier */Node( BTree<K, V> btree, long revision, K key, PersistedPageHolder<K, V> leftPage,
+ PersistedNode( BTree<K, V> btree, long revision, K key, PersistedPageHolder<K, V> leftPage,
PersistedPageHolder<K, V> rightPage )
{
super( btree, revision, 1 );
@@ -206,7 +206,7 @@ import org.apache.directory.mavibot.btre
// Simplest case : the element has been removed from the underlying page,
// we just have to copy the current page an modify the reference to link to
// the modified page.
- Node<K, V> newPage = copy( revision );
+ PersistedNode<K, V> newPage = copy( revision );
Page<K, V> modifiedPage = removeResult.getModifiedPage();
@@ -278,10 +278,10 @@ import org.apache.directory.mavibot.btre
* @throws IOException If we have an error while trying to access the page
*/
private DeleteResult<K, V> borrowFromRight( long revision, MergedWithSiblingResult<K, V> mergedResult,
- Node<K, V> sibling, int pos ) throws IOException
+ PersistedNode<K, V> sibling, int pos ) throws IOException
{
// Create the new sibling, with one less element at the beginning
- Node<K, V> newSibling = new Node<K, V>( btree, revision, sibling.getNbElems() - 1 );
+ PersistedNode<K, V> newSibling = new PersistedNode<K, V>( btree, revision, sibling.getNbElems() - 1 );
K siblingKey = sibling.children[0].getValue().getLeftMostKey();
@@ -291,7 +291,7 @@ import org.apache.directory.mavibot.btre
// Create the new page and add the new element at the end
// First copy the current node, with the same size
- Node<K, V> newNode = new Node<K, V>( btree, revision, nbElems );
+ PersistedNode<K, V> newNode = new PersistedNode<K, V>( btree, revision, nbElems );
// Copy the keys and the values up to the insertion position
int index = Math.abs( pos );
@@ -364,13 +364,13 @@ import org.apache.directory.mavibot.btre
* @throws IOException If we have an error while trying to access the page
*/
private DeleteResult<K, V> borrowFromLeft( long revision, MergedWithSiblingResult<K, V> mergedResult,
- Node<K, V> sibling, int pos ) throws IOException
+ PersistedNode<K, V> sibling, int pos ) throws IOException
{
// The sibling is on the left, borrow the rightmost element
Page<K, V> siblingChild = sibling.children[sibling.nbElems].getValue();
// Create the new sibling, with one less element at the end
- Node<K, V> newSibling = new Node<K, V>( btree, revision, sibling.getNbElems() - 1 );
+ PersistedNode<K, V> newSibling = new PersistedNode<K, V>( btree, revision, sibling.getNbElems() - 1 );
// Copy the keys and children of the old sibling in the new sibling
System.arraycopy( sibling.keys, 0, newSibling.keys, 0, newSibling.getNbElems() );
@@ -378,7 +378,7 @@ import org.apache.directory.mavibot.btre
// Create the new page and add the new element at the beginning
// First copy the current node, with the same size
- Node<K, V> newNode = new Node<K, V>( btree, revision, nbElems );
+ PersistedNode<K, V> newNode = new PersistedNode<K, V>( btree, revision, nbElems );
// Sets the first children
newNode.children[0] = createHolder( siblingChild ); //1
@@ -453,11 +453,11 @@ import org.apache.directory.mavibot.btre
* @throws IOException If we have an error while trying to access the page
*/
private DeleteResult<K, V> mergeWithSibling( long revision, MergedWithSiblingResult<K, V> mergedResult,
- Node<K, V> sibling, boolean isLeft, int pos ) throws IOException
+ PersistedNode<K, V> sibling, boolean isLeft, int pos ) throws IOException
{
// Create the new node. It will contain N - 1 elements (the maximum number)
// as we merge two nodes that contain N/2 elements minus the one we remove
- Node<K, V> newNode = new Node<K, V>( btree, revision, btree.getPageSize() );
+ PersistedNode<K, V> newNode = new PersistedNode<K, V>( btree, revision, btree.getPageSize() );
Tuple<K, V> removedElement = mergedResult.getRemovedElement();
int half = btree.getPageSize() / 2;
int index = Math.abs( pos );
@@ -659,9 +659,9 @@ import org.apache.directory.mavibot.btre
// We will remove one element from a page that will have less than N/2 elements,
// which will lead to some reorganization : either we can borrow an element from
// a sibling, or we will have to merge two pages
- int siblingPos = selectSibling( ( Node<K, V> ) parent, parentPos );
+ int siblingPos = selectSibling( ( PersistedNode<K, V> ) parent, parentPos );
- Node<K, V> sibling = ( Node<K, V> ) ( ( ( Node<K, V> ) parent ).children[siblingPos].getValue() );
+ PersistedNode<K, V> sibling = ( PersistedNode<K, V> ) ( ( ( PersistedNode<K, V> ) parent ).children[siblingPos].getValue() );
if ( sibling.getNbElems() > halfSize )
{
@@ -711,7 +711,7 @@ import org.apache.directory.mavibot.btre
Page<K, V> modifiedPage = borrowedResult.getModifiedPage();
Page<K, V> modifiedSibling = borrowedResult.getModifiedSibling();
- Node<K, V> newPage = copy( revision );
+ PersistedNode<K, V> newPage = copy( revision );
if ( pos < 0 )
{
@@ -784,7 +784,7 @@ import org.apache.directory.mavibot.btre
throws IOException
{
// First copy the current page, but remove one element in the copied page
- Node<K, V> newNode = new Node<K, V>( btree, revision, nbElems - 1 );
+ PersistedNode<K, V> newNode = new PersistedNode<K, V>( btree, revision, nbElems - 1 );
int index = Math.abs( pos ) - 2;
@@ -883,7 +883,7 @@ import org.apache.directory.mavibot.btre
// to point on the modified child
Page<K, V> modifiedPage = result.getModifiedPage();
- ( ( Node<K, V> ) newPage ).children[pos] = createHolder( modifiedPage );
+ ( ( PersistedNode<K, V> ) newPage ).children[pos] = createHolder( modifiedPage );
// We can return the result, where we update the modifiedPage,
// to avoid the creation of a new object
@@ -930,7 +930,7 @@ import org.apache.directory.mavibot.btre
throws IOException
{
// First copy the current page, but add one element in the copied page
- Node<K, V> newNode = new Node<K, V>( btree, revision, nbElems + 1 );
+ PersistedNode<K, V> newNode = new PersistedNode<K, V>( btree, revision, nbElems + 1 );
// Copy the keys and the children up to the insertion position
if ( nbElems > 0 )
@@ -986,8 +986,8 @@ import org.apache.directory.mavibot.btre
int middle = btree.getPageSize() >> 1;
// Create two new pages
- Node<K, V> newLeftPage = new Node<K, V>( btree, revision, middle );
- Node<K, V> newRightPage = new Node<K, V>( btree, revision, middle );
+ PersistedNode<K, V> newLeftPage = new PersistedNode<K, V>( btree, revision, middle );
+ PersistedNode<K, V> newRightPage = new PersistedNode<K, V>( btree, revision, middle );
// Determinate where to store the new value
// If it's before the middle, insert the value on the left,
@@ -1087,9 +1087,9 @@ import org.apache.directory.mavibot.btre
* @param revision The new revision
* @return The copied page
*/
- protected Node<K, V> copy( long revision )
+ protected PersistedNode<K, V> copy( long revision )
{
- Node<K, V> newPage = new Node<K, V>( btree, revision, nbElems );
+ PersistedNode<K, V> newPage = new PersistedNode<K, V>( btree, revision, nbElems );
// Copy the keys
System.arraycopy( keys, 0, newPage.keys, 0, nbElems );
Modified: directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/RecordManager.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/RecordManager.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/RecordManager.java (original)
+++ directory/mavibot/trunk/mavibot/src/main/java/org/apache/directory/mavibot/btree/persisted/RecordManager.java Mon Dec 16 17:40:44 2013
@@ -680,10 +680,10 @@ public class RecordManager
/**
* Deserialize a Node from some PageIos
*/
- private <K, V> Node<K, V> readNodeKeysAndValues( BTree<K, V> btree, int nbElems, long revision, ByteBuffer byteBuffer,
+ private <K, V> PersistedNode<K, V> readNodeKeysAndValues( BTree<K, V> btree, int nbElems, long revision, ByteBuffer byteBuffer,
PageIO[] pageIos ) throws IOException
{
- Node<K, V> node = BTreeFactory.createNode( btree, revision, nbElems );
+ PersistedNode<K, V> node = BTreeFactory.createNode( btree, revision, nbElems );
// Read each value and key
for ( int i = 0; i < nbElems; i++ )
@@ -1166,7 +1166,7 @@ public class RecordManager
int dataSize = 0;
int serializedSize = 0;
- if ( page instanceof Node )
+ if ( page instanceof PersistedNode )
{
// A Node has one more value to store
nbBuffers++;
@@ -1184,7 +1184,7 @@ public class RecordManager
// Make it a negative value if it's a Node
int pageNbElems = nbElems;
- if ( page instanceof Node )
+ if ( page instanceof PersistedNode )
{
pageNbElems = -nbElems;
}
@@ -1199,10 +1199,10 @@ public class RecordManager
for ( int pos = 0; pos < nbElems; pos++ )
{
// Start with the value
- if ( page instanceof Node )
+ if ( page instanceof PersistedNode )
{
- dataSize += serializeNodeValue( ( Node<K, V> ) page, pos, serializedData );
- dataSize += serializeNodeKey( ( Node<K, V> ) page, pos, serializedData );
+ dataSize += serializeNodeValue( ( PersistedNode<K, V> ) page, pos, serializedData );
+ dataSize += serializeNodeKey( ( PersistedNode<K, V> ) page, pos, serializedData );
}
else
{
@@ -1212,9 +1212,9 @@ public class RecordManager
}
// Nodes have one more value to serialize
- if ( page instanceof Node )
+ if ( page instanceof PersistedNode )
{
- dataSize += serializeNodeValue( ( Node<K, V> ) page, nbElems, serializedData );
+ dataSize += serializeNodeValue( ( PersistedNode<K, V> ) page, nbElems, serializedData );
}
// Store the data size
@@ -1243,7 +1243,7 @@ public class RecordManager
/**
* Serialize a Node's key
*/
- private <K, V> int serializeNodeKey( Node<K, V> node, int pos, List<byte[]> serializedData )
+ private <K, V> int serializeNodeKey( PersistedNode<K, V> node, int pos, List<byte[]> serializedData )
{
KeyHolder<K> holder = node.getKeyHolder( pos );
byte[] buffer = ((PersistedKeyHolder<K>)holder).getRaw();
@@ -1262,7 +1262,7 @@ public class RecordManager
/**
* Serialize a Node's Value. We store the two offsets of the child page.
*/
- private <K, V> int serializeNodeValue( Node<K, V> node, int pos, List<byte[]> serializedData )
+ private <K, V> int serializeNodeValue( PersistedNode<K, V> node, int pos, List<byte[]> serializedData )
throws IOException
{
// For a node, we just store the children's offsets
Modified: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeTest.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeTest.java (original)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/InMemoryBTreeTest.java Mon Dec 16 17:40:44 2013
@@ -1064,7 +1064,7 @@ public class InMemoryBTreeTest
}
- private void addPage( BTree<Integer, String> btree, Node<Integer, String> node, Page<Integer, String> page, int pos )
+ private void addPage( BTree<Integer, String> btree, InMemoryNode<Integer, String> node, Page<Integer, String> page, int pos )
throws EndOfFileExceededException, IOException
{
Tuple<Integer, String> leftmost = page.findLeftMost();
@@ -1139,13 +1139,13 @@ public class InMemoryBTreeTest
BTree<Integer, String> btree = new InMemoryBTree<Integer, String>( "test", new IntSerializer(), new StringSerializer(),
pageSize );
- Node<Integer, String> root = new Node<Integer, String>( btree, 1L, pageSize );
+ InMemoryNode<Integer, String> root = new InMemoryNode<Integer, String>( btree, 1L, pageSize );
// Create the tree with 3 levels, all the leaves containing only N/2 elements
int counter = 1;
for ( int i = 0; i < pageSize + 1; i++ )
{
- Node<Integer, String> node = new Node<Integer, String>( btree, 1L, pageSize );
+ InMemoryNode<Integer, String> node = new InMemoryNode<Integer, String>( btree, 1L, pageSize );
for ( int j = 0; j < pageSize + 1; j++ )
{
Modified: directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/LeafTest.java
URL: http://svn.apache.org/viewvc/directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/LeafTest.java?rev=1551280&r1=1551279&r2=1551280&view=diff
==============================================================================
--- directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/LeafTest.java (original)
+++ directory/mavibot/trunk/mavibot/src/test/java/org/apache/directory/mavibot/btree/memory/LeafTest.java Mon Dec 16 17:40:44 2013
@@ -227,7 +227,7 @@ public class LeafTest
@Test
public void testDeleteBorrowingFromLeftSibling() throws IOException
{
- Node<Long, String> parent = new Node<Long, String>( btree, 1L, 2 );
+ InMemoryNode<Long, String> parent = new InMemoryNode<Long, String>( btree, 1L, 2 );
InMemoryLeaf<Long, String> left = new InMemoryLeaf<Long, String>( btree );
InMemoryLeaf<Long, String> target = new InMemoryLeaf<Long, String>( btree );
InMemoryLeaf<Long, String> right = new InMemoryLeaf<Long, String>( btree );
@@ -297,7 +297,7 @@ public class LeafTest
@Test
public void testDeleteBorrowingFromRightSibling() throws IOException
{
- Node<Long, String> parent = new Node<Long, String>( btree, 1L, 2 );
+ InMemoryNode<Long, String> parent = new InMemoryNode<Long, String>( btree, 1L, 2 );
InMemoryLeaf<Long, String> left = new InMemoryLeaf<Long, String>( btree );
InMemoryLeaf<Long, String> target = new InMemoryLeaf<Long, String>( btree );
InMemoryLeaf<Long, String> right = new InMemoryLeaf<Long, String>( btree );
@@ -368,7 +368,7 @@ public class LeafTest
@Test
public void testDeleteMergeWithSibling() throws IOException
{
- Node<Long, String> parent = new Node<Long, String>( btree, 1L, 2 );
+ InMemoryNode<Long, String> parent = new InMemoryNode<Long, String>( btree, 1L, 2 );
InMemoryLeaf<Long, String> left = new InMemoryLeaf<Long, String>( btree );
InMemoryLeaf<Long, String> target = new InMemoryLeaf<Long, String>( btree );
InMemoryLeaf<Long, String> right = new InMemoryLeaf<Long, String>( btree );