All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Davies <jonathan.davies@citrix.com>
To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: xen-devel@lists.xenproject.org,
	Jon Ludlam <jonathan.ludlam@citrix.com>,
	Dave Scott <dave@recoil.org>,
	Euan Harris <euan.harris@citrix.com>,
	Andrew Cooper <andrew.cooper3@citrix.com>
Subject: Re: [PATCH 0/7] oxenstored: improve transaction conflict handling
Date: Fri, 18 Mar 2016 16:21:03 +0000	[thread overview]
Message-ID: <20160318162103.GD3316@citrix.com> (raw)
In-Reply-To: <20160318143335.GD27285@char.us.oracle.com>

On Fri, Mar 18, 2016 at 10:33:35AM -0400, Konrad Rzeszutek Wilk wrote:
> On Thu, Mar 17, 2016 at 05:51:08PM +0000, Jonathan Davies wrote:
> > This patch series makes a substantial improvement to oxenstored's transaction
> > handling.
> > 
> > The original design of oxenstored assumed that a transaction would only ever
> > span a small subtree. In practice this is rarely the case and means that other
> > xenstore traffic overlapping with a transaction can cause it to fail with
> > EAGAIN. This leads to significant performance problems with toolstack operations
> > when there is a certain level of xenstore traffic coming from other sources.
> > 
> > Instead, we observe that, although the transaction may span a large subtree, it
> > is very unlikely to read or write the same keys as other xenstore traffic. This
> > observation leads to an improved transaction conflict-handling algorithm in
> > which the transaction is replayed to check it is serializable. This approach is
> > superior in performance.
> > 
> > The sixth patch is the main one that changes the way transaction conflicts are
> > handled. The first five patches prepare the way by performing some refactoring
> > and addition of infrastructure that allows for transactions to be replayed. The
> > seventh patch adds some extra logging.
> 
> All the patches have quite the Reviewed-by list already so I would think
> these can go in now?
> 
> Thought oddly I didn't see any discussion on xen-devel for this?

Indeed; we did a lot of testing internally before these patches were posted.

Jonathan

> > Jonathan Davies (7):
> >   oxenstored: refactor putting response on wire
> >   oxenstored: remove some unused parameters
> >   oxenstored: refactor request processing
> >   oxenstored: keep track of each transaction's operations
> >   oxenstored: move functions that process simple operations
> >   oxenstored: replay transaction upon conflict
> >   oxenstored: log request and response during transaction replay
> > 
> >  tools/ocaml/xenstored/Makefile        |    1 +
> >  tools/ocaml/xenstored/connection.ml   |    5 +-
> >  tools/ocaml/xenstored/define.ml       |    1 +
> >  tools/ocaml/xenstored/oxenstored.conf |    1 +
> >  tools/ocaml/xenstored/process.ml      |  344 +++++++++++++++++++++------------
> >  tools/ocaml/xenstored/transaction.ml  |   21 +-
> >  tools/ocaml/xenstored/xenstored.ml    |    1 +
> >  7 files changed, 239 insertions(+), 135 deletions(-)
> > 
> > -- 
> > 1.7.10.4
> > 
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.xen.org
> > http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2016-03-18 16:21 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-17 17:51 [PATCH 0/7] oxenstored: improve transaction conflict handling Jonathan Davies
2016-03-17 17:51 ` [PATCH 1/7] oxenstored: refactor putting response on wire Jonathan Davies
2016-03-17 17:51 ` [PATCH 2/7] oxenstored: remove some unused parameters Jonathan Davies
2016-03-17 17:51 ` [PATCH 3/7] oxenstored: refactor request processing Jonathan Davies
2016-03-24 22:22   ` Boris Ostrovsky
2016-03-24 22:49     ` Andrew Cooper
2016-03-24 23:57       ` Boris Ostrovsky
2016-03-29  9:08         ` Jonathan Davies
2016-03-29 12:45           ` Boris Ostrovsky
2016-03-29 16:38           ` Wei Liu
2016-03-29 19:41             ` David Scott
2016-03-30 15:46               ` Jonathan Davies
2016-03-30 15:53                 ` Wei Liu
2016-03-17 17:51 ` [PATCH 4/7] oxenstored: keep track of each transaction's operations Jonathan Davies
2016-03-17 17:51 ` [PATCH 5/7] oxenstored: move functions that process simple operations Jonathan Davies
2016-03-17 17:51 ` [PATCH 6/7] oxenstored: replay transaction upon conflict Jonathan Davies
2016-03-17 17:51 ` [PATCH 7/7] oxenstored: log request and response during transaction replay Jonathan Davies
2016-03-18 14:33 ` [PATCH 0/7] oxenstored: improve transaction conflict handling Konrad Rzeszutek Wilk
2016-03-18 16:21   ` Jonathan Davies [this message]
2016-03-18 16:36   ` Wei Liu
2016-03-19 11:30     ` David Scott

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

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

  git send-email \
    --in-reply-to=20160318162103.GD3316@citrix.com \
    --to=jonathan.davies@citrix.com \
    --cc=andrew.cooper3@citrix.com \
    --cc=dave@recoil.org \
    --cc=euan.harris@citrix.com \
    --cc=jonathan.ludlam@citrix.com \
    --cc=konrad.wilk@oracle.com \
    --cc=xen-devel@lists.xenproject.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.