Search in sources :

Example 26 with Store

use of org.h2.mvstore.db.MVTableEngine.Store in project h2database by h2database.

the class TestMVStore method testVolatileMap.

private void testVolatileMap() {
    String fileName = getBaseDir() + "/" + getTestName();
    FileUtils.delete(fileName);
    MVStore store = new MVStore.Builder().fileName(fileName).open();
    MVMap<String, String> map = store.openMap("test");
    assertFalse(map.isVolatile());
    map.setVolatile(true);
    assertTrue(map.isVolatile());
    map.put("1", "Hello");
    assertEquals("Hello", map.get("1"));
    assertEquals(1, map.size());
    store.close();
    store = new MVStore.Builder().fileName(fileName).open();
    assertTrue(store.hasMap("test"));
    map = store.openMap("test");
    assertEquals(0, map.size());
    store.close();
}
Also used : MVStore(org.h2.mvstore.MVStore)

Example 27 with Store

use of org.h2.mvstore.db.MVTableEngine.Store in project h2database by h2database.

the class TestMVStore method testRemoveMapRollback.

private void testRemoveMapRollback() {
    MVStore store = new MVStore.Builder().open();
    MVMap<String, String> map = store.openMap("test");
    map.put("1", "Hello");
    store.commit();
    store.removeMap(map);
    store.rollback();
    assertTrue(store.hasMap("test"));
    map = store.openMap("test");
    // TODO the data should get back alive
    assertNull(map.get("1"));
    store.close();
    String fileName = getBaseDir() + "/" + getTestName();
    FileUtils.delete(fileName);
    store = new MVStore.Builder().autoCommitDisabled().fileName(fileName).open();
    map = store.openMap("test");
    map.put("1", "Hello");
    store.commit();
    store.removeMap(map);
    store.rollback();
    assertTrue(store.hasMap("test"));
    map = store.openMap("test");
    // the data will get back alive
    assertEquals("Hello", map.get("1"));
    store.close();
}
Also used : MVStore(org.h2.mvstore.MVStore)

Example 28 with Store

use of org.h2.mvstore.db.MVTableEngine.Store in project h2database by h2database.

the class TestMVStore method testCompressEmptyPage.

private void testCompressEmptyPage() {
    String fileName = getBaseDir() + "/" + getTestName();
    FileUtils.delete(fileName);
    MVStore store = new MVStore.Builder().cacheSize(100).fileName(fileName).compress().autoCommitBufferSize(10 * 1024).open();
    MVMap<String, String> map = store.openMap("test");
    store.removeMap(map);
    store.commit();
    store.close();
    store = new MVStore.Builder().compress().open();
    store.close();
}
Also used : MVStore(org.h2.mvstore.MVStore)

Example 29 with Store

use of org.h2.mvstore.db.MVTableEngine.Store in project h2database by h2database.

the class TestMVStore method testLargerThan2G.

private void testLargerThan2G() {
    if (!config.big) {
        return;
    }
    String fileName = getBaseDir() + "/" + getTestName();
    FileUtils.delete(fileName);
    MVStore store = new MVStore.Builder().cacheSize(16).fileName(fileName).open();
    try {
        MVMap<Integer, String> map = store.openMap("test");
        long last = System.nanoTime();
        String data = new String(new char[2500]).replace((char) 0, 'x');
        for (int i = 0; ; i++) {
            map.put(i, data);
            if (i % 10000 == 0) {
                store.commit();
                long time = System.nanoTime();
                if (time - last > TimeUnit.SECONDS.toNanos(2)) {
                    long mb = store.getFileStore().size() / 1024 / 1024;
                    trace(mb + "/4500");
                    if (mb > 4500) {
                        break;
                    }
                    last = time;
                }
            }
        }
        store.commit();
        store.close();
    } finally {
        store.closeImmediately();
    }
    FileUtils.delete(fileName);
}
Also used : MVStore(org.h2.mvstore.MVStore) AtomicInteger(java.util.concurrent.atomic.AtomicInteger)

Example 30 with Store

use of org.h2.mvstore.db.MVTableEngine.Store in project h2database by h2database.

the class TestMVStore method testExample.

private void testExample() {
    String fileName = getBaseDir() + "/" + getTestName();
    FileUtils.delete(fileName);
    // open the store (in-memory if fileName is null)
    MVStore s = MVStore.open(fileName);
    // create/get the map named "data"
    MVMap<Integer, String> map = s.openMap("data");
    // add and read some data
    map.put(1, "Hello World");
    // System.out.println(map.get(1));
    // close the store (this will persist changes)
    s.close();
    s = MVStore.open(fileName);
    map = s.openMap("data");
    assertEquals("Hello World", map.get(1));
    s.close();
}
Also used : MVStore(org.h2.mvstore.MVStore) AtomicInteger(java.util.concurrent.atomic.AtomicInteger)

Aggregations

MVStore (org.h2.mvstore.MVStore)29 IOException (java.io.IOException)13 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)12 ByteArrayInputStream (java.io.ByteArrayInputStream)10 InputStream (java.io.InputStream)8 HashMap (java.util.HashMap)8 DbException (org.h2.message.DbException)8 StreamStore (org.h2.mvstore.StreamStore)8 PageStore (org.h2.store.PageStore)8 Random (java.util.Random)7 OutputStream (java.io.OutputStream)6 FileStore (org.h2.store.FileStore)6 BufferedInputStream (java.io.BufferedInputStream)5 ArrayList (java.util.ArrayList)5 FileStore (org.h2.mvstore.FileStore)5 Store (org.h2.mvstore.db.MVTableEngine.Store)5 Row (org.h2.result.Row)5 FileStoreInputStream (org.h2.store.FileStoreInputStream)5 PrintWriter (java.io.PrintWriter)4 Database (org.h2.engine.Database)4