On 02/20/2013 05:07 PM, Rob Turpin wrote:
I'm running some performance tests on the lsm storage engine, and an issue
has cropped up for me.  I retrieved the sqlite4 code from the repository
about a week ago.

I'm doing a simple single threaded test to see what kind of performance I
can get on write transactions.  After completing the write test, I run
another program to read the DB, and all the writes are not there.

Here's are the config options I set before calling lsm_open.

int iVal = 0;
lsm_config(db, LSM_CONFIG_MULTIPLE_PROCESSES, &iVal);
lsm_config(db, LSM_CONFIG_USE_LOG, &iVal);
iVal = 4096;
lsm_config(db, LSM_CONFIG_AUTOFLUSH, &iVal);
iVal = 8192;
lsm_config(db, LSM_CONFIG_AUTOCHECKPOINT, &iVal);


If logging is on, there is no issue, all writes are in the DB.  But since
I'm trying to increase performance I turn this off.

 From reading the documentation I was assuming the LSM_CONFIG_AUTOCHECKPOINT
setting should sync the writes in memory to disk at 8MB (per my setting,
default is 2 MB).  I'm performing no explicit commits or checkpoints.  I'm
simply calling lsm_insert to write data to the DB.  Perhaps this is where
I'm confused about the expected behavior.

Could anyone correct me where I'm wrong on my assumptions, or could there
be an issue with this?

Are you calling lsm_close() at the end of the write test?

Dan.




_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to