Commit 98fe9f1b authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent a31b3751
...@@ -62,7 +62,7 @@ package xbtree ...@@ -62,7 +62,7 @@ package xbtree
// //
// Queries are relatively straightforward code that work on vδT snapshot. The // Queries are relatively straightforward code that work on vδT snapshot. The
// main complexity, besides BTree-diff algorithm, lies in recomputing vδT when // main complexity, besides BTree-diff algorithm, lies in recomputing vδT when
// set of tracked keys changes and in handling that recomputation in such a way // set of tracked keys changes, and in handling that recomputation in such a way
// that multiple Track and queries requests could be all served in parallel. // that multiple Track and queries requests could be all served in parallel.
// //
// //
...@@ -74,7 +74,7 @@ package xbtree ...@@ -74,7 +74,7 @@ package xbtree
// 1. vδT is managed under read-copy-update (RCU) discipline: before making // 1. vδT is managed under read-copy-update (RCU) discipline: before making
// any vδT change the mutator atomically clones whole vδT and applies its // any vδT change the mutator atomically clones whole vδT and applies its
// change to the clone. This way a query, once it retrieves vδT snapshot, // change to the clone. This way a query, once it retrieves vδT snapshot,
// does not need to further synchronize with vδT mutators, and can count on // does not need to further synchronize with vδT mutators, and can rely on
// that retrieved vδT snapshot will remain immutable. // that retrieved vδT snapshot will remain immutable.
// //
// 2. a Track request goes through 3 states: "new", "handle-in-progress" and // 2. a Track request goes through 3 states: "new", "handle-in-progress" and
...@@ -82,7 +82,7 @@ package xbtree ...@@ -82,7 +82,7 @@ package xbtree
// //
// - ΔTtail.ktrackNew and .trackNew for "new", // - ΔTtail.ktrackNew and .trackNew for "new",
// - ΔTtail.krebuildJobs for "handle-in-progress", and // - ΔTtail.krebuildJobs for "handle-in-progress", and
// - ΔBtail.trackSet for "handled" // - ΔBtail.trackSet for "handled".
// //
// trackSet keeps nodes, and implicitly keys, from all handled Track // trackSet keeps nodes, and implicitly keys, from all handled Track
// requests. For all keys, covered by trackSet, vδT is fully computed. // requests. For all keys, covered by trackSet, vδT is fully computed.
...@@ -111,18 +111,18 @@ package xbtree ...@@ -111,18 +111,18 @@ package xbtree
// as merge of vδT computed for tracked set T₁ and vδT computed for tracked // as merge of vδT computed for tracked set T₁ and vδT computed for tracked
// set T₂. // set T₂.
// //
// this merge property allows to run computation for δ(vδT) with ΔBtail // this merge property allows to run computation for δ(vδT) independently
// unlocked, which in turn enables running several Track/queries in // and with ΔBtail unlocked, which in turn enables running several
// parallel. // Track/queries in parallel.
// //
// 4. while vδT rebuild is being run, krebuildJobs keeps corresponding keycov // 4. while vδT rebuild is being run, krebuildJobs keeps corresponding keycov
// entry to indicate in-progress rebuild. Should a query need vδT for keys // entry to indicate in-progress rebuild. Should a query need vδT for keys
// from that job, it first waits for corresponding job(s) to complete. // from that job, it first waits for corresponding job(s) to complete.
// //
// This locking organization allows non-overlapping queries/track-requests to // Explained rebuild organization allows non-overlapping queries/track-requests
// run simultaneously. This property is essential to WCFS because otherwise WCFS // to run simultaneously. This property is essential to WCFS because otherwise
// would not be able to serve several non-overlapping READ requests to one file // WCFS would not be able to serve several non-overlapping READ requests to one
// in parallel. // file in parallel.
// //
// -------- // --------
// //
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment