1. 20 4月, 2014 2 次提交
  2. 19 4月, 2014 1 次提交
  3. 15 4月, 2014 1 次提交
  4. 09 4月, 2014 1 次提交
    • Y
      [JNI] Add an initial benchmark for java binding for rocksdb. · 0f5cbcd7
      Yueh-Hsuan Chiang 提交于
      Summary:
      * Add a benchmark for java binding for rocksdb.  The java benchmark
        is a complete rewrite based on the c++ db/db_bench.cc and the
        DbBenchmark in dain's java leveldb.
      * Support multithreading.
      * 'readseq' is currently not supported as it requires RocksDB Iterator.
      
      * usage:
      
        --benchmarks
          Comma-separated list of operations to run in the specified order
              Actual benchmarks:
                      fillseq    -- write N values in sequential key order in async mode
                      fillrandom -- write N values in random key order in async mode
                      fillbatch  -- write N/1000 batch where each batch has 1000 values
                                    in random key order in sync mode
                      fillsync   -- write N/100 values in random key order in sync mode
                      fill100K   -- write N/1000 100K values in random order in async mode
                      readseq    -- read N times sequentially
                      readrandom -- read N times in random order
                      readhot    -- read N times in random order from 1% section of DB
              Meta Operations:
                      delete     -- delete DB
          DEFAULT: [fillseq, readrandom, fillrandom]
      
        --compression_ratio
          Arrange to generate values that shrink to this fraction of
              their original size after compression
          DEFAULT: 0.5
      
        --use_existing_db
          If true, do not destroy the existing database.  If you set this
              flag and also specify a benchmark that wants a fresh database,  that benchmark will fail.
          DEFAULT: false
      
        --num
          Number of key/values to place in database.
          DEFAULT: 1000000
      
        --threads
          Number of concurrent threads to run.
          DEFAULT: 1
      
        --reads
          Number of read operations to do.  If negative, do --nums reads.
      
        --key_size
          The size of each key in bytes.
          DEFAULT: 16
      
        --value_size
          The size of each value in bytes.
          DEFAULT: 100
      
        --write_buffer_size
          Number of bytes to buffer in memtable before compacting
              (initialized to default value by 'main'.)
          DEFAULT: 4194304
      
        --cache_size
          Number of bytes to use as a cache of uncompressed data.
              Negative means use default settings.
          DEFAULT: -1
      
        --seed
          Seed base for random number generators.
          DEFAULT: 0
      
        --db
          Use the db with the following name.
          DEFAULT: /tmp/rocksdbjni-bench
      
      * Add RocksDB.write().
      
      Test Plan: make jbench
      
      Reviewers: haobo, sdong, dhruba, ankgup87
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17433
      0f5cbcd7
  5. 03 4月, 2014 3 次提交
  6. 02 4月, 2014 1 次提交
  7. 01 4月, 2014 1 次提交
  8. 30 3月, 2014 1 次提交
  9. 29 3月, 2014 1 次提交
    • Y
      Add a jni library for rocksdb which supports Open, Get, Put, and Close. · 0d463a36
      Yueh-Hsuan Chiang 提交于
      Summary:
      This diff contains a simple jni library for rocksdb which supports open, get,
      put and closeusing default options (including Options, ReadOptions, and
      WriteOptions.)  In the usual case, Java developers can use the c++ rocksdb
      library in the way similar to the following:
      
          RocksDB db = RocksDB.open(path_to_db);
          ...
          db.put("hello".getBytes(), "world".getBytes();
          byte[] value = db.get("hello".getBytes());
          ...
          db.close();
      
      Specifically, this diff has the following major classes:
      
      * RocksDB: a Java wrapper class which forwards the operations
        from the java side to c++ rocksdb library.
      * RocksDBException: ncapsulates the error of an operation.
        This exception type is used to describe an internal error from
        the c++ rocksdb library.
      
      This diff also include a simple java sample code calling c++ rocksdb library.
      
      To build the rocksdb jni library, simply run make jni, and make jtest will try to
      build and run the sample code.
      
      Note that if the rocksdb is not built with the default glibc that Java uses,
      java will try to load the wrong glibc during the run time.  As a result,
      the sample code might not work properly during the run time.
      
      Test Plan:
      * make jni
      * make jtest
      
      Reviewers: haobo, dhruba, sdong, igor, ljin
      
      Reviewed By: dhruba
      
      CC: leveldb, xjin
      
      Differential Revision: https://reviews.facebook.net/D17109
      0d463a36