Again asking the same question :
 a. Does WAL during an insert/update in the log file do any internal 
search/sort 
 and then insert/update to the log or 
 b. Just appends the WAL log with the incoming insert/update entry, thus 
keeping the
    writes sequential and during a checkpoint (manual or automatic) does the 
merging with the actual tables, 
    which as you pointed out will have to search/sort causing alot of random 
disk access? 
 c. Also we don't read the db in file IO path. The read are for scheduled data 
maintenance scanners,
    thus making the random read of disk a occasional event.   
 Just trying to assess if my understanding of sqlite WAL is correct.

~Joe 

----- Original Message -----
From: "Valentin Davydov" <sqlite-u...@soi.spb.ru>
To: "General Discussion of SQLite Database" <sqlite-users@sqlite.org>
Sent: Monday, November 24, 2014 4:37:12 PM
Subject: Re: [sqlite] Using Sqlite3 as a Change Time Recording Data Store in    
Glusterfs

On Fri, Nov 21, 2014 at 02:01:39PM -0500, Joseph Fernandes wrote:

> We wanted to known the following
> 1) How could we improve the performance on the write side so that we have 
> minimal latency?
> 2) Will ther be any write performance hit when the number of records in the 
> DB increase?

Generally speaking, you have to do some work to arrange your data (modification 
times) in some ordered way. This work can be done eihter in advance, as you 
suggest, or on demand, as some people have already told you. But anyway this 
will eat up necessary resources, regardless of whose code would do it, either
yours or SQLite. In practice (given magnetic disks as underlying storage), 
most scarce of the mentioned resources is rotational/seek latency, which 
detrimentally affects all disk operations of any scheduled priority. SQLite 
performs extensive random disk access (mostly reads) on most operation 
scenarios - selects, inserts, indexing etc. with possible exception of 
small updates of non-indexed data (which are accessed in a similar fashion 
by later selects). The only way to cope with the slow disk is keeping all 
necessary data somwhere else, for example, into the RAM cache. Of course, 
cache itself should be populated in advance to give this benefit, and, given 
current RAM prices, it seems not very feasible to steal available memory from 
smart applications in favour of dumb cache.

Hope, this considerations will help you in tuning your code.

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

Reply via email to