unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Danny Milosavljevic <dannym@scratchpost.org>
To: "Clément Lassieur" <clement@lassieur.org>
Cc: 32234@debbugs.gnu.org
Subject: bug#32234: [PATCH 2/2] database: Serialize all database accesses in a thread.
Date: Mon, 27 Aug 2018 14:41:48 +0200	[thread overview]
Message-ID: <20180827144120.13c76371@scratchpost.org> (raw)
In-Reply-To: <87lg8tb4rz.fsf@lassieur.org>

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

Hi Clément,

in the future I plan on making the actual bin/evaluate use another database connection
in order for the web interface to be isolated while it's querying.

Otherwise - as it is now in master - it can happen that while you are querying one
page, half of the things have different values than you requested - which is really
weird.

For example right now you could query for a row with status=42 and get back data with
status=43 (because it has been changed in the mean time).

It's better to have serializable transaction isolation to prevent this.  That means
that each connection will have its own worldview that is fixed at the beginning of
the connection's transaction.  The worldview will update only once a new transaction
starts.

Therefore, it would be good for writers to have their own connection in the long run
(really, for the readers to have their own connection - but that comes out the same).

So it would be good to keep this in mind.

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

  parent reply	other threads:[~2018-08-27 12:59 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-21  9:57 bug#32234: Cuirass: The SQLite built in busy handler might block the Fibers scheduler Clément Lassieur
2018-07-23  9:18 ` Ludovic Courtès
2018-07-23 13:42   ` Clément Lassieur
2018-07-23 14:57     ` Ludovic Courtès
2018-07-23 16:18       ` Clément Lassieur
2018-07-23 20:11         ` Ludovic Courtès
2018-08-06 19:27 ` bug#32234: [PATCH 1/2] utils: Avoid deadlock when WITH-CRITICAL-SECTION calls are nested Clément Lassieur
2018-08-06 19:27   ` bug#32234: [PATCH 2/2] database: Serialize all database accesses in a thread Clément Lassieur
2018-08-06 19:35     ` Clément Lassieur
2018-08-19 14:06     ` Ludovic Courtès
2018-08-26 14:07       ` Clément Lassieur
2018-08-26 21:16         ` Ludovic Courtès
2018-08-27 13:47           ` Clément Lassieur
2018-08-27 12:41         ` Danny Milosavljevic [this message]
2018-08-27 13:18           ` Clément Lassieur
2018-08-27 14:23             ` Danny Milosavljevic
2018-08-27 15:05               ` 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=20180827144120.13c76371@scratchpost.org \
    --to=dannym@scratchpost.org \
    --cc=32234@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).