Commit 6c6fb304 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent b20440bc
...@@ -20,6 +20,28 @@ ...@@ -20,6 +20,28 @@
package main package main
// XXX doc (2 ways of testing: explicit + allstructs), treegen py helper // XXX doc (2 ways of testing: explicit + allstructs), treegen py helper
//
// Adjacency matrix
//
// A, B - topologies ex T/B1 T2/B1-B3
// Av, Bv - topologies with values ex T/B1:a T2/B1:b-B3:c
//
// δ(Av, Bv) - full diff {k -> v} for changed keys; DEL = k -> ø
// ex δ(T/B1:a, T2/B1:b-B3:c) = {1:a 3:c}
//
// Δ(T, Av, Bv) - subset of δ(Av, Bv) corresponding to initial tracking set T
// ex Δ({1}, T/B1:a, T2/B1:b-B3:c) = {1:a} (no 3:c)
//
// kadj(A,B) {} k -> {k'}: - adjacency matrix
// ∃v1,v2: k'∈ Δ({k}, Av1, Bv2)
//
// ex kadj(T/B1, T2/B1-B3) = {1:{1} 3:{1,3} ∞:{1,3}} k ∈ A+B+{∞}
// + {0:{1} 2:{1,3} + ... all possible keys}
//
// Δ(T, Av, Bv) = δ(Av, Bv)/kadj(A,B)[T]
//
// i.e. = δ(Av, Bv) for k: k ∈ U kadj(A,B)[·]
// ·∈T
import ( import (
"bufio" "bufio"
...@@ -298,10 +320,6 @@ func (rbs RBucketSet) coverage() string { ...@@ -298,10 +320,6 @@ func (rbs RBucketSet) coverage() string {
// The tree is returned structured by buckets as // The tree is returned structured by buckets as
// //
// [] [lo,hi){k->v} k↑ // [] [lo,hi){k->v} k↑
//
// XXX kill where key k points to {k->v} that represents k's bucket.
//func XGetTree(db *zodb.DB, at zodb.Tid, root zodb.Oid) map[Key]map[Key]string {
//func XGetTree(db *zodb.DB, at zodb.Tid, root zodb.Oid) map[Key]*RBucket {
func XGetTree(db *zodb.DB, at zodb.Tid, root zodb.Oid) RBucketSet { func XGetTree(db *zodb.DB, at zodb.Tid, root zodb.Oid) RBucketSet {
defer exc.Contextf("%s: @%s: get tree %s", db.Storage().URL(), at, root) defer exc.Contextf("%s: @%s: get tree %s", db.Storage().URL(), at, root)
X := exc.Raiseif X := exc.Raiseif
......
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