You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2010/02/01 08:08:24 UTC
svn commit: r905194 [2/2] - in
/directory/sandbox/seelmann/hbase-partition/src:
main/java/org/apache/directory/server/core/partition/hbase/
main/java/org/apache/directory/server/core/partition/hbase/cursor/
main/java/org/apache/directory/server/core/pa...
Copied: directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseDistributedRunner.java (from r902620, directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseRunner.java)
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseDistributedRunner.java?p2=directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseDistributedRunner.java&p1=directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseRunner.java&r1=902620&r2=905194&rev=905194&view=diff
==============================================================================
--- directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseRunner.java (original)
+++ directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseDistributedRunner.java Mon Feb 1 07:08:23 2010
@@ -21,11 +21,15 @@
import org.apache.directory.server.annotations.CreateLdapServer;
import org.apache.directory.server.annotations.CreateTransport;
+import org.apache.directory.server.core.CoreSession;
import org.apache.directory.server.core.annotations.CreateDS;
import org.apache.directory.server.core.annotations.CreatePartition;
import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
import org.apache.directory.server.core.integ.FrameworkRunner;
-import org.junit.Ignore;
+import org.apache.directory.server.core.partition.hbase.it.AbstractHBasePartitionIT;
+import org.apache.directory.shared.ldap.name.LdapDN;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -47,19 +51,47 @@
@CreatePartition(
name = "hbase",
suffix = "o=hbase",
- type = HBasePartition.class
+ type = HBaseDistributedPartition.class
),
@CreatePartition(
name = "sevenSeas",
suffix = "o=sevenSeas",
- type = HBasePartition.class
+ type = HBaseDistributedPartition.class
)
})
@CreateLdapServer(transports =
- { @CreateTransport(protocol = "LDAP", port = 10389) })
-@Ignore
-public class HBaseRunner extends AbstractLdapTestUnit
+ { @CreateTransport(protocol = "LDAP", port = 10389, nbThreads=48) })
+//@Ignore
+public class HBaseDistributedRunner extends AbstractLdapTestUnit
{
+ protected CoreSession session;
+
+
+ @Before
+ public void initTestData() throws Exception
+ {
+ session = ldapServer.getDirectoryService().getAdminSession();
+
+ if ( !session.exists( new LdapDN( "o=hbase" ) ) || !session.exists( new LdapDN( "ou=test-ou,o=hbase" ) )
+ || !session.exists( new LdapDN( "cn=test-person,ou=test-ou,o=hbase" ) ) )
+ {
+ AbstractHBasePartitionIT.createBasicTestData( ldapServer );
+ }
+ if ( !session.exists( new LdapDN( "ou=test1000,o=hbase" ) ) )
+ {
+ AbstractHBasePartitionIT.createTestData( 1000, "000", ldapServer );
+ }
+ if ( !session.exists( new LdapDN( "ou=test10000,o=hbase" ) ) )
+ {
+ AbstractHBasePartitionIT.createTestData( 10000, "0000", ldapServer );
+ }
+ if ( !session.exists( new LdapDN( "ou=test100000,o=hbase" ) ) )
+ {
+ AbstractHBasePartitionIT.createTestData( 100000, "00000", ldapServer );
+ }
+ AbstractHBasePartitionIT.compactDatabase( new HBaseConfiguration() );
+ }
+
@Test
public void runServer() throws Exception
Added: directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseEmbeddedRunner.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseEmbeddedRunner.java?rev=905194&view=auto
==============================================================================
--- directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseEmbeddedRunner.java (added)
+++ directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/HBaseEmbeddedRunner.java Mon Feb 1 07:08:23 2010
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.directory.server.core.partition.hbase;
+
+import java.util.Set;
+
+import org.apache.directory.server.annotations.CreateLdapServer;
+import org.apache.directory.server.annotations.CreateTransport;
+import org.apache.directory.server.core.CoreSession;
+import org.apache.directory.server.core.annotations.CreateDS;
+import org.apache.directory.server.core.annotations.CreateIndex;
+import org.apache.directory.server.core.annotations.CreatePartition;
+import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
+import org.apache.directory.server.core.integ.FrameworkRunner;
+import org.apache.directory.server.core.partition.Partition;
+import org.apache.directory.server.core.partition.hbase.index.HBaseUserColumnIndex;
+import org.apache.directory.server.core.partition.hbase.index.HBaseUserRowIndex;
+import org.apache.directory.server.core.partition.hbase.it.AbstractHBasePartitionIT;
+import org.apache.directory.shared.ldap.name.LdapDN;
+import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+/**
+ * Starts up an ApacheDS LDAP server with an HBase partition.
+ * The partition starts up an embedded HBase partition.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ * @version $Rev$, $Date$
+ */
+@RunWith(FrameworkRunner.class)
+@CreateDS(
+ name = "hbase",
+ enableChangeLog = false,
+ partitions =
+ {
+ @CreatePartition(
+ name = "hbase",
+ suffix = "o=hbase",
+ type = HBaseEmbeddedPartition.class,
+ cacheSize=1000,
+ indexes = {
+ @CreateIndex( attribute="cn", cacheSize=100, type = HBaseUserColumnIndex.class ),
+ @CreateIndex( attribute="uid", cacheSize=100, type = HBaseUserColumnIndex.class ),
+
+ @CreateIndex( attribute="dc", cacheSize=10, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="o", cacheSize=10, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="ou", cacheSize=100, type = HBaseUserRowIndex.class ),
+
+ @CreateIndex( attribute="objectClass", cacheSize=100, type = HBaseUserRowIndex.class ),
+ }
+ )
+// ,
+// @CreatePartition(
+// name = "sevenSeas",
+// suffix = "o=sevenSeas",
+// type = HBaseEmbeddedPartition.class
+// )
+ })
+@CreateLdapServer(transports =
+ { @CreateTransport(protocol = "LDAP", port = 10389, nbThreads=16) })
+//@Ignore
+public class HBaseEmbeddedRunner extends AbstractLdapTestUnit
+{
+ protected CoreSession session;
+
+
+ @Before
+ public void initTestData() throws Exception
+ {
+ session = ldapServer.getDirectoryService().getAdminSession();
+ Set<? extends Partition> partitions = ldapServer.getDirectoryService().getPartitions();
+ System.out.println(partitions);
+
+ if ( !session.exists( new LdapDN( "o=hbase" ) ) || !session.exists( new LdapDN( "ou=test-ou,o=hbase" ) )
+ || !session.exists( new LdapDN( "cn=test-person,ou=test-ou,o=hbase" ) ) )
+ {
+ AbstractHBasePartitionIT.createBasicTestData( ldapServer );
+ }
+ if ( !session.exists( new LdapDN( "ou=test1000,o=hbase" ) ) )
+ {
+ AbstractHBasePartitionIT.createTestData( 1000, "000", ldapServer );
+ }
+// if ( !session.exists( new LdapDN( "ou=test10000,o=hbase" ) ) )
+// {
+// AbstractHBasePartitionIT.createTestData( 10000, "0000", ldapServer );
+// }
+// if ( !session.exists( new LdapDN( "ou=test100000,o=hbase" ) ) )
+// {
+// AbstractHBasePartitionIT.createTestData( 100000, "00000", ldapServer );
+// }
+ AbstractHBasePartitionIT.compactDatabase( new HBaseConfiguration() );
+ }
+
+
+ @Test
+ public void runServer() throws Exception
+ {
+ System.out.println( "ApacheDS started on port " + ldapServer.getPort() + ", press any key to shutdown..." );
+ System.in.read();
+ }
+
+}
\ No newline at end of file
Modified: directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/AbstractHBasePartitionIT.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/AbstractHBasePartitionIT.java?rev=905194&r1=905193&r2=905194&view=diff
==============================================================================
--- directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/AbstractHBasePartitionIT.java (original)
+++ directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/AbstractHBasePartitionIT.java Mon Feb 1 07:08:23 2010
@@ -28,10 +28,10 @@
import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
import org.apache.directory.server.core.partition.hbase.HBaseClusterTestCaseAdapter;
-import org.apache.directory.server.core.partition.hbase.table.HBaseTableHelper;
import org.apache.directory.server.ldap.LdapServer;
import org.apache.directory.shared.ldap.name.LdapDN;
import org.apache.directory.shared.ldap.schema.SchemaManager;
+import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.junit.AfterClass;
import org.junit.Before;
@@ -75,7 +75,7 @@
"apacheds_hbase_index_cn" };
- public void createBasicTestData( LdapServer ldapServer ) throws Exception
+ public static void createBasicTestData( LdapServer ldapServer ) throws Exception
{
CoreSession session = ldapServer.getDirectoryService().getAdminSession();
SchemaManager schemaManager = ldapServer.getDirectoryService().getSchemaManager();
@@ -115,13 +115,13 @@
}
- public void createTestData( int number, String pattern, LdapServer ldapServer ) throws Exception
+ public static void createTestData( int number, String pattern, LdapServer ldapServer ) throws Exception
{
createTestData( number, 0, number, pattern, ldapServer );
}
- public void createTestData( int number, int start, int stop, String pattern, LdapServer ldapServer )
+ public static void createTestData( int number, int start, int stop, String pattern, LdapServer ldapServer )
throws Exception
{
CoreSession session = ldapServer.getDirectoryService().getAdminSession();
@@ -169,9 +169,9 @@
}
- public void compactDatabase() throws Exception
+ public static void compactDatabase( HBaseConfiguration conf ) throws Exception
{
- HBaseAdmin admin = new HBaseAdmin( HBaseTableHelper.getHBaseConfiguration() );
+ HBaseAdmin admin = new HBaseAdmin( conf );
for ( String table : TABLES )
{
if ( admin.tableExists( table ) )
Modified: directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBasePartitionIT.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBasePartitionIT.java?rev=905194&r1=905193&r2=905194&view=diff
==============================================================================
--- directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBasePartitionIT.java (original)
+++ directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBasePartitionIT.java Mon Feb 1 07:08:23 2010
@@ -39,12 +39,15 @@
import org.apache.directory.server.annotations.CreateLdapServer;
import org.apache.directory.server.annotations.CreateTransport;
import org.apache.directory.server.core.annotations.CreateDS;
+import org.apache.directory.server.core.annotations.CreateIndex;
import org.apache.directory.server.core.annotations.CreatePartition;
import org.apache.directory.server.core.entry.ClonedServerEntry;
import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.server.core.filtering.EntryFilteringCursor;
import org.apache.directory.server.core.integ.FrameworkRunner;
-import org.apache.directory.server.core.partition.hbase.HBasePartition;
+import org.apache.directory.server.core.partition.hbase.HBaseDistributedPartition;
+import org.apache.directory.server.core.partition.hbase.index.HBaseUserColumnIndex;
+import org.apache.directory.server.core.partition.hbase.index.HBaseUserRowIndex;
import org.apache.directory.shared.ldap.entry.Entry;
import org.apache.directory.shared.ldap.entry.Modification;
import org.apache.directory.shared.ldap.entry.ModificationOperation;
@@ -68,7 +71,15 @@
@CreatePartition(
name = "hbase",
suffix = "o=hbase",
- type = HBasePartition.class
+ type = HBaseDistributedPartition.class,
+ indexes = {
+ @CreateIndex( attribute="cn", cacheSize=100, type = HBaseUserColumnIndex.class ),
+ @CreateIndex( attribute="uid", cacheSize=100, type = HBaseUserColumnIndex.class ),
+ @CreateIndex( attribute="dc", cacheSize=10, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="o", cacheSize=10, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="ou", cacheSize=100, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="objectClass", cacheSize=100, type = HBaseUserRowIndex.class )
+ }
)
})
@CreateLdapServer(transports =
Modified: directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBasePartitionPerformanceIT.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBasePartitionPerformanceIT.java?rev=905194&r1=905193&r2=905194&view=diff
==============================================================================
--- directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBasePartitionPerformanceIT.java (original)
+++ directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBasePartitionPerformanceIT.java Mon Feb 1 07:08:23 2010
@@ -32,13 +32,16 @@
import org.apache.directory.server.annotations.CreateLdapServer;
import org.apache.directory.server.annotations.CreateTransport;
import org.apache.directory.server.core.annotations.CreateDS;
+import org.apache.directory.server.core.annotations.CreateIndex;
import org.apache.directory.server.core.annotations.CreatePartition;
import org.apache.directory.server.core.entry.ClonedServerEntry;
import org.apache.directory.server.core.entry.DefaultServerEntry;
import org.apache.directory.server.core.entry.ServerEntry;
import org.apache.directory.server.core.filtering.EntryFilteringCursor;
import org.apache.directory.server.core.integ.FrameworkRunner;
-import org.apache.directory.server.core.partition.hbase.HBasePartition;
+import org.apache.directory.server.core.partition.hbase.HBaseDistributedPartition;
+import org.apache.directory.server.core.partition.hbase.index.HBaseUserColumnIndex;
+import org.apache.directory.server.core.partition.hbase.index.HBaseUserRowIndex;
import org.apache.directory.shared.ldap.filter.FilterParser;
import org.apache.directory.shared.ldap.filter.SearchScope;
import org.apache.directory.shared.ldap.message.AliasDerefMode;
@@ -57,7 +60,15 @@
@CreatePartition(
name = "hbase",
suffix = "o=hbase",
- type = HBasePartition.class
+ type = HBaseDistributedPartition.class,
+ indexes = {
+ @CreateIndex( attribute="cn", cacheSize=100, type = HBaseUserColumnIndex.class ),
+ @CreateIndex( attribute="uid", cacheSize=100, type = HBaseUserColumnIndex.class ),
+ @CreateIndex( attribute="dc", cacheSize=10, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="o", cacheSize=10, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="ou", cacheSize=100, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="objectClass", cacheSize=100, type = HBaseUserRowIndex.class )
+ }
)
})
@CreateLdapServer(transports =
@@ -83,7 +94,7 @@
// Flush and compact the database, otherwise the tests
// would run very slow and an OOM exception could occur.
- compactDatabase();
+ compactDatabase( adapter.getHBaseConfigurtion() );
}
}
Modified: directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBaseRunner.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBaseRunner.java?rev=905194&r1=905193&r2=905194&view=diff
==============================================================================
--- directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBaseRunner.java (original)
+++ directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/it/HBaseRunner.java Mon Feb 1 07:08:23 2010
@@ -23,9 +23,12 @@
import org.apache.directory.server.annotations.CreateLdapServer;
import org.apache.directory.server.annotations.CreateTransport;
import org.apache.directory.server.core.annotations.CreateDS;
+import org.apache.directory.server.core.annotations.CreateIndex;
import org.apache.directory.server.core.annotations.CreatePartition;
import org.apache.directory.server.core.integ.FrameworkRunner;
-import org.apache.directory.server.core.partition.hbase.HBasePartition;
+import org.apache.directory.server.core.partition.hbase.HBaseDistributedPartition;
+import org.apache.directory.server.core.partition.hbase.index.HBaseUserColumnIndex;
+import org.apache.directory.server.core.partition.hbase.index.HBaseUserRowIndex;
import org.apache.directory.shared.ldap.name.LdapDN;
import org.junit.Before;
import org.junit.Ignore;
@@ -42,8 +45,25 @@
* @version $Rev$, $Date$
*/
@RunWith(FrameworkRunner.class)
-@CreateDS(name = "hbase", enableChangeLog = false, partitions =
- { @CreatePartition(name = "hbase", suffix = "o=hbase", type = HBasePartition.class) })
+@CreateDS(
+ name = "hbase",
+ enableChangeLog = false,
+ partitions =
+ {
+ @CreatePartition(
+ name = "hbase",
+ suffix = "o=hbase",
+ type = HBaseDistributedPartition.class,
+ indexes = {
+ @CreateIndex( attribute="cn", cacheSize=100, type = HBaseUserColumnIndex.class ),
+ @CreateIndex( attribute="uid", cacheSize=100, type = HBaseUserColumnIndex.class ),
+ @CreateIndex( attribute="dc", cacheSize=10, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="o", cacheSize=10, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="ou", cacheSize=100, type = HBaseUserRowIndex.class ),
+ @CreateIndex( attribute="objectClass", cacheSize=100, type = HBaseUserRowIndex.class )
+ }
+ )
+ })
@CreateLdapServer(transports =
{ @CreateTransport(protocol = "LDAP") })
@Ignore
@@ -66,7 +86,7 @@
{
createTestData( 10000, "0000", ldapServer );
}
- compactDatabase();
+ compactDatabase( adapter.getHBaseConfigurtion() );
}
Modified: directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBaseIndexTableTest.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBaseIndexTableTest.java?rev=905194&r1=905193&r2=905194&view=diff
==============================================================================
--- directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBaseIndexTableTest.java (original)
+++ directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBaseIndexTableTest.java Mon Feb 1 07:08:23 2010
@@ -88,10 +88,12 @@
}
}
- objectClassIndexTable = new HBaseRowIndexTable( "2.5.4.0", schemaManager, TABLE_PREFIX );
- jpegPhotoIndexTable = new HBaseRowIndexTable( "0.9.2342.19200300.100.1.60", schemaManager, TABLE_PREFIX );
- cnIndexTable = new HBaseColumnIndexTable( "2.5.4.3", schemaManager, TABLE_PREFIX );
- userCertificateIndexTable = new HBaseColumnIndexTable( "2.5.4.36", schemaManager, TABLE_PREFIX );
+ objectClassIndexTable = new HBaseRowIndexTable( "2.5.4.0", schemaManager, TABLE_PREFIX, adapter.conf, 100 );
+ jpegPhotoIndexTable = new HBaseRowIndexTable( "0.9.2342.19200300.100.1.60", schemaManager, TABLE_PREFIX,
+ adapter.conf, 100 );
+ cnIndexTable = new HBaseColumnIndexTable( "2.5.4.3", schemaManager, TABLE_PREFIX, adapter.conf, 100 );
+ userCertificateIndexTable = new HBaseColumnIndexTable( "2.5.4.36", schemaManager, TABLE_PREFIX, adapter.conf,
+ 100 );
}
@@ -99,8 +101,7 @@
public void first() throws Exception
{
DefaultServerEntry entry = buildContextEntry();
- //cnIndexTable.add( entry.get( "cn" ), 1L );
- objectClassIndexTable.add( entry.get( "objectClass" ), 1L );
+ objectClassIndexTable.add( entry.get( "objectClass" ).get( 0 ).getBytes(), 1L );
}
@@ -109,7 +110,7 @@
{
// 1st entry
DefaultServerEntry entry = buildContextEntry();
- objectClassIndexTable.add( entry.get( "objectClass" ), 1L );
+ objectClassIndexTable.add( entry.get( "objectClass" ).get( 0 ).getBytes(), 1L );
HTable objectClassIndexHTable = new HTable( OBJECTCLASS_INDEX_TABLE_NAME );
@@ -133,12 +134,15 @@
// 2nd entry
entry = buildOuSalesEntry();
- objectClassIndexTable.add( entry.get( "objectClass" ), 2L );
+ objectClassIndexTable.add( entry.get( "objectClass" ).get( 0 ).getBytes(), 2L );
+ objectClassIndexTable.add( entry.get( "objectClass" ).get( 1 ).getBytes(), 2L );
// 3rd entry
entry = buildCnJohnnyWalkerEntry();
- objectClassIndexTable.add( entry.get( "objectClass" ), 3L );
- cnIndexTable.add( entry.get( "cn" ), 3L );
+ objectClassIndexTable.add( entry.get( "objectClass" ).get( 0 ).getBytes(), 3L );
+ objectClassIndexTable.add( entry.get( "objectClass" ).get( 1 ).getBytes(), 3L );
+ objectClassIndexTable.add( entry.get( "objectClass" ).get( 2 ).getBytes(), 3L );
+ cnIndexTable.add( entry.get( "cn" ).get( 0 ).getBytes(), 3L );
HTable cnIndexHTable = new HTable( CN_INDEX_TABLE_NAME );
@@ -183,23 +187,28 @@
{
// 1st entry
DefaultServerEntry contextEntry = buildContextEntry();
- objectClassIndexTable.add( contextEntry.get( "objectClass" ), 1L );
+ objectClassIndexTable.add( contextEntry.get( "objectClass" ).get( 0 ).getBytes(), 1L );
// 2nd entry
DefaultServerEntry ouSalesEntry = buildOuSalesEntry();
- objectClassIndexTable.add( ouSalesEntry.get( "objectClass" ), 2L );
+ objectClassIndexTable.add( ouSalesEntry.get( "objectClass" ).get( 0 ).getBytes(), 2L );
+ objectClassIndexTable.add( ouSalesEntry.get( "objectClass" ).get( 1 ).getBytes(), 2L );
// 3rd entry
DefaultServerEntry cnEntry = buildCnJohnnyWalkerEntry();
- objectClassIndexTable.add( cnEntry.get( "objectClass" ), 3L );
- cnIndexTable.add( cnEntry.get( "cn" ), 3L );
+ objectClassIndexTable.add( cnEntry.get( "objectClass" ).get( 0 ).getBytes(), 3L );
+ objectClassIndexTable.add( cnEntry.get( "objectClass" ).get( 1 ).getBytes(), 3L );
+ objectClassIndexTable.add( cnEntry.get( "objectClass" ).get( 2 ).getBytes(), 3L );
+ cnIndexTable.add( cnEntry.get( "cn" ).get( 0 ).getBytes(), 3L );
HTable objectClassIndexHTable = new HTable( OBJECTCLASS_INDEX_TABLE_NAME );
HTable cnIndexHTable = new HTable( CN_INDEX_TABLE_NAME );
// detete 3rd entry
- objectClassIndexTable.delete( cnEntry.get( "objectClass" ), 3L );
- cnIndexTable.delete( cnEntry.get( "cn" ), 3L );
+ objectClassIndexTable.drop( cnEntry.get( "objectClass" ).get( 0 ).getBytes(), 3L );
+ objectClassIndexTable.drop( cnEntry.get( "objectClass" ).get( 1 ).getBytes(), 3L );
+ objectClassIndexTable.drop( cnEntry.get( "objectClass" ).get( 2 ).getBytes(), 3L );
+ cnIndexTable.drop( cnEntry.get( "cn" ).get( 0 ).getBytes(), 3L );
assertTrue( objectClassIndexHTable.exists( new Get( Bytes.add( Bytes.toBytes( "=organization" ), Bytes
.toBytes( Base64.encodeBytes( Bytes.toBytes( 1L ) ) ) ) ) ) );
@@ -235,8 +244,9 @@
assertEquals( 0L, Bytes.toLong( cnCountInfoMap.get( Bytes.toBytes( "count" ) ) ) );
// detete 2nd and 1st entry
- objectClassIndexTable.delete( ouSalesEntry.get( "objectClass" ), 2L );
- objectClassIndexTable.delete( contextEntry.get( "objectClass" ), 1L );
+ objectClassIndexTable.drop( ouSalesEntry.get( "objectClass" ).get( 0 ).getBytes(), 2L );
+ objectClassIndexTable.drop( ouSalesEntry.get( "objectClass" ).get( 1 ).getBytes(), 2L );
+ objectClassIndexTable.drop( contextEntry.get( "objectClass" ).get( 0 ).getBytes(), 1L );
assertFalse( objectClassIndexHTable.exists( new Get( Bytes.add( Bytes.toBytes( "=organization" ), Bytes
.toBytes( Base64.encodeBytes( Bytes.toBytes( 1L ) ) ) ) ) ) );
@@ -264,30 +274,36 @@
// 1st entry
DefaultServerEntry contextEntry = buildContextEntry();
- objectClassIndexTable.add( contextEntry.get( "objectClass" ), 1L );
+ objectClassIndexTable.add( contextEntry.get( "objectClass" ).get( 0 ).getBytes(), 1L );
assertEquals( 1, objectClassIndexTable.count( "organization" ) );
// 2nd entry
DefaultServerEntry ouSalesEntry = buildOuSalesEntry();
- objectClassIndexTable.add( ouSalesEntry.get( "objectClass" ), 2L );
+ objectClassIndexTable.add( ouSalesEntry.get( "objectClass" ).get( 0 ).getBytes(), 2L );
+ objectClassIndexTable.add( ouSalesEntry.get( "objectClass" ).get( 1 ).getBytes(), 2L );
assertEquals( 1, objectClassIndexTable.count( "top" ) );
assertEquals( 1, objectClassIndexTable.count( "organizationalunit" ) );
// 3rd entry
DefaultServerEntry cnEntry = buildCnJohnnyWalkerEntry();
- objectClassIndexTable.add( cnEntry.get( "objectClass" ), 3L );
- cnIndexTable.add( cnEntry.get( "cn" ), 3L );
+ objectClassIndexTable.add( cnEntry.get( "objectClass" ).get( 0 ).getBytes(), 3L );
+ objectClassIndexTable.add( cnEntry.get( "objectClass" ).get( 1 ).getBytes(), 3L );
+ objectClassIndexTable.add( cnEntry.get( "objectClass" ).get( 2 ).getBytes(), 3L );
+ cnIndexTable.add( cnEntry.get( "cn" ).get( 0 ).getBytes(), 3L );
assertEquals( 2, objectClassIndexTable.count( "top" ) );
assertEquals( 1, objectClassIndexTable.count( "person" ) );
assertEquals( 1, cnIndexTable.count( "johnny \u65E5\u672C walker" ) );
// delete 3rd and 2nd
- objectClassIndexTable.delete( cnEntry.get( "objectClass" ), 3L );
- cnIndexTable.delete( cnEntry.get( "cn" ), 3L );
- objectClassIndexTable.delete( ouSalesEntry.get( "objectClass" ), 2L );
+ objectClassIndexTable.drop( cnEntry.get( "objectClass" ).get( 0 ).getBytes(), 3L );
+ objectClassIndexTable.drop( cnEntry.get( "objectClass" ).get( 1 ).getBytes(), 3L );
+ objectClassIndexTable.drop( cnEntry.get( "objectClass" ).get( 2 ).getBytes(), 3L );
+ cnIndexTable.drop( cnEntry.get( "cn" ).get( 0 ).getBytes(), 3L );
+ objectClassIndexTable.drop( ouSalesEntry.get( "objectClass" ).get( 0 ).getBytes(), 2L );
+ objectClassIndexTable.drop( ouSalesEntry.get( "objectClass" ).get( 1 ).getBytes(), 2L );
assertEquals( 0, objectClassIndexTable.count( "organizationalunit" ) );
assertEquals( 0, objectClassIndexTable.count( "top" ) );
@@ -296,7 +312,7 @@
assertEquals( 1, objectClassIndexTable.count( "organization" ) );
// delete 1st
- objectClassIndexTable.delete( contextEntry.get( "objectClass" ), 1L );
+ objectClassIndexTable.drop( contextEntry.get( "objectClass" ).get( 0 ).getBytes(), 1L );
assertEquals( 0, objectClassIndexTable.count( "organization" ) );
@@ -328,30 +344,36 @@
// 1st entry
DefaultServerEntry contextEntry = buildContextEntry();
- objectClassIndexTable.add( contextEntry.get( "objectClass" ), 1L );
+ objectClassIndexTable.add( contextEntry.get( "objectClass" ).get( 0 ).getBytes(), 1L );
assertTrue( objectClassIndexTable.exists( "organization", 1L ) );
// 2nd entry
DefaultServerEntry ouSalesEntry = buildOuSalesEntry();
- objectClassIndexTable.add( ouSalesEntry.get( "objectClass" ), 2L );
+ objectClassIndexTable.add( ouSalesEntry.get( "objectClass" ).get( 0 ).getBytes(), 2L );
+ objectClassIndexTable.add( ouSalesEntry.get( "objectClass" ).get( 1 ).getBytes(), 2L );
assertTrue( objectClassIndexTable.exists( "organizationalunit", 2L ) );
assertTrue( objectClassIndexTable.exists( "top", 2L ) );
// 3rd entry
DefaultServerEntry cnEntry = buildCnJohnnyWalkerEntry();
- objectClassIndexTable.add( cnEntry.get( "objectClass" ), 3L );
- cnIndexTable.add( cnEntry.get( "cn" ), 3L );
+ objectClassIndexTable.add( cnEntry.get( "objectClass" ).get( 0 ).getBytes(), 3L );
+ objectClassIndexTable.add( cnEntry.get( "objectClass" ).get( 1 ).getBytes(), 3L );
+ objectClassIndexTable.add( cnEntry.get( "objectClass" ).get( 2 ).getBytes(), 3L );
+ cnIndexTable.add( cnEntry.get( "cn" ).get( 0 ).getBytes(), 3L );
assertTrue( objectClassIndexTable.exists( "top", 3L ) );
assertTrue( objectClassIndexTable.exists( "person", 3L ) );
assertTrue( cnIndexTable.exists( "johnny \u65E5\u672C walker", 3L ) );
// delete 3rd and 2nd
- objectClassIndexTable.delete( cnEntry.get( "objectClass" ), 3L );
- cnIndexTable.delete( cnEntry.get( "cn" ), 3L );
- objectClassIndexTable.delete( ouSalesEntry.get( "objectClass" ), 2L );
+ objectClassIndexTable.drop( cnEntry.get( "objectClass" ).get( 0 ).getBytes(), 3L );
+ objectClassIndexTable.drop( cnEntry.get( "objectClass" ).get( 1 ).getBytes(), 3L );
+ objectClassIndexTable.drop( cnEntry.get( "objectClass" ).get( 2 ).getBytes(), 3L );
+ cnIndexTable.drop( cnEntry.get( "cn" ).get( 0 ).getBytes(), 3L );
+ objectClassIndexTable.drop( ouSalesEntry.get( "objectClass" ).get( 0 ).getBytes(), 2L );
+ objectClassIndexTable.drop( ouSalesEntry.get( "objectClass" ).get( 1 ).getBytes(), 2L );
assertTrue( objectClassIndexTable.exists( "organization", 1L ) );
assertFalse( objectClassIndexTable.exists( "organizationalunit", 2L ) );
@@ -361,7 +383,7 @@
assertFalse( cnIndexTable.exists( "johnny \u65E5\u672C walker", 3L ) );
// delete 1st
- objectClassIndexTable.delete( contextEntry.get( "objectClass" ), 1L );
+ objectClassIndexTable.drop( contextEntry.get( "objectClass" ).get( 0 ).getBytes(), 1L );
assertFalse( objectClassIndexTable.exists( "organization", 1L ) );
@@ -459,7 +481,7 @@
public void testGetColumnCandidates() throws Exception
{
DefaultServerEntry cnEntry = buildCnJohnnyWalkerEntry();
- cnIndexTable.add( cnEntry.get( "cn" ), 3L );
+ cnIndexTable.add( cnEntry.get( "cn" ).get( 0 ).getBytes(), 3L );
List<Long> candidates = cnIndexTable.getColumnCandidates( "johnny \u65E5\u672C walker" );
assertNotNull( candidates );
Modified: directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBaseMasterTableTest.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBaseMasterTableTest.java?rev=905194&r1=905193&r2=905194&view=diff
==============================================================================
--- directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBaseMasterTableTest.java (original)
+++ directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBaseMasterTableTest.java Mon Feb 1 07:08:23 2010
@@ -28,6 +28,7 @@
import java.util.NavigableMap;
import org.apache.directory.server.core.entry.DefaultServerEntry;
+import org.apache.directory.server.core.partition.hbase.HBaseStore;
import org.apache.directory.shared.ldap.name.LdapDN;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
@@ -84,7 +85,13 @@
}
}
- masterTable = new HBaseMasterTable( schemaManager, suffixDn, TABLE_PREFIX );
+ HBaseStore store = new HBaseStore();
+ store.setSuffixDn( suffixDn.getName() );
+ store.setCacheSize( 100 );
+ store.setTablePrefix( TABLE_PREFIX );
+ store.init( schemaManager );
+
+ masterTable = new HBaseMasterTable( store );
}
Modified: directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBasePresenceIndexTableTest.java
URL: http://svn.apache.org/viewvc/directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBasePresenceIndexTableTest.java?rev=905194&r1=905193&r2=905194&view=diff
==============================================================================
--- directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBasePresenceIndexTableTest.java (original)
+++ directory/sandbox/seelmann/hbase-partition/src/test/java/org/apache/directory/server/core/partition/hbase/table/HBasePresenceIndexTableTest.java Mon Feb 1 07:08:23 2010
@@ -82,9 +82,10 @@
}
}
- objectClassPresenceIndexTable = new HBasePresenceIndexTable( "2.5.4.0", schemaManager, TABLE_PREFIX );
+ objectClassPresenceIndexTable = new HBasePresenceIndexTable( "2.5.4.0", schemaManager, TABLE_PREFIX,
+ adapter.conf, 100 );
jpegPhotoPresenceIndexTable = new HBasePresenceIndexTable( "0.9.2342.19200300.100.1.60", schemaManager,
- TABLE_PREFIX );
+ TABLE_PREFIX, adapter.conf, 100 );
}
@@ -172,8 +173,8 @@
HTable jpegPhotoPresenceIndexHTable = new HTable( JPEGPHOTO_PRESENCE_INDEX_TABLE_NAME );
// detete 3rd entry
- objectClassPresenceIndexTable.delete( 3L );
- jpegPhotoPresenceIndexTable.delete( 3L );
+ objectClassPresenceIndexTable.drop( 3L );
+ jpegPhotoPresenceIndexTable.drop( 3L );
assertTrue( objectClassPresenceIndexHTable.exists( new Get( Bytes.add( Bytes.toBytes( "*" ), Bytes
.toBytes( Base64.encodeBytes( Bytes.toBytes( 1L ) ) ) ) ) ) );
@@ -201,8 +202,8 @@
assertEquals( 0L, Bytes.toLong( countInfoMap.get( Bytes.toBytes( "count" ) ) ) );
// detete 2nd and 1st entry
- objectClassPresenceIndexTable.delete( 2L );
- objectClassPresenceIndexTable.delete( 1L );
+ objectClassPresenceIndexTable.drop( 2L );
+ objectClassPresenceIndexTable.drop( 1L );
assertFalse( objectClassPresenceIndexHTable.exists( new Get( Bytes.add( Bytes.toBytes( "*" ), Bytes
.toBytes( Base64.encodeBytes( Bytes.toBytes( 1L ) ) ) ) ) ) );
@@ -238,15 +239,15 @@
assertEquals( 1, jpegPhotoPresenceIndexTable.count() );
// delete 3rd and 2nd
- objectClassPresenceIndexTable.delete( 3L );
- jpegPhotoPresenceIndexTable.delete( 3L );
- objectClassPresenceIndexTable.delete( 2L );
+ objectClassPresenceIndexTable.drop( 3L );
+ jpegPhotoPresenceIndexTable.drop( 3L );
+ objectClassPresenceIndexTable.drop( 2L );
assertEquals( 1, objectClassPresenceIndexTable.count() );
assertEquals( 0, jpegPhotoPresenceIndexTable.count() );
// delete 1st
- objectClassPresenceIndexTable.delete( 1L );
+ objectClassPresenceIndexTable.drop( 1L );
assertEquals( 0, objectClassPresenceIndexTable.count() );
}
@@ -277,9 +278,9 @@
assertTrue( jpegPhotoPresenceIndexTable.exists( 3L ) );
// delete 3rd and 2nd
- objectClassPresenceIndexTable.delete( 3L );
- jpegPhotoPresenceIndexTable.delete( 3L );
- objectClassPresenceIndexTable.delete( 2L );
+ objectClassPresenceIndexTable.drop( 3L );
+ jpegPhotoPresenceIndexTable.drop( 3L );
+ objectClassPresenceIndexTable.drop( 2L );
assertTrue( objectClassPresenceIndexTable.exists( 1L ) );
assertFalse( objectClassPresenceIndexTable.exists( 2L ) );
@@ -287,7 +288,7 @@
assertFalse( jpegPhotoPresenceIndexTable.exists( 3L ) );
// delete 1st
- objectClassPresenceIndexTable.delete( 1L );
+ objectClassPresenceIndexTable.drop( 1L );
assertFalse( objectClassPresenceIndexTable.exists( 1L ) );
}