From d94645f1eb00e2703aef57cac19df9e86c54d275 Mon Sep 17 00:00:00 2001 From: Thomas Sanders Date: Tue, 14 Mar 2017 12:15:52 +0000 Subject: [PATCH 03/15] oxenstored: comments explaining some variables It took a while of reading and reasoning to work out what these are for, so here are comments to make life easier for everyone reading this code in future. Reported-by: Juergen Gross Signed-off-by: Thomas Sanders Reviewed-by: Jonathan Davies Reviewed-by: Ian Jackson Reviewed-by: Christian Lindig --- tools/ocaml/xenstored/store.ml | 1 + tools/ocaml/xenstored/transaction.ml | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/tools/ocaml/xenstored/store.ml b/tools/ocaml/xenstored/store.ml index 223ee21..9f619b8 100644 --- a/tools/ocaml/xenstored/store.ml +++ b/tools/ocaml/xenstored/store.ml @@ -211,6 +211,7 @@ let apply rnode path fct = lookup rnode path fct end +(* The Store.t type *) type t = { mutable stat_transaction_coalesce: int; diff --git a/tools/ocaml/xenstored/transaction.ml b/tools/ocaml/xenstored/transaction.ml index 6b37fc2..51d5d6a 100644 --- a/tools/ocaml/xenstored/transaction.ml +++ b/tools/ocaml/xenstored/transaction.ml @@ -69,11 +69,15 @@ let can_coalesce oldroot currentroot path = else false -type ty = No | Full of (int * Store.Node.t * Store.t) +type ty = No | Full of ( + int * (* Transaction id *) + Store.Node.t * (* Original root *) + Store.t (* A pointer to the canonical store: its root changes on each transaction-commit *) +) type t = { ty: ty; - store: Store.t; + store: Store.t; (* This is the store that we change in write operations. *) quota: Quota.t; mutable paths: (Xenbus.Xb.Op.operation * Store.Path.t) list; mutable operations: (Packet.request * Packet.response) list; @@ -155,7 +159,7 @@ let commit ~con t = let has_commited = match t.ty with | No -> true - | Full (id, oldroot, cstore) -> + | Full (id, oldroot, cstore) -> (* "cstore" meaning current canonical store *) let commit_partial oldroot cstore store = (* get the lowest path of the query and verify that it hasn't been modified by others transactions. *) -- 2.1.4