This discussion is archived
0 Replies Latest reply: May 11, 2012 5:49 PM by 930042 RSS

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

930042 Newbie
Currently Being Moderated
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);

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points