From: Jonathan Davies <firstname.lastname@example.org> To: email@example.com Cc: Jonathan Davies <firstname.lastname@example.org>, Jon Ludlam <email@example.com>, Andrew Cooper <firstname.lastname@example.org>, Euan Harris <email@example.com>, Dave Scott <firstname.lastname@example.org> Subject: [PATCH 0/7] oxenstored: improve transaction conflict handling Date: Thu, 17 Mar 2016 17:51:08 +0000 [thread overview] Message-ID: <email@example.com> (raw) 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(-) -- 188.8.131.52 _______________________________________________ Xen-devel mailing list Xenfirstname.lastname@example.org http://lists.xen.org/xen-devel
next reply other threads:[~2016-03-17 17:51 UTC|newest] Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-03-17 17:51 Jonathan Davies [this message] 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
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 \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [PATCH 0/7] oxenstored: improve transaction conflict handling' \ /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
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).