0 Replies Latest reply: May 11, 2012 7:49 PM by 930042 RSS

    compare kyoto, tokyo, berk and sqlite3; synchronous ops.. weird results

    930042
      So I'm comparing Berk, SQLite3, Kyoto and Tokyo with synchronous transactions for every operation.
      Random keys.

      I've found over a three hour test, berkley is ~80 put operations/second and the rest range from 5 to 20.

      Can anyone fathom a reason why berk is getting so much better performance?

      Are they using different methods of synchronization with the disk?



      My berkeley setup:

      Transactions are enabled.


      env->set_cachesize(0,256,0);

      int envOpenFlags =
      DB_CREATE |
      DB_PRIVATE |
      DB_INIT_MPOOL |
      (transactionsEnabled ? DB_INIT_TXN : 0x0) |
      (transactionsEnabled ? DB_INIT_LOCK : 0x0) |
      (transactionsEnabled ? DB_INIT_LOG : 0x0);

      int dbOpenFlags =
      DB_CREATE |
      (transactionsEnabled ? DB_AUTO_COMMIT : 0x0);

      dbenv->set_lk_detect(DB_LOCK_DEFAULT);
      dbenv->set_memory_init(DB_MEM_LOCK,100000);
      dbenv->set_memory_init(DB_MEM_LOCKOBJECT,100000);
      dbenv->set_memory_init(DB_MEM_LOCKER,100000);


      my transactions structure:

      env->txn_begin(NULL, &txn,0);
      put or get operation
      txn->commit(0);