On Friday 29 December 2006 06:19, John Jorgensen wrote:
> Seeing this discussion about SQLite3 performance has finally
> prompted me to share an observation that I made about a year ago,
> when building bacula together with sqlite-3.3.6 for personal use
> on my home machine.
> 
> I believe that the "default_synchronous" PRAGMA that Kern
> mentions in his reply has not been included in sqlite 3.*
> 
> The "PRAGMA synchronous = ..." pragma still exists, but its
> effect does not persist. I.e., you need to re-issue the pragma
> every time you connect to the database, rather than specifying it
> once when creating the database.
> 
> So I put together a patch that adds to bacula's configure script
> an option to specify a snippet of SQL code to execute on every
> database connection, like this:
> 
>       configure ... --enable-extra-sqlite3-init="pragma synchronous=0;" ...
> 
> with the result that bacula-dir is compiled to issue that SQL
> pragma every time it connects to the database.
> 
> Since you can get the same effect by using an "sqlquery" in
> bconsole to issue the pragma before running the job manually, it
> could be that the proper way to accomplish what I did is by using
> the python interpreter (which I have never tried using) to script
> the sqlquery into every job, instead of by modifying the
> bacula-dir binary.
> 
> My experience is that
> 
>     PRAGMA synchronous = 0
> 
> greatly improves performance, although turning off synchronous
> writes completely like this demands either a reliable UPS or the
> willingness to rebuild your catalog should the power fail in the
> middle of a backup.  "PRAGMA synchronous = 1" ("NORMAL") doesn't
> help nearly as much, at least not on my machine. (The default
> value for synchronous is 2, "FULL").
> 
> I'll try to attach my patch, but I made it against the 1.38.11 sources,
> so it won't be directly applicable to the current
> development sources (and it includes some changes that aren't
> strictly necessary to do the sqlite initialization, but which
> reduced the warnings I was getting from the autoconf/automake
> tool chain).
> 
> 
> >>>>> "kern" == Kern Sibbald <[EMAIL PROTECTED]> writes:
>     >> 
>     >> 
>     >> 
>     >> Is anyone out there using SQLite3?  Does anyone have any suggestions 
on how
>     >> we could change the default build defines or database creation 
scripts to
>     >> improve the performance?
>     >> 
>     >> 
>     >> 
>     >> If there are any suggestions I'd appreciate getting them quickly so 
that we
>     >> can incorporate them into 1.40.
> 
>     kern> When SQLite3 was first released, I looked into this and seems to 
me that he 
>     kern> handled synchronization differently.   The two pragmas that I saw 
(long ago) 
>     kern> that made a difference were:
> 
>     kern> PRAGMA default_synchronous 
>     kern> PRAGMA default_cache_size
> 
> 

Thanks for the research and feedback.

Could you look to see if there is some way to set the synchronous value to a 
default?  I cannot imagine that the author of SQLite would not provide some 
way to do so.  

I did notice that the settings of the synchronous flag changed in 3.0, but 
after looking at the consequences of changing them from the default set by 
the author, I decided to leave that to the user (if I remember right).

If there is absolutely no way to set the default value, then I would certainly 
considering code as you are suggesting, but if a way to set the default 
exists, as I am 99% sure there is, then I would much prefer to leave it to 
the user to choose the degree of risk he/she wants to take and to manage it 
directly with the database.

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to