Search in sources :

Example 1 with TestCache

use of org.h2.test.unit.TestCache in project h2database by h2database.

the class TestFileLockSerialized method testCache.

/**
 * Caches must be cleared. Session.reconnect only closes the DiskFile (which
 * is associated with the cache) if there is one session
 */
private void testCache() throws Exception {
    deleteDb("fileLockSerialized");
    String urlShared = "jdbc:h2:" + getBaseDir() + "/fileLockSerialized;FILE_LOCK=SERIALIZED";
    Connection connShared1 = getConnection(urlShared);
    Statement statement1 = connShared1.createStatement();
    Connection connShared2 = getConnection(urlShared);
    Statement statement2 = connShared2.createStatement();
    statement1.execute("create table test1(id int)");
    statement1.execute("insert into test1 values(1)");
    ResultSet rs = statement1.executeQuery("select id from test1");
    rs.close();
    rs = statement2.executeQuery("select id from test1");
    rs.close();
    statement1.execute("update test1 set id=2");
    Thread.sleep(500);
    rs = statement2.executeQuery("select id from test1");
    assertTrue(rs.next());
    assertEquals(2, rs.getInt(1));
    rs.close();
    connShared1.close();
    connShared2.close();
    deleteDb("fileLockSerialized");
}
Also used : PreparedStatement(java.sql.PreparedStatement) Statement(java.sql.Statement) Connection(java.sql.Connection) JdbcConnection(org.h2.jdbc.JdbcConnection) ResultSet(java.sql.ResultSet)

Example 2 with TestCache

use of org.h2.test.unit.TestCache in project h2database by h2database.

the class TestAll method testUnit.

private void testUnit() {
    // mv store
    addTest(new TestCacheConcurrentLIRS());
    addTest(new TestCacheLIRS());
    addTest(new TestCacheLongKeyLIRS());
    addTest(new TestConcurrentLinkedList());
    addTest(new TestDataUtils());
    addTest(new TestFreeSpace());
    addTest(new TestKillProcessWhileWriting());
    addTest(new TestMVRTree());
    addTest(new TestMVStore());
    addTest(new TestMVStoreBenchmark());
    addTest(new TestMVStoreStopCompact());
    addTest(new TestMVStoreTool());
    addTest(new TestMVTableEngine());
    addTest(new TestObjectDataType());
    addTest(new TestRandomMapOps());
    addTest(new TestSpinLock());
    addTest(new TestStreamStore());
    addTest(new TestTransactionStore());
    // unit
    addTest(new TestAnsCompression());
    addTest(new TestAutoReconnect());
    addTest(new TestBinaryArithmeticStream());
    addTest(new TestBitStream());
    addTest(new TestBnf());
    addTest(new TestCache());
    addTest(new TestCharsetCollator());
    addTest(new TestClearReferences());
    addTest(new TestCollation());
    addTest(new TestCompress());
    addTest(new TestConnectionInfo());
    addTest(new TestDataPage());
    addTest(new TestDateIso8601());
    addTest(new TestExit());
    addTest(new TestFile());
    addTest(new TestFileLock());
    addTest(new TestFtp());
    addTest(new TestIntArray());
    addTest(new TestIntIntHashMap());
    addTest(new TestIntPerfectHash());
    addTest(new TestJmx());
    addTest(new TestMathUtils());
    addTest(new TestMode());
    addTest(new TestModifyOnWrite());
    addTest(new TestOldVersion());
    addTest(new TestObjectDeserialization());
    addTest(new TestMultiThreadedKernel());
    addTest(new TestOverflow());
    addTest(new TestPageStore());
    addTest(new TestPageStoreCoverage());
    addTest(new TestPerfectHash());
    addTest(new TestPgServer());
    addTest(new TestReader());
    addTest(new TestRecovery());
    addTest(new TestScriptReader());
    addTest(new RecoverLobTest());
    addTest(createTest("org.h2.test.unit.TestServlet"));
    addTest(new TestSecurity());
    addTest(new TestShell());
    addTest(new TestSort());
    addTest(new TestStreams());
    addTest(new TestStringUtils());
    addTest(new TestTimeStampWithTimeZone());
    addTest(new TestTraceSystem());
    addTest(new TestUpgrade());
    addTest(new TestUsingIndex());
    addTest(new TestUtils());
    addTest(new TestValue());
    addTest(new TestValueHashMap());
    addTest(new TestWeb());
    runAddedTests();
    // serial
    addTest(new TestDate());
    addTest(new TestDateTimeUtils());
    addTest(new TestCluster());
    addTest(new TestConcurrent());
    addTest(new TestFileLockSerialized());
    addTest(new TestFileLockProcess());
    addTest(new TestFileSystem());
    addTest(new TestNetUtils());
    addTest(new TestPattern());
    addTest(new TestTools());
    addTest(new TestSampleApps());
    addTest(new TestStringCache());
    addTest(new TestValueMemory());
    runAddedTests(1);
}
Also used : TestPageStoreCoverage(org.h2.test.unit.TestPageStoreCoverage) TestDateIso8601(org.h2.test.unit.TestDateIso8601) RecoverLobTest(org.h2.test.recover.RecoverLobTest) TestMVTableEngine(org.h2.test.store.TestMVTableEngine) TestPgServer(org.h2.test.unit.TestPgServer) TestValueMemory(org.h2.test.unit.TestValueMemory) TestKillProcessWhileWriting(org.h2.test.store.TestKillProcessWhileWriting) TestExit(org.h2.test.unit.TestExit) TestMode(org.h2.test.unit.TestMode) TestPageStore(org.h2.test.unit.TestPageStore) TestSort(org.h2.test.unit.TestSort) TestUtils(org.h2.test.unit.TestUtils) TestOldVersion(org.h2.test.unit.TestOldVersion) TestObjectDeserialization(org.h2.test.unit.TestObjectDeserialization) TestCompress(org.h2.test.unit.TestCompress) TestCluster(org.h2.test.db.TestCluster) TestCharsetCollator(org.h2.test.unit.TestCharsetCollator) TestFileLockSerialized(org.h2.test.unit.TestFileLockSerialized) TestMVStoreBenchmark(org.h2.test.store.TestMVStoreBenchmark) TestFileLock(org.h2.test.unit.TestFileLock) TestIntArray(org.h2.test.unit.TestIntArray) TestCacheLongKeyLIRS(org.h2.test.store.TestCacheLongKeyLIRS) TestOverflow(org.h2.test.unit.TestOverflow) TestModifyOnWrite(org.h2.test.unit.TestModifyOnWrite) TestPattern(org.h2.test.unit.TestPattern) TestValueHashMap(org.h2.test.unit.TestValueHashMap) TestReader(org.h2.test.unit.TestReader) TestNetUtils(org.h2.test.unit.TestNetUtils) TestObjectDataType(org.h2.test.store.TestObjectDataType) TestDataPage(org.h2.test.unit.TestDataPage) TestWeb(org.h2.test.server.TestWeb) TestTraceSystem(org.h2.test.unit.TestTraceSystem) TestClearReferences(org.h2.test.unit.TestClearReferences) TestUpgrade(org.h2.test.db.TestUpgrade) TestStreamStore(org.h2.test.store.TestStreamStore) TestTransactionStore(org.h2.test.store.TestTransactionStore) TestConnectionInfo(org.h2.test.unit.TestConnectionInfo) TestTools(org.h2.test.unit.TestTools) TestStreams(org.h2.test.unit.TestStreams) TestFile(org.h2.test.unit.TestFile) TestSampleApps(org.h2.test.unit.TestSampleApps) TestCacheConcurrentLIRS(org.h2.test.store.TestCacheConcurrentLIRS) TestConcurrent(org.h2.test.store.TestConcurrent) TestFtp(org.h2.test.unit.TestFtp) TestStringUtils(org.h2.test.unit.TestStringUtils) TestSpinLock(org.h2.test.store.TestSpinLock) TestDataUtils(org.h2.test.store.TestDataUtils) TestUsingIndex(org.h2.test.db.TestUsingIndex) TestRandomMapOps(org.h2.test.store.TestRandomMapOps) TestValue(org.h2.test.unit.TestValue) TestIntPerfectHash(org.h2.test.unit.TestIntPerfectHash) TestMVStore(org.h2.test.store.TestMVStore) TestMathUtils(org.h2.test.unit.TestMathUtils) TestRecovery(org.h2.test.unit.TestRecovery) TestTimeStampWithTimeZone(org.h2.test.unit.TestTimeStampWithTimeZone) TestFileLockProcess(org.h2.test.unit.TestFileLockProcess) TestMultiThreadedKernel(org.h2.test.db.TestMultiThreadedKernel) TestFreeSpace(org.h2.test.store.TestFreeSpace) TestDateTimeUtils(org.h2.test.unit.TestDateTimeUtils) TestMVRTree(org.h2.test.store.TestMVRTree) TestSecurity(org.h2.test.unit.TestSecurity) TestMVStoreTool(org.h2.test.store.TestMVStoreTool) TestIntIntHashMap(org.h2.test.unit.TestIntIntHashMap) TestBnf(org.h2.test.unit.TestBnf) TestCacheLIRS(org.h2.test.store.TestCacheLIRS) TestAutoReconnect(org.h2.test.unit.TestAutoReconnect) TestBinaryArithmeticStream(org.h2.test.unit.TestBinaryArithmeticStream) TestCollation(org.h2.test.unit.TestCollation) TestJmx(org.h2.test.unit.TestJmx) TestPerfectHash(org.h2.test.unit.TestPerfectHash) TestAnsCompression(org.h2.test.unit.TestAnsCompression) TestShell(org.h2.test.unit.TestShell) TestStringCache(org.h2.test.unit.TestStringCache) TestConcurrentLinkedList(org.h2.test.store.TestConcurrentLinkedList) TestCache(org.h2.test.unit.TestCache) TestDate(org.h2.test.unit.TestDate) TestMVStoreStopCompact(org.h2.test.store.TestMVStoreStopCompact) TestBitStream(org.h2.test.unit.TestBitStream) TestScriptReader(org.h2.test.unit.TestScriptReader) TestFileSystem(org.h2.test.unit.TestFileSystem)

Example 3 with TestCache

use of org.h2.test.unit.TestCache in project h2database by h2database.

the class TestCache method testCache.

private void testCache() {
    out = "";
    Cache c = CacheLRU.getCache(this, "LRU", 16);
    for (int i = 0; i < 20; i++) {
        c.put(new Obj(i));
    }
    assertEquals("flush 0 flush 1 flush 2 flush 3 ", out);
}
Also used : Cache(org.h2.util.Cache)

Example 4 with TestCache

use of org.h2.test.unit.TestCache in project h2database by h2database.

the class TestMultiThreadedKernel method testCache.

private void testCache() throws Exception {
    ArrayList<Task> list = New.arrayList();
    int size = 3;
    final int count = 100;
    final Connection[] connections = new Connection[count];
    String url = getURL("multiThreadedKernel;" + "MULTI_THREADED=TRUE;CACHE_SIZE=1", true);
    for (int i = 0; i < size; i++) {
        final Connection conn = DriverManager.getConnection(url, getUser(), getPassword());
        connections[i] = conn;
        if (i == 0) {
            Statement stat = conn.createStatement();
            stat.execute("drop table test if exists");
            stat.execute("create table test(id int primary key, name varchar) " + "as select x, space(3000) from system_range(1, " + count + ")");
        }
        final Random random = new Random(i);
        Task t = new Task() {

            @Override
            public void call() throws SQLException {
                PreparedStatement prep = conn.prepareStatement("select * from test where id = ?");
                while (!stop) {
                    prep.setInt(1, random.nextInt(count));
                    prep.execute();
                }
            }
        };
        t.execute();
        list.add(t);
    }
    Thread.sleep(1000);
    for (Task t : list) {
        t.get();
    }
    for (int i = 0; i < size; i++) {
        connections[i].close();
    }
}
Also used : Task(org.h2.util.Task) Random(java.util.Random) Statement(java.sql.Statement) PreparedStatement(java.sql.PreparedStatement) Connection(java.sql.Connection) PreparedStatement(java.sql.PreparedStatement)

Example 5 with TestCache

use of org.h2.test.unit.TestCache in project h2database by h2database.

the class TestMVStoreCachePerformance method testCache.

private void testCache(int threadCount, String fileNamePrefix) {
    String fileName = getBaseDir() + "/" + getTestName();
    fileName = fileNamePrefix + fileName;
    FileUtils.delete(fileName);
    MVStore store = new MVStore.Builder().fileName(fileName).open();
    final MVMap<Integer, byte[]> map = store.openMap("test");
    final AtomicInteger counter = new AtomicInteger();
    byte[] data = new byte[8 * 1024];
    final int count = 10000;
    for (int i = 0; i < count; i++) {
        map.put(i, data);
        store.commit();
        if (i % 1000 == 0) {
        // System.out.println("add " + i);
        }
    }
    Task[] tasks = new Task[threadCount];
    for (int i = 0; i < threadCount; i++) {
        tasks[i] = new Task() {

            @Override
            public void call() throws Exception {
                Random r = new Random();
                do {
                    int id = r.nextInt(count);
                    map.get(id);
                    counter.incrementAndGet();
                } while (!stop);
            }
        };
        tasks[i].execute();
    }
    for (int i = 0; i < 4; i++) {
        // Profiler prof = new Profiler().startCollecting();
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
        // ignore
        }
    // System.out.println(prof.getTop(5));
    // System.out.println("  " + counter.get() / (i + 1) + " op/s");
    }
    // long time = System.nanoTime();
    for (Task t : tasks) {
        t.get();
    }
    store.close();
    System.out.println(counter.get() / 10000 + " ops/ms; " + threadCount + " thread(s); " + fileNamePrefix);
}
Also used : Task(org.h2.util.Task) MVStore(org.h2.mvstore.MVStore) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Random(java.util.Random) AtomicInteger(java.util.concurrent.atomic.AtomicInteger)

Aggregations

Connection (java.sql.Connection)3 PreparedStatement (java.sql.PreparedStatement)3 Statement (java.sql.Statement)3 ResultSet (java.sql.ResultSet)2 Random (java.util.Random)2 JdbcConnection (org.h2.jdbc.JdbcConnection)2 Task (org.h2.util.Task)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1 MVStore (org.h2.mvstore.MVStore)1 TestCluster (org.h2.test.db.TestCluster)1 TestMultiThreadedKernel (org.h2.test.db.TestMultiThreadedKernel)1 TestUpgrade (org.h2.test.db.TestUpgrade)1 TestUsingIndex (org.h2.test.db.TestUsingIndex)1 RecoverLobTest (org.h2.test.recover.RecoverLobTest)1 TestWeb (org.h2.test.server.TestWeb)1 TestCacheConcurrentLIRS (org.h2.test.store.TestCacheConcurrentLIRS)1 TestCacheLIRS (org.h2.test.store.TestCacheLIRS)1 TestCacheLongKeyLIRS (org.h2.test.store.TestCacheLongKeyLIRS)1 TestConcurrent (org.h2.test.store.TestConcurrent)1 TestConcurrentLinkedList (org.h2.test.store.TestConcurrentLinkedList)1