I finally got around to reviewing SQLite's asynchronous I/O functionality.
 
    http://sqlite.org/asyncvfs.html <http://sqlite.org/asyncvfs.html> 
 
We actually have an C++ wrapper to uses the same concept, a background thread 
for I/O.
 
The async functionality included w/ SQLite is not a complete replacement for 
ours, though, although it would be convenient to do so.  However, we do things 
differently such that we
cannot take advantage of SQLite's async functionality.

        * We queue transactions, not individual queries.  Note that, because 
queue
          transactions_ instead of queries, we lock the database per 
transaction,
          thus avoiding the reduction in concurrency that is described on the 
async
          I/O page.  

        * Our bg thread implementation retains durability by permitting 
registration
          of callbacks for queries' successssul completion and aborts.

W/rt to the locking policy w/ multiple updates, are there design reasons for
not releasing and re-acquiring a lock between transactions?  That would 
facilitate
higher concurrency albeit it a slightly higher cost than the current 
implementation.
That cost should match the current cost of multiple transactions, though.

Many thanks.

-robert
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to