xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] oxenstored: improve transaction conflict handling
@ 2016-03-17 17:51 Jonathan Davies
  2016-03-17 17:51 ` [PATCH 1/7] oxenstored: refactor putting response on wire Jonathan Davies
                   ` (7 more replies)
  0 siblings, 8 replies; 21+ messages in thread
From: Jonathan Davies @ 2016-03-17 17:51 UTC (permalink / raw)
  To: xen-devel
  Cc: Jonathan Davies, Jon Ludlam, Andrew Cooper, Euan Harris, Dave Scott

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.

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

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2016-03-30 15:55 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2016-03-18 16:36   ` Wei Liu
2016-03-19 11:30     ` David Scott

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 NNTP newsgroup(s).