unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Danny Milosavljevic <dannym@scratchpost.org>
To: "Clément Lassieur" <clement@lassieur.org>
Cc: 33210@debbugs.gnu.org
Subject: [bug#33210] Cuirass: Use a SQLite in single-thread mode
Date: Tue, 6 Nov 2018 01:11:54 +0100	[thread overview]
Message-ID: <20181106011154.3f235763@scratchpost.org> (raw)
In-Reply-To: <87ftwgq7da.fsf@lassieur.org>

[-- Attachment #1: Type: text/plain, Size: 1782 bytes --]

Hi Clément,

> I haven't done any measurement yet, but according to the SQLite
> documentation:
> 
>     Setting -DSQLITE_THREADSAFE=0 causes all of the mutex and
>     thread-safety logic in SQLite to be omitted. This is the single
>     compile-time option that makes the most difference in optimizing the
>     performance of SQLite.
> 
> So even if the optimization is small, it's the option that has the
> biggest impact on performance.
> 
> > We could do it, but IMO that should be a last resort because I’d expect
> > it to be a micro-optimization.  
> 
> Lots of micro-optimizations lead to an overall faster application ;-).
> And this one doesn't make the code more complicated.  To me it's just a
> bonus.

Keep in mind that if we want consistent views via the web interface,
the cuirass evaluator has to use its own connection independent of the
web interface (so that the web interface doesn't see half-finished stuff).
If that's still possible after that then fine.

Right now, as I mentioned before, it can happen that you request a certain
filter when requesting something from the web and the result will actually
contain data that does not match the filter.  What happened is that the
data in the transaction got changed before we returned it but after the
first query ran.

This is not supposed to happen in relational database systems.  The reason
why it happens here is because we use the same transaction (session) for
both the updates done by the evaluator and the queries done by the web
interface.  It would be much better if the queries by the web interface
had their own transaction.  It was fine before but in some refactoring,
"evaluate" ceased to be an external program and I didn't notice what
happened to it.

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2018-11-06  0:13 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-30 20:35 [bug#33210] Cuirass: Use a SQLite in single-thread mode Clément Lassieur
2018-10-30 20:47 ` [bug#33210] [PATCH 1/3] gnu: Add sqlite-with-single-thread Clément Lassieur
2018-10-30 20:47   ` [bug#33210] [PATCH 2/3] gnu: Add guile-sqlite3-with-single-thread Clément Lassieur
2018-10-30 20:47   ` [bug#33210] [PATCH 3/3] gnu: cuirass: Use SQLite in single-thread mode Clément Lassieur
2018-11-04 23:08 ` [bug#33210] Cuirass: Use a " Ludovic Courtès
2018-11-05  8:02   ` Clément Lassieur
2018-11-06  0:11     ` Danny Milosavljevic [this message]
2018-11-06  0:50       ` Clément Lassieur
2018-11-06 11:20         ` Danny Milosavljevic
2018-11-06 14:07           ` Clément Lassieur
2018-11-06 20:10             ` Danny Milosavljevic
2018-11-07 11:38               ` Clément Lassieur
2018-11-07 23:59                 ` Danny Milosavljevic
2018-11-08  7:45                   ` Clément Lassieur
2018-11-06 14:40     ` Ludovic Courtès
2018-12-13 13:57       ` bug#33210: " Clément Lassieur

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181106011154.3f235763@scratchpost.org \
    --to=dannym@scratchpost.org \
    --cc=33210@debbugs.gnu.org \
    --cc=clement@lassieur.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).