Search in sources :

Example 6 with DatabaseConfig

use of com.sleepycat.je.DatabaseConfig in project voldemort by voldemort.

the class BdbGrowth method main.

public static void main(String[] args) throws Exception {
    if (args.length != 5) {
        System.err.println("USAGE: java BdbGrowth directory cache_size total_size increment threads");
        System.exit(1);
    }
    final String dir = args[0];
    final long cacheSize = Long.parseLong(args[1]);
    final int totalSize = Integer.parseInt(args[2]);
    final int increment = Integer.parseInt(args[3]);
    final int threads = Integer.parseInt(args[4]);
    Environment environment;
    EnvironmentConfig environmentConfig;
    DatabaseConfig databaseConfig;
    environmentConfig = new EnvironmentConfig();
    environmentConfig.setCacheSize(cacheSize);
    environmentConfig.setDurability(Durability.COMMIT_NO_SYNC);
    environmentConfig.setConfigParam(EnvironmentConfig.LOG_FILE_MAX, "1000000000");
    environmentConfig.setConfigParam(EnvironmentConfig.CLEANER_MAX_BATCH_FILES, "100");
    environmentConfig.setConfigParam(EnvironmentConfig.CLEANER_READ_SIZE, "52428800");
    environmentConfig.setAllowCreate(true);
    environmentConfig.setTransactional(true);
    databaseConfig = new DatabaseConfig();
    databaseConfig.setAllowCreate(true);
    // databaseConfig.setDeferredWrite(true);
    databaseConfig.setTransactional(true);
    databaseConfig.setNodeMaxEntries(1024);
    File bdbDir = new File(dir);
    if (!bdbDir.exists()) {
        bdbDir.mkdir();
    } else {
        for (File f : bdbDir.listFiles()) f.delete();
    }
    environment = new Environment(bdbDir, environmentConfig);
    final Database db = environment.openDatabase(null, "test", databaseConfig);
    final Random rand = new Random();
    int iterations = totalSize / increment;
    long[] readTimes = new long[iterations];
    long[] writeTimes = new long[iterations];
    ExecutorService service = Executors.newFixedThreadPool(threads);
    for (int i = 0; i < iterations; i++) {
        System.out.println("Starting iteration " + i);
        List<Future<Object>> results = new ArrayList<Future<Object>>(increment);
        long startTime = System.currentTimeMillis();
        final int fi = i;
        for (int j = 0; j < increment; j++) {
            final int fj = j;
            results.add(service.submit(new Callable<Object>() {

                public Object call() throws Exception {
                    db.put(null, new DatabaseEntry(Integer.toString(fi * increment + fj).getBytes()), new DatabaseEntry(Integer.toString(fi * increment + fj).getBytes()));
                    return null;
                }
            }));
        }
        for (int j = 0; j < increment; j++) results.get(j).get();
        writeTimes[i] = System.currentTimeMillis() - startTime;
        System.out.println("write: " + (writeTimes[i] / (double) increment));
        results.clear();
        startTime = System.currentTimeMillis();
        for (int j = 0; j < increment; j++) {
            results.add(service.submit(new Callable<Object>() {

                public Object call() throws Exception {
                    int value = rand.nextInt((fi + 1) * increment);
                    return db.get(null, new DatabaseEntry(Integer.toString(value).getBytes()), new DatabaseEntry(Integer.toString(value).getBytes()), null);
                }
            }));
        }
        for (int j = 0; j < increment; j++) results.get(j).get();
        readTimes[i] = (System.currentTimeMillis() - startTime);
        System.out.println("read: " + (readTimes[i] / (double) increment));
        int cleaned = 0;
        do {
            cleaned += environment.cleanLog();
        } while (cleaned > 0);
        if (cleaned > 0)
            System.out.println("Cleaned " + cleaned + " files.");
        CheckpointConfig cp = new CheckpointConfig();
        cp.setForce(true);
        environment.checkpoint(null);
        environment.compress();
        environment.sync();
        System.out.println("Cleaning, Checkpointing and compression completed.");
    }
    System.out.println();
    System.out.println("iteration read write:");
    for (int i = 0; i < iterations; i++) {
        System.out.print(i);
        System.out.print(" " + readTimes[i] / (double) increment);
        System.out.println(" " + writeTimes[i] / (double) increment);
    }
    System.out.println(environment.getStats(null));
    System.exit(0);
}
Also used : CheckpointConfig(com.sleepycat.je.CheckpointConfig) EnvironmentConfig(com.sleepycat.je.EnvironmentConfig) ArrayList(java.util.ArrayList) DatabaseEntry(com.sleepycat.je.DatabaseEntry) Callable(java.util.concurrent.Callable) Random(java.util.Random) Database(com.sleepycat.je.Database) ExecutorService(java.util.concurrent.ExecutorService) Environment(com.sleepycat.je.Environment) Future(java.util.concurrent.Future) File(java.io.File) DatabaseConfig(com.sleepycat.je.DatabaseConfig)

Example 7 with DatabaseConfig

use of com.sleepycat.je.DatabaseConfig in project voldemort by voldemort.

the class BdbStorageEngineTest method setUp.

@Override
@Before
public void setUp() throws Exception {
    super.setUp();
    this.envConfig = new EnvironmentConfig();
    this.envConfig.setDurability(Durability.COMMIT_NO_SYNC);
    this.envConfig.setAllowCreate(true);
    this.envConfig.setTransactional(true);
    this.tempDir = TestUtils.createTempDir();
    this.environment = new Environment(this.tempDir, envConfig);
    this.databaseConfig = new DatabaseConfig();
    databaseConfig.setAllowCreate(true);
    databaseConfig.setTransactional(true);
    databaseConfig.setSortedDuplicates(false);
    this.database = environment.openDatabase(null, "test", databaseConfig);
    this.runtimeConfig = new BdbRuntimeConfig();
    runtimeConfig.setLockMode(LOCK_MODE);
    this.store = makeBdbStorageEngine("test", this.environment, this.database, runtimeConfig, this.prefixPartitionId);
}
Also used : EnvironmentConfig(com.sleepycat.je.EnvironmentConfig) Environment(com.sleepycat.je.Environment) DatabaseConfig(com.sleepycat.je.DatabaseConfig) Before(org.junit.Before)

Example 8 with DatabaseConfig

use of com.sleepycat.je.DatabaseConfig in project voldemort by voldemort.

the class BdbSplitStorageEngineTest method testSharedCache.

@Test
public void testSharedCache() throws DatabaseException {
    EnvironmentConfig environmentConfig = new EnvironmentConfig();
    environmentConfig.setDurability(Durability.COMMIT_NO_SYNC);
    environmentConfig.setAllowCreate(true);
    environmentConfig.setTransactional(true);
    environmentConfig.setSharedCache(true);
    environmentConfig.setCacheSize(CACHE_SIZE);
    DatabaseConfig databaseConfig = new DatabaseConfig();
    databaseConfig.setAllowCreate(true);
    databaseConfig.setTransactional(true);
    databaseConfig.setSortedDuplicates(true);
    long maxCacheSize = getMaxCacheUsage(environmentConfig, databaseConfig);
    // Include a buffer of 1mb.. since the actual cache usage can be a few
    // bytes more
    assertEquals("MaxCacheSize" + maxCacheSize + " <= CACHE_SIZE:" + CACHE_SIZE, true, maxCacheSize <= (CACHE_SIZE + ByteUtils.BYTES_PER_MB));
}
Also used : EnvironmentConfig(com.sleepycat.je.EnvironmentConfig) DatabaseConfig(com.sleepycat.je.DatabaseConfig) Test(org.junit.Test)

Aggregations

DatabaseConfig (com.sleepycat.je.DatabaseConfig)8 EnvironmentConfig (com.sleepycat.je.EnvironmentConfig)6 Environment (com.sleepycat.je.Environment)5 Database (com.sleepycat.je.Database)3 File (java.io.File)3 Test (org.junit.Test)2 CheckpointConfig (com.sleepycat.je.CheckpointConfig)1 DatabaseEntry (com.sleepycat.je.DatabaseEntry)1 DatabaseException (com.sleepycat.je.DatabaseException)1 EnvironmentLockedException (com.sleepycat.je.EnvironmentLockedException)1 ArrayList (java.util.ArrayList)1 Random (java.util.Random)1 Callable (java.util.concurrent.Callable)1 ExecutorService (java.util.concurrent.ExecutorService)1 Future (java.util.concurrent.Future)1 Before (org.junit.Before)1 AbstractObjectDatabase (org.locationtech.geogig.storage.AbstractObjectDatabase)1 ConfigDatabase (org.locationtech.geogig.storage.ConfigDatabase)1 ObjectDatabase (org.locationtech.geogig.storage.ObjectDatabase)1 StringSerializer (voldemort.serialization.StringSerializer)1