On 07/30/2011 04:45 AM, Gabor Cselle wrote:
> Just a heads-up that we just posted an update to the benchmarks:
> - No more superfluous index on the primary key
> - WAL turned on with auto-checkpointing every 4096 pages
>
> http://leveldb.googlecode.com/svn/trunk/doc/benchmark.html
>
> A diff of the results is here:
> http://code.google.com/p/leveldb/source/diff?spec=svn45&r=45&format=side&path=/trunk/doc/benchmark.html&old_path=/trunk/doc/benchmark.html&old=44
>
> A new version of db_bench_sqlite3.cc is also included in the same revision.
>
> As predicted by people here, SQLite shows significant performance
> improvements across the board except for large values (which I attribute to
> WAL).
>
> We're planning to put together a benchmark that uses 64-bit integers as
> keys, rather than 128-bit/16-byte blobs (My understanding is that SQLite
> stores 64-bit, not 32-bit integers). I'll post the results to this mailing
> list.

That's correct. 64-bit integers.

> Thanks everyone for your suggestions.

Another one you could do, if you're making changes, is add a
ReadSequential() function to db_bench_sqlite3.cc. Leveldb and KC are
both using an iterator to read the keys sequentially, but SQLite is
doing a separate lookup of each key.

How about something like this:

   void ReadSequential() {
     int status;
     sqlite3_stmt *pStmt;
     int i;
     std::string read_str = "SELECT * FROM test";

     status = sqlite3_prepare_v2(db_, read_str.c_str(), -1, &pStmt, NULL);
     ErrorCheck(status);
     for (i=0; i < reads_ && SQLITE_ROW==sqlite3_step(pStmt); i++){
       bytes_ += sqlite3_column_bytes(pStmt, 1) + 
sqlite3_column_bytes(pStmt, 2);
       FinishedSingleOp();
     }

     status = sqlite3_finalize(pStmt);
     ErrorCheck(status);
   }

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

Reply via email to