Package jdbm

Examples of jdbm.RecordManager


        throws IOException

    {

        RecordManager  recman;

        BTree          tree;



        if ( DEBUG ) {

            System.out.println( "TestBTree.testRemove" );

        }



        recman = RecordManagerFactory.createRecordManager( "test" );

        tree = BTree.createInstance( recman, new StringComparator() );



        tree.insert("test1", "value1",false);

        tree.insert("test2","value2",false);

        assertEquals("value1",(String)tree.find("test1"));

        assertEquals("value2",(String)tree.find("test2"));

        tree.remove("test1");

        assertEquals(null,(String)tree.find("test1"));

        assertEquals("value2",(String)tree.find("test2"));

        tree.remove("test2");

        assertEquals(null,(String)tree.find("test2"));



        int iterations = 1000;



        for ( int count = 0; count < iterations; count++ ) {

            tree.insert( "num"+count, new Integer( count ), false );

        }



        assertEquals( iterations, tree.size() );



        for ( int count = 0; count < iterations; count++ ) {

            assertEquals( new Integer( count ), tree.find( "num" + count ) );

        }



        for ( int count = 0; count < iterations; count++ ) {

           tree.remove( "num" + count );

        }



        assertEquals( 0, tree.size() );



        recman.close();

    }
View Full Code Here


        throws IOException

    {

        RecordManager  recman;

        BTree          tree;



        if ( DEBUG )

            System.out.println("TestBTree.testFind");



        recman = RecordManagerFactory.createRecordManager( "test" );

        tree = BTree.createInstance( recman, new StringComparator() );



        tree.insert("test1", "value1",false);

        tree.insert("test2","value2",false);



        Object value = tree.find("test1");

        assertTrue(value instanceof String);

        assertEquals("value1",value);



        tree.insert("","Empty String as key",false);

        assertEquals("Empty String as key",(String)tree.find(""));



        assertEquals(null,(String)tree.find("someoneelse"));



        recman.close();

    }
View Full Code Here

    {



        RecordManager  recman;

        BTree          tree;



        if ( DEBUG )

            System.out.println("TestBTree.testLargeDataAmount");



        recman = RecordManagerFactory.createRecordManager( "test" );

        // recman = new jdbm.recman.BaseRecordManager( "test" );

       

        tree = BTree.createInstance( recman, new StringComparator() );

        // tree.setSplitPoint( 4 );



        int iterations = 10000;



        // insert data

        for ( int count = 0; count < iterations; count++ ) {

           try {

            assertEquals(null,tree.insert("num"+count,new Integer(count),false));

           } catch ( IOException except ) {

               except.printStackTrace();

               throw except;

           }

        }



           // find data

         for(int count = 0; count < iterations; count++)

         {

           assertEquals(new Integer(count), tree.find("num"+count));

         }



             // delete data

         for(int count = 0; count < iterations; count++)

         {

           assertEquals(new Integer(count),tree.remove("num"+count));

         }



         assertEquals(0,tree.size());



         recman.close();

   }
View Full Code Here

    throws IOException

  {

        RecordManager  recman;

        BTree          tree;



        if ( DEBUG )

            System.out.println("TestBTree.testMultithreadAccess");



        recman = RecordManagerFactory.createRecordManager( "test" );

        tree = BTree.createInstance( recman, new StringComparator() );



        TestThread[] thread_pool = new TestThread[THREAD_NUMBER];

        String name;

        Map content;



        // create content for the tree, different content for different threads!

        for (int thread_count = 0; thread_count < THREAD_NUMBER; thread_count++) {

            name = "thread"+thread_count;

            content = new TreeMap();

            for(int content_count = 0; content_count < THREAD_CONTENT_SIZE; content_count++) {

                // guarantee, that keys and values do not overleap,

                // otherwise one thread removes some keys/values of

                // other threads!

                content.put( name+"_"+content_count,

                             new Integer(thread_count*THREAD_CONTENT_SIZE+content_count) );

            }

            thread_pool[thread_count] = new TestThread(name,tree,content);

            thread_pool[thread_count].start();

        }



        try {

            Thread.sleep(THREAD_RUNTIME);

        } catch( InterruptedException ignore ) {

            ignore.printStackTrace();

        }



        // stop threads:

        for (int thread_count = 0; thread_count < THREAD_NUMBER; thread_count++) {

            if ( DEBUG ) System.out.println("Stop threads");

            thread_pool[thread_count].setStop();

        }

        // wait until the threads really stop:

        try {

            for (int thread_count = 0; thread_count < THREAD_NUMBER; thread_count++) {

                if ( DEBUG ) System.out.println("Join thread " + thread_count );

                thread_pool[thread_count].join();

                if ( DEBUG ) System.out.println("Joined thread " + thread_count );

            }

        } catch( InterruptedException ignore ) {

            ignore.printStackTrace();

        }

        recman.close();

    }
View Full Code Here

     *  Basic tests
     */
    public void testBasics() throws IOException {

        Properties props = new Properties();
        RecordManager recman = RecordManagerFactory.createRecordManager( TestRecordFile.testFileName, props );
        HashBucket bucket = new HashBucket(0);

        // add
        bucket.addElement("key", "value");
        String s = (String)bucket.getValue("key");
        assertEquals("value", s);

        // replace
        bucket.addElement("key", "value2");
        s = (String)bucket.getValue("key");
        assertEquals("value2", s);

        // add
        bucket.addElement("key2", "value3");
        s = (String)bucket.getValue("key2");
        assertEquals("value3", s);

        // remove
        bucket.removeElement("key2");
        s = (String)bucket.getValue("key2");
        assertEquals(null, s);
        bucket.removeElement("key");
        s = (String)bucket.getValue("key");
        assertEquals(null, s);

        recman.close();
    }
View Full Code Here

     */

    public void testBasics() throws IOException {

        RecordManager recman;

        String test, test1, test2, test3;



        test = "test";

        test1 = "test1";

        test2 = "test2";

        test3 = "test3";



        recman = RecordManagerFactory.createRecordManager( TestRecordFile.testFileName );



        BTree tree = BTree.createInstance( recman, new StringComparator(), null, null, 32 );

        BPage page = new BPage( tree, test, test );



        TupleBrowser browser;

        Tuple tuple = new Tuple();



        // test insertion

        page.insert( 1, test2, test2, false );

        page.insert( 1, test3, test3, false );

        page.insert( 1, test1, test1, false );



        // test binary search

        browser = page.find( 1, test2 );

        if ( browser.getNext( tuple ) == false ) {

            throw new IllegalStateException( "Browser didn't have 'test2'" );

        }

        if ( ! tuple.getKey().equals( test2 ) ) {

            throw new IllegalStateException( "Tuple key is not 'test2'" );

        }

        if ( ! tuple.getValue().equals( test2 ) ) {

            throw new IllegalStateException( "Tuple value is not 'test2'" );

        }



        recman.close();

        recman = null;

    }
View Full Code Here

     */
    public void testBasics() throws IOException {
        System.out.println("testBasics");

        Properties props = new Properties();
        RecordManager recman = RecordManagerFactory.createRecordManager( TestRecordFile.testFileName, props );

        HashDirectory dir = new HashDirectory((byte)0);
        long recid = recman.insert(dir);
        dir.setPersistenceContext(recman, recid);

        dir.put("key", "value");
        String s = (String)dir.get("key");
        assertEquals("value", s);

        recman.close();
    }
View Full Code Here

     */
    public void testMixed() throws IOException {
        System.out.println("testMixed");

        Properties props = new Properties();
        RecordManager recman = RecordManagerFactory.createRecordManager( TestRecordFile.testFileName, props );
        HashDirectory dir = new HashDirectory((byte)0);
        long recid = recman.insert(dir);
        dir.setPersistenceContext(recman, recid);

        Hashtable hash = new Hashtable(); // use to compare results

        int max = 30; // must be even

        // insert & check values
        for (int i=0; i<max; i++) {
            dir.put("key"+i, "value"+i);
            hash.put("key"+i, "value"+i);
        }
        recman.commit();

        for (int i=0; i<max; i++) {
            String s = (String)dir.get("key"+i);
            assertEquals("value"+i, s);
        }
        recman.commit();

        // replace only even values
        for (int i=0; i<max; i+=2) {
            dir.put("key"+i, "value"+(i*2+1));
            hash.put("key"+i, "value"+(i*2+1));
        }
        recman.commit();

        for (int i=0; i<max; i++) {
            if ((i%2) == 1) {
                // odd
                String s = (String)dir.get("key"+i);
                assertEquals("value"+i, s);
            } else {
                // even
                String s = (String)dir.get("key"+i);
                assertEquals("value"+(i*2+1), s);
            }
        }
        recman.commit();

        // remove odd numbers
        for (int i=1; i<max; i+=2) {
            dir.remove("key"+i);
            hash.remove("key"+i);
        }
        recman.commit();

        for (int i=0; i<max; i++) {
            if ((i%2) == 1) {
                // odd
                String s = (String)dir.get("key"+i);
                assertEquals(null, s);
            } else {
                // even
                String s = (String)dir.get("key"+i);
                assertEquals("value"+(i*2+1), s);
            }
        }
        recman.commit();

        recman.close();
        recman = null;
    }
View Full Code Here

        throws Exception

    {

        RecordManager recman;



        recman = RecordManagerFactory.createRecordManager( TestRecordFile.testFileName );

        recman.close();

    }
View Full Code Here

        throws Exception

    {

        RecordManager recman;



        recman = new BaseRecordManager( TestRecordFile.testFileName );



        // insert a 10,000 byte record.

        byte[] data = TestUtil.makeRecord(10000, (byte) 1);

        long rowid = recman.insert(data);

        assertTrue("check data1",

               TestUtil.checkRecord( (byte[]) recman.fetch(rowid), 10000, (byte) 1) );



        // update it as a 20,000 byte record.

        data = TestUtil.makeRecord(20000, (byte) 2);

        recman.update(rowid, data);

        assertTrue("check data2",

               TestUtil.checkRecord( (byte[])recman.fetch(rowid), 20000, (byte) 2) );



        // insert a third record.

        data = TestUtil.makeRecord(20, (byte) 3);

        long rowid2 = recman.insert(data);

        assertTrue("check data3",

               TestUtil.checkRecord( (byte[]) recman.fetch(rowid2), 20, (byte) 3) );



        // now, grow the first record again

        data = TestUtil.makeRecord(30000, (byte) 4);

        recman.update(rowid, data);

        assertTrue("check data4",

               TestUtil.checkRecord( (byte[]) recman.fetch(rowid), 30000, (byte) 4) );





        // delete the record

        recman.delete(rowid);



        // close the file

        recman.close();

    }
View Full Code Here

TOP

Related Classes of jdbm.RecordManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.