Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
W
wendelin.core
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
Kirill Smelkov
wendelin.core
Commits
c71be2d4
Commit
c71be2d4
authored
Nov 22, 2018
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
f34ea31d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
150 additions
and
121 deletions
+150
-121
wcfs/todo.dot
wcfs/todo.dot
+12
-2
wcfs/todo.svg
wcfs/todo.svg
+138
-119
No files found.
wcfs/todo.dot
View file @
c71be2d4
digraph
{
subgraph
{
rank
=
same
;
ordering
=
in
;
wcfs
[
label
=
"wcfs"
]
invProto
[
label
=
"open/invalidation\nprotocol"
]
client
[
label
=
"client"
]
wcfs
->
invProto
;
invProto
->
client
[
dir
=
back
]
;
// XXX = invProto <- client
}
// wcfs -> wcfs_simple;
// wcfs -> Sinvtree;
// wcfs -> δR;
...
...
@@ -45,9 +57,7 @@ digraph {
// ZODB_read -> ogorek_persref;
wcfs
[
label
=
"wcfs"
]
// wcfs_simple [label="wcfs no\ninvalidations", style=filled fillcolor=grey95]
client
[
label
=
"client"
]
// wcfs_spawn [label="spawn wcfs", style=filled fillcolor=lightyellow]
nowcfs
[
label
=
"!wcfs mode"
]
...
...
wcfs/todo.svg
View file @
c71be2d4
...
...
@@ -4,245 +4,264 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: %3 Pages: 1 -->
<svg
width=
"1
321pt"
height=
"367
pt"
viewBox=
"0.00 0.00 1
321.46 367.48
"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<g
id=
"graph0"
class=
"graph"
transform=
"scale(1 1) rotate(0) translate(4 3
63.4802
)"
>
<svg
width=
"1
290pt"
height=
"385
pt"
viewBox=
"0.00 0.00 1
290.46 385.22
"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<g
id=
"graph0"
class=
"graph"
transform=
"scale(1 1) rotate(0) translate(4 3
81.2203
)"
>
<title>
%3
</title>
<polygon
fill=
"#ffffff"
stroke=
"transparent"
points=
"-4,4 -4,-3
63.4802 1317.4565,-363.4802 1317
.4565,4 -4,4"
/>
<polygon
fill=
"#ffffff"
stroke=
"transparent"
points=
"-4,4 -4,-3
81.2203 1286.4565,-381.2203 1286
.4565,4 -4,4"
/>
<!-- wcfs -->
<g
id=
"node1"
class=
"node"
>
<title>
wcfs
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"
447.8112"
cy=
"-341.4802
"
rx=
"27.0966"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"
447.8112"
y=
"-337.7802
"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
wcfs
</text>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"
595.8112"
cy=
"-350.3503
"
rx=
"27.0966"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"
595.8112"
y=
"-346.6503
"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
wcfs
</text>
</g>
<!--
autoexit
-->
<!--
invProto
-->
<g
id=
"node2"
class=
"node"
>
<title>
invProto
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"801.8112"
cy=
"-350.3503"
rx=
"78.4777"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"801.8112"
y=
"-354.1503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
open/invalidation
</text>
<text
text-anchor=
"middle"
x=
"801.8112"
y=
"-339.1503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
protocol
</text>
</g>
<!-- wcfs->invProto -->
<g
id=
"edge1"
class=
"edge"
>
<title>
wcfs
->
invProto
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M623.1706,-350.3503C653.1593,-350.3503 683.1481,-350.3503 713.1369,-350.3503"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"713.307,-353.8504 723.307,-350.3503 713.307,-346.8504 713.307,-353.8504"
/>
</g>
<!-- autoexit -->
<g
id=
"node4"
class=
"node"
>
<title>
autoexit
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"
287
.8112"
cy=
"-260.6102"
rx=
"52.1524"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"
287
.8112"
y=
"-264.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
autoexit
</text>
<text
text-anchor=
"middle"
x=
"
287
.8112"
y=
"-249.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
if !activity
</text>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"
363
.8112"
cy=
"-260.6102"
rx=
"52.1524"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"
363
.8112"
y=
"-264.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
autoexit
</text>
<text
text-anchor=
"middle"
x=
"
363
.8112"
y=
"-249.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
if !activity
</text>
</g>
<!-- wcfs->autoexit -->
<g
id=
"edge
1
"
class=
"edge"
>
<g
id=
"edge
3
"
class=
"edge"
>
<title>
wcfs
->
autoexit
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
425.8993,-330.4052C402.4756,-318.5659 364.6367,-299.4407 334.487,-284.2019
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
335.9051,-280.997 325.4015,-279.6097 332.7474,-287.2444 335.9051,-280.997
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
571.5583,-341.972C538.2492,-330.3431 476.5811,-308.3754 424.8112,-287.4802 420.8876,-285.8966 416.8405,-284.2173 412.7852,-282.5018
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
413.9322,-279.1855 403.3621,-278.4616 411.1737,-285.6191 413.9322,-279.1855
"
/>
</g>
<!-- wcfsInvProcess -->
<g
id=
"node
3
"
class=
"node"
>
<g
id=
"node
5
"
class=
"node"
>
<title>
wcfsInvProcess
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"
447
.8112"
cy=
"-260.6102"
rx=
"89.6056"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"
447
.8112"
y=
"-264.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
process
</text>
<text
text-anchor=
"middle"
x=
"
447
.8112"
y=
"-249.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
ZODB invalidations
</text>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"
523
.8112"
cy=
"-260.6102"
rx=
"89.6056"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"
523
.8112"
y=
"-264.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
process
</text>
<text
text-anchor=
"middle"
x=
"
523
.8112"
y=
"-249.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
ZODB invalidations
</text>
</g>
<!-- wcfs->wcfsInvProcess -->
<g
id=
"edge
2
"
class=
"edge"
>
<g
id=
"edge
4
"
class=
"edge"
>
<title>
wcfs
->
wcfsInvProcess
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
447.8112,-323.1296C447.8112,-315.5597 447.8112,-306.5002 447.8112,-297.6583
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
451.3113,-297.4808 447.8112,-287.4808 444.3113,-297.4808 451.3113,-297.4808
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
582.939,-334.3066C574.2299,-323.4516 562.3891,-308.6933 551.5908,-295.2344
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
554.0273,-292.6783 545.0393,-287.0687 548.5674,-297.0589 554.0273,-292.6783
"
/>
</g>
<!-- wcfsRead -->
<g
id=
"node
4
"
class=
"node"
>
<g
id=
"node
6
"
class=
"node"
>
<title>
wcfsRead
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"8
6
3.8112"
cy=
"-260.6102"
rx=
"47.3916"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"8
6
3.8112"
y=
"-256.9102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
read(#blk)
</text>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"8
3
3.8112"
cy=
"-260.6102"
rx=
"47.3916"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"8
3
3.8112"
y=
"-256.9102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
read(#blk)
</text>
</g>
<!-- wcfs->wcfsRead -->
<g
id=
"edge
3
"
class=
"edge"
>
<g
id=
"edge
5
"
class=
"edge"
>
<title>
wcfs
->
wcfsRead
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M474.1494,-336.3601C541.6501,-323.238 721.8143,-288.2143 811.5369,-270.7722"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"812.3476,-274.1803 821.4959,-268.8362 811.0117,-267.3089 812.3476,-274.1803"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M619.9416,-341.2517C659.9371,-326.171 740.5048,-295.7922 790.532,-276.929"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"791.9871,-280.121 800.1092,-273.3178 789.5173,-273.5711 791.9871,-280.121"
/>
</g>
<!-- client -->
<g
id=
"node3"
class=
"node"
>
<title>
client
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"969.8112"
cy=
"-350.3503"
rx=
"30.5947"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"969.8112"
y=
"-346.6503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
client
</text>
</g>
<!-- invProto->client -->
<g
id=
"edge2"
class=
"edge"
>
<title>
invProto
->
client
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M890.628,-350.3503C906.7958,-350.3503 922.9636,-350.3503 939.1315,-350.3503"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"890.5612,-346.8504 880.5612,-350.3503 890.5611,-353.8504 890.5612,-346.8504"
/>
</g>
<!-- client->wcfsRead -->
<g
id=
"edge18"
class=
"edge"
>
<title>
client
->
wcfsRead
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M949.4506,-336.9153C927.3478,-322.3307 891.7503,-298.8415 865.8833,-281.7731"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"867.7919,-278.8392 857.5176,-276.2529 863.9366,-284.6819 867.7919,-278.8392"
/>
</g>
<!-- mappingRegister -->
<g
id=
"node13"
class=
"node"
>
<title>
mappingRegister
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1000.8112"
cy=
"-170.8701"
rx=
"65.1077"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"1000.8112"
y=
"-174.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
mmappings:
</text>
<text
text-anchor=
"middle"
x=
"1000.8112"
y=
"-159.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
register/maint
</text>
</g>
<!-- client->mappingRegister -->
<g
id=
"edge19"
class=
"edge"
>
<title>
client
->
mappingRegister
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M972.621,-332.1459C976.2019,-309.1786 982.6665,-268.4812 988.8112,-233.7401 990.2972,-225.3386 991.9712,-216.3212 993.5869,-207.8132"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"997.0681,-208.2434 995.5122,-197.7635 990.1931,-206.9263 997.0681,-208.2434"
/>
</g>
<!-- clientInvHandle -->
<g
id=
"node18"
class=
"node"
>
<title>
clientInvHandle
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1078.8112"
cy=
"-260.6102"
rx=
"80.7205"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"1078.8112"
y=
"-264.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
process
</text>
<text
text-anchor=
"middle"
x=
"1078.8112"
y=
"-249.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
#blk invalidations
</text>
</g>
<!-- client->clientInvHandle -->
<g
id=
"edge20"
class=
"edge"
>
<title>
client
->
clientInvHandle
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M987.8103,-335.5315C1002.0729,-323.7891 1022.5081,-306.9648 1040.4013,-292.2332"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"1042.9168,-294.6957 1048.4124,-285.6376 1038.4676,-289.2916 1042.9168,-294.6957"
/>
</g>
<!-- nowcfs -->
<g
id=
"node19"
class=
"node"
>
<title>
nowcfs
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1229.8112"
cy=
"-260.6102"
rx=
"52.7911"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"1229.8112"
y=
"-256.9102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
!wcfs mode
</text>
</g>
<!-- client->nowcfs -->
<g
id=
"edge21"
class=
"edge"
>
<title>
client
->
nowcfs
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M997.4952,-342.6396C1036.2362,-331.616 1108.6328,-310.1634 1168.8112,-287.4802 1175.359,-285.0121 1182.217,-282.2108 1188.8732,-279.3714"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"1190.6473,-282.4166 1198.4215,-275.2185 1187.8553,-275.9975 1190.6473,-282.4166"
/>
</g>
<!-- ZODB_go_inv -->
<g
id=
"node
5
"
class=
"node"
>
<g
id=
"node
7
"
class=
"node"
>
<title>
ZODB_go_inv
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"60.8112"
cy=
"-170.8701"
rx=
"60.623"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"60.8112"
y=
"-174.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
ZODB/go
</text>
<text
text-anchor=
"middle"
x=
"60.8112"
y=
"-159.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
invalidations
</text>
</g>
<!-- wcfsInvProcess->ZODB_go_inv -->
<g
id=
"edge
4
"
class=
"edge"
>
<g
id=
"edge
6
"
class=
"edge"
>
<title>
wcfsInvProcess
->
ZODB_go_inv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
382.8073,-241.9601C371.5207,-239.011 359.8613,-236.1456 348.8112,-233.7401 252.8573,-212.852 225.5821,-223.4682 130.8112,-197.7401 125.5506,-196.312 120.138,-194.6321 114.7639,-192.8211
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"115.
7682,-189.4641 105.1734,-189.4456 113.4442,-196.0671 115.7682,-189.4641
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
459.6883,-241.7734C448.145,-238.7929 436.1713,-235.9654 424.8112,-233.7401 295.6238,-208.4342 258.5488,-229.5659 130.8112,-197.7401 125.4429,-196.4026 119.9278,-194.7686 114.4625,-192.9735
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"115.
3162,-189.5652 104.7214,-189.5974 113.0239,-196.1792 115.3162,-189.5652
"
/>
</g>
<!-- zconnCacheGet -->
<g
id=
"node
6
"
class=
"node"
>
<g
id=
"node
8
"
class=
"node"
>
<title>
zconnCacheGet
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"210.8112"
cy=
"-170.8701"
rx=
"71.4873"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"210.8112"
y=
"-167.1701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
zconn.Cache.Get
</text>
</g>
<!-- wcfsInvProcess->zconnCacheGet -->
<g
id=
"edge
5
"
class=
"edge"
>
<g
id=
"edge
7
"
class=
"edge"
>
<title>
wcfsInvProcess
->
zconnCacheGet
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
391.9456,-239.4567C351.9531,-224.3135 298.6039,-204.1128 260.174,-189.5613
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"26
1.3337,-186.258 250.7423,-185.99 258.8549,-192.8044 261.3337,-186.258
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
457.2468,-242.5369C446.406,-239.5954 435.2965,-236.5821 424.8112,-233.7401 365.7056,-217.7198 350.4515,-215.3877 291.8112,-197.7401 282.341,-194.8901 272.3025,-191.6995 262.6358,-188.5398
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"26
3.7211,-185.2123 253.128,-185.404 261.5285,-191.8601 263.7211,-185.2123
"
/>
</g>
<!-- zobj2file -->
<g
id=
"node
7
"
class=
"node"
>
<g
id=
"node
9
"
class=
"node"
>
<title>
zobj2file
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"370.8112"
cy=
"-170.8701"
rx=
"70.3881"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"370.8112"
y=
"-167.1701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
Z* → file/[]#blk
</text>
</g>
<!-- wcfsInvProcess->zobj2file -->
<g
id=
"edge
6
"
class=
"edge"
>
<g
id=
"edge
8
"
class=
"edge"
>
<title>
wcfsInvProcess
->
zobj2file
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M4
25.1251,-234.1706C414.8887,-222.2405 402.847,-208.2064 392.7065,-196.3881
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
395.2035,-193.9233 386.0354,-188.6132 389.891,-198.4816 395.2035,-193.9233
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M4
82.81,-236.5615C459.5232,-222.9029 430.5977,-205.937 407.9761,-192.6686
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
409.7252,-189.6369 399.3286,-187.5966 406.1836,-195.675 409.7252,-189.6369
"
/>
</g>
<!-- δFtail -->
<g
id=
"node
8
"
class=
"node"
>
<g
id=
"node
10
"
class=
"node"
>
<title>
δFtail
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"638.8112"
cy=
"-170.8701"
rx=
"31.6951"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"638.8112"
y=
"-167.1701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
δFtail
</text>
</g>
<!-- wcfsInvProcess->δFtail -->
<g
id=
"edge
7
"
class=
"edge"
>
<g
id=
"edge
9
"
class=
"edge"
>
<title>
wcfsInvProcess
->
δFtail
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M5
04.5002,-239.696C533.0616,-228.4505 567.8907,-213.6423 597.8112,-197.7401 601.8951,-195.5696 606.0928,-193.1097 610.1718,-190.5812
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"61
2.3018,-193.3728 618.8218,-185.0218 608.5171,-187.4841 612.3018,-193.3728
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M5
56.1511,-235.3737C573.6886,-221.6884 595.1158,-204.9677 611.7595,-191.9798
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"61
4.2507,-194.4754 619.9812,-185.564 609.9443,-188.9568 614.2507,-194.4754
"
/>
</g>
<!-- fuseRetrieveCache -->
<g
id=
"node
9
"
class=
"node"
>
<g
id=
"node
11
"
class=
"node"
>
<title>
fuseRetrieveCache
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"523.8112"
cy=
"-170.8701"
rx=
"65.1077"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"523.8112"
y=
"-174.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
FUSE:
</text>
<text
text-anchor=
"middle"
x=
"523.8112"
y=
"-159.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
retrieve cache
</text>
</g>
<!-- wcfsInvProcess->fuseRetrieveCache -->
<g
id=
"edge
8
"
class=
"edge"
>
<g
id=
"edge
10
"
class=
"edge"
>
<title>
wcfsInvProcess
->
fuseRetrieveCache
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
470.2026,-234.1706C478.149,-224.7876 487.1975,-214.1031 495.5685,-204.2188
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
498.3107,-206.3965 502.1026,-196.5034 492.969,-201.8726 498.3107,-206.3965
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
523.8112,-233.6852C523.8112,-225.6102 523.8112,-216.607 523.8112,-207.9961
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
527.3113,-207.776 523.8112,-197.776 520.3113,-207.7761 527.3113,-207.776
"
/>
</g>
<!-- wcfsRead->δFtail -->
<g
id=
"edge1
0
"
class=
"edge"
>
<g
id=
"edge1
2
"
class=
"edge"
>
<title>
wcfsRead
->
δFtail
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
824.3537,-250.4755C786.0592,-239.8896 726.8474,-221.5129 678.8112,-197.7401 674.7366,-195.7236 670.5893,-193.3524 666.584,-190.8679
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"668.
4114,-187.8811 658.1254,-185.3419 664.5829,-193.7414 668.4114,-187.8811
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
798.4077,-248.6152C766.3717,-237.2133 718.3024,-218.7244 678.8112,-197.7401 674.9881,-195.7086 671.0761,-193.4005 667.2674,-191.0105
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"668.
9424,-187.9238 658.6582,-185.3771 665.1096,-193.7813 668.9424,-187.9238
"
/>
</g>
<!-- blktabGet -->
<g
id=
"node1
0
"
class=
"node"
>
<g
id=
"node1
2
"
class=
"node"
>
<title>
blktabGet
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"802.8112"
cy=
"-170.8701"
rx=
"114.6026"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"802.8112"
y=
"-174.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
blktab.Get(#blk):
</text>
<text
text-anchor=
"middle"
x=
"802.8112"
y=
"-159.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
manually + → ⌈rev(#blk)⌉
</text>
</g>
<!-- wcfsRead->blktabGet -->
<g
id=
"edge
9
"
class=
"edge"
>
<g
id=
"edge
11
"
class=
"edge"
>
<title>
wcfsRead
->
blktabGet
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M851.7595,-242.8804C844.594,-232.3388 835.2523,-218.5957 826.6529,-205.9448"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"829.3703,-203.7165 820.854,-197.4138 823.5811,-207.6516 829.3703,-203.7165"
/>
</g>
<!-- mappingRegister -->
<g
id=
"node11"
class=
"node"
>
<title>
mappingRegister
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1000.8112"
cy=
"-170.8701"
rx=
"65.1077"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"1000.8112"
y=
"-174.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
mmappings:
</text>
<text
text-anchor=
"middle"
x=
"1000.8112"
y=
"-159.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
register/maint
</text>
<path
fill=
"none"
stroke=
"#000000"
d=
"M827.5379,-242.4499C824.0824,-232.4469 819.665,-219.6593 815.5225,-207.6673"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"818.7079,-206.1688 812.1345,-197.8597 812.0915,-208.4544 818.7079,-206.1688"
/>
</g>
<!-- wcfsRead->mappingRegister -->
<g
id=
"edge1
1
"
class=
"edge"
>
<g
id=
"edge1
3
"
class=
"edge"
>
<title>
wcfsRead
->
mappingRegister
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M8
87.6748,-244.9786C906.8447,-232.4216 934.2755,-214.4534 957.3257,-199.3547
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"95
9.4718,-202.133 965.9191,-193.7257 955.6361,-196.2774 959.4718,-202.133
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M8
61.3878,-245.7914C885.9872,-232.5726 922.5709,-212.9137 952.0922,-197.05
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"95
3.8541,-200.0766 961.0061,-192.2599 950.5406,-193.9104 953.8541,-200.0766
"
/>
</g>
<!-- headInv -->
<g
id=
"node1
2
"
class=
"node"
>
<g
id=
"node1
4
"
class=
"node"
>
<title>
headInv
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1156.8112"
cy=
"-170.8701"
rx=
"73.387"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"1156.8112"
y=
"-167.1701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
#blk ← head/inv.
</text>
</g>
<!-- wcfsRead->headInv -->
<g
id=
"edge1
2
"
class=
"edge"
>
<g
id=
"edge1
4
"
class=
"edge"
>
<title>
wcfsRead
->
headInv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
901.6392,-249.6738C943.9378,-237.3671 1014.4354,-216.6233 1074.8112,-197.7401 1084.0434,-194.8526 1093.8351,-191.7123 1103.3168,-188.6304
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"110
4.6291,-191.8839 1113.0489,-185.4529 1102.4565,-185.2295 1104.6291,-191.883
9"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
874.103,-250.9033C922.1291,-239.148 1004.7014,-218.3507 1074.8112,-197.7401 1084.2972,-194.9515 1094.3423,-191.8147 1104.0277,-188.6947
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"110
5.1326,-192.0159 1113.5592,-185.5939 1102.9669,-185.3593 1105.1326,-192.015
9"
/>
</g>
<!-- zblk2file -->
<g
id=
"node1
3
"
class=
"node"
>
<g
id=
"node1
5
"
class=
"node"
>
<title>
zblk2file
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"264.8112"
cy=
"-90"
rx=
"83.3857"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"264.8112"
y=
"-86.3"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
ZBlk* → file/[]#blk
</text>
</g>
<!-- zobj2file->zblk2file -->
<g
id=
"edge1
3
"
class=
"edge"
>
<g
id=
"edge1
5
"
class=
"edge"
>
<title>
zobj2file
->
zblk2file
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M348.3313,-153.7196C333.1164,-142.1118 312.8112,-126.6204 296.0317,-113.8189"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"297.6975,-110.6875 287.6241,-107.4045 293.4515,-116.2528 297.6975,-110.6875"
/>
</g>
<!-- zbtree2file -->
<g
id=
"node1
4
"
class=
"node"
>
<g
id=
"node1
6
"
class=
"node"
>
<title>
zbtree2file
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"475.8112"
cy=
"-90"
rx=
"109.6807"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"475.8112"
y=
"-86.3"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
BTree/Bucket → file/[]#blk
</text>
</g>
<!-- zobj2file->zbtree2file -->
<g
id=
"edge1
4
"
class=
"edge"
>
<g
id=
"edge1
6
"
class=
"edge"
>
<title>
zobj2file
->
zbtree2file
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M393.079,-153.7196C408.0478,-142.1908 427.9906,-126.831 444.5456,-114.0805"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"447.0627,-116.5596 452.8496,-107.6848 442.7914,-111.0138 447.0627,-116.5596"
/>
</g>
<!-- δBTree -->
<g
id=
"node1
5
"
class=
"node"
>
<g
id=
"node1
7
"
class=
"node"
>
<title>
δBTree
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"475.8112"
cy=
"-18"
rx=
"43.5923"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"475.8112"
y=
"-14.3"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
δ(BTree)
</text>
</g>
<!-- zbtree2file->δBTree -->
<g
id=
"edge1
5
"
class=
"edge"
>
<g
id=
"edge1
7
"
class=
"edge"
>
<title>
zbtree2file
->
δBTree
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M475.8112,-71.8314C475.8112,-64.131 475.8112,-54.9743 475.8112,-46.4166"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"479.3113,-46.4132 475.8112,-36.4133 472.3113,-46.4133 479.3113,-46.4132"
/>
</g>
<!-- client -->
<g
id=
"node16"
class=
"node"
>
<title>
client
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1054.8112"
cy=
"-341.4802"
rx=
"30.5947"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"1054.8112"
y=
"-337.7802"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
client
</text>
</g>
<!-- client->wcfsRead -->
<g
id=
"edge16"
class=
"edge"
>
<title>
client
->
wcfsRead
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M1029.8413,-330.9079C998.1468,-317.4884 943.0353,-294.1539 905.0558,-278.0733"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"906.367,-274.8277 895.7937,-274.1517 903.6377,-281.2737 906.367,-274.8277"
/>
</g>
<!-- client->mappingRegister -->
<g
id=
"edge17"
class=
"edge"
>
<title>
client
->
mappingRegister
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M1041.5213,-324.9601C1033.9839,-314.7434 1025.04,-301.0299 1019.8112,-287.4802 1010.0131,-262.0902 1005.2677,-231.6953 1002.9694,-208.3035"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"1006.4343,-207.7489 1002.0763,-198.0919 999.4609,-208.3588 1006.4343,-207.7489"
/>
</g>
<!-- clientInvHandle -->
<g
id=
"node17"
class=
"node"
>
<title>
clientInvHandle
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1109.8112"
cy=
"-260.6102"
rx=
"80.7205"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"1109.8112"
y=
"-264.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
process
</text>
<text
text-anchor=
"middle"
x=
"1109.8112"
y=
"-249.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
#blk invalidations
</text>
</g>
<!-- client->clientInvHandle -->
<g
id=
"edge18"
class=
"edge"
>
<title>
client
->
clientInvHandle
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M1066.2072,-324.7239C1072.0085,-316.1939 1079.286,-305.4933 1086.2244,-295.2914"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"1089.2033,-297.135 1091.9329,-286.8978 1083.415,-293.1984 1089.2033,-297.135"
/>
</g>
<!-- nowcfs -->
<g
id=
"node18"
class=
"node"
>
<title>
nowcfs
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1260.8112"
cy=
"-260.6102"
rx=
"52.7911"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"1260.8112"
y=
"-256.9102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
!wcfs mode
</text>
</g>
<!-- client->nowcfs -->
<g
id=
"edge19"
class=
"edge"
>
<title>
client
->
nowcfs
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M1081.1838,-332.1823C1110.3792,-321.768 1158.7442,-304.1555 1199.8112,-287.4802 1206.2226,-284.8769 1212.967,-282.0237 1219.5391,-279.1794"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"1221.2256,-282.262 1228.9857,-275.0487 1218.4211,-275.8483 1221.2256,-282.262"
/>
</g>
<!-- clientInvHandle->headInv -->
<g
id=
"edge2
0
"
class=
"edge"
>
<g
id=
"edge2
2
"
class=
"edge"
>
<title>
clientInvHandle
->
headInv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M11
23.9127,-233.6852C1129.8276,-222.3916 1136.6935,-209.282 1142.6181,-197.9698
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"11
45.7928,-199.452 1147.3318,-188.9696 1139.5917,-196.2043 1145.7928,-199.452
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M11
01.372,-234.6536C1111.8272,-222.6247 1124.2118,-208.3761 1134.6208,-196.4004
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"11
37.5449,-198.3714 1141.4634,-188.5279 1132.2617,-193.7793 1137.5449,-198.3714
"
/>
</g>
</g>
</svg>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment