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
19738029
Commit
19738029
authored
Dec 26, 2018
by
Kirill Smelkov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
.
parent
991d1453
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
101 additions
and
85 deletions
+101
-85
wcfs/todo.dot
wcfs/todo.dot
+3
-1
wcfs/todo.svg
wcfs/todo.svg
+97
-84
wcfs/wcfs.go
wcfs/wcfs.go
+1
-0
No files found.
wcfs/todo.dot
View file @
19738029
...
...
@@ -18,6 +18,7 @@ digraph {
wcfs
->
wcfsInvProcess
;
wcfs
->
wcfsRead
;
wcfs
->
wcfsGC
;
wcfsInvProcess
->
ZODB_go_inv
;
wcfsInvProcess
->
zconnCacheGet
;
...
...
@@ -69,7 +70,7 @@ digraph {
wcfsInvProcess
[
label
=
"process\nZODB invalidations"
]
zconnCacheGet
[
label
=
"zconn.Cache.Get"
,
style
=
filled
fillcolor
=
grey95
]
zobj2file
[
label
=
"Z* → file/[]#blk"
]
zblk2file
[
label
=
"ZBlk* → file/[]#blk"
]
zblk2file
[
label
=
"ZBlk* → file/[]#blk"
,
style
=
filled
fillcolor
=
grey95
]
zbtree2file
[
label
=
"BTree/Bucket → file/[]#blk"
]
δ
BTree
[
label
=
"δ(BTree)"
]
...
...
@@ -99,5 +100,6 @@ digraph {
// zodburl [label="zstor -> zurl", style=filled fillcolor=grey95]
wcfsGC
[
label
=
"GC\n@rev/"
]
autoexit
[
label
=
"autoexit\nif !activity"
]
}
wcfs/todo.svg
View file @
19738029
...
...
@@ -4,29 +4,29 @@
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: %3 Pages: 1 -->
<svg
width=
"15
54
pt"
height=
"403pt"
viewBox=
"0.00 0.00 15
54
.46 402.96"
xmlns=
"http://www.w3.org/2000/svg"
xmlns:xlink=
"http://www.w3.org/1999/xlink"
>
<svg
width=
"15
68
pt"
height=
"403pt"
viewBox=
"0.00 0.00 15
68
.46 402.96"
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 398.9605)"
>
<title>
%3
</title>
<polygon
fill=
"#ffffff"
stroke=
"transparent"
points=
"-4,4 -4,-398.9605 15
50.4565,-398.9605 1550
.4565,4 -4,4"
/>
<polygon
fill=
"#ffffff"
stroke=
"transparent"
points=
"-4,4 -4,-398.9605 15
64.4565,-398.9605 1564
.4565,4 -4,4"
/>
<!-- wcfs -->
<g
id=
"node1"
class=
"node"
>
<title>
wcfs
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"
859
.8112"
cy=
"-368.0904"
rx=
"27.0966"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"
859
.8112"
y=
"-364.3904"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
wcfs
</text>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"
947
.8112"
cy=
"-368.0904"
rx=
"27.0966"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"
947
.8112"
y=
"-364.3904"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
wcfs
</text>
</g>
<!-- invProto -->
<g
id=
"node2"
class=
"node"
>
<title>
invProto
</title>
<ellipse
fill=
"#f2f2f2"
stroke=
"#000000"
cx=
"1
065
.8112"
cy=
"-368.0904"
rx=
"78.4777"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"1
065
.8112"
y=
"-371.8904"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
open/invalidation
</text>
<text
text-anchor=
"middle"
x=
"1
065
.8112"
y=
"-356.8904"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
protocol
</text>
<ellipse
fill=
"#f2f2f2"
stroke=
"#000000"
cx=
"1
104
.8112"
cy=
"-368.0904"
rx=
"78.4777"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"1
104
.8112"
y=
"-371.8904"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
open/invalidation
</text>
<text
text-anchor=
"middle"
x=
"1
104
.8112"
y=
"-356.8904"
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=
"M
887.1706,-368.0904C917.1593,-368.0904 947.1481,-368.0904 977.1369
,-368.0904"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
977.307,-371.5905 987.307,-368.0904 977.307,-364.5905 977.307
,-371.5905"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
975.4088,-368.0904C988.9027,-368.0904 1002.3966,-368.0904 1015.8905
,-368.0904"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"
1016.2094,-371.5905 1026.2094,-368.0904 1016.2093,-364.5905 1016.2094
,-371.5905"
/>
</g>
<!-- autoexit -->
<g
id=
"node4"
class=
"node"
>
...
...
@@ -38,8 +38,8 @@
<!-- wcfs->autoexit -->
<g
id=
"edge3"
class=
"edge"
>
<title>
wcfs
->
autoexit
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
835.5583,-359.7121C802.2492,-348.0832 740.5811,-326.1155 688.8112,-305.2203 684.8876,-303.6367 680.8405,-301.9574 676.7852,-300.2419
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"677.
9322,-296.9256 667.3621,-296.2017 675.1737,-303.3592 677.9322,-296.9256
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
921.2727,-363.2609C873.8768,-354.2817 771.8618,-333.3454 688.8112,-305.2203 684.5656,-303.7826 680.2083,-302.1648 675.8702,-300.4543
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"677.
0355,-297.1493 666.4551,-296.5956 674.3809,-303.6265 677.0355,-297.1493
"
/>
</g>
<!-- wcfsInvProcess -->
<g
id=
"node5"
class=
"node"
>
...
...
@@ -51,269 +51,282 @@
<!-- wcfs->wcfsInvProcess -->
<g
id=
"edge4"
class=
"edge"
>
<title>
wcfs
->
wcfsInvProcess
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
846.939,-352.0467C838.2299,-341.1917 826.3891,-326.4335 815.5908,-312.974
5"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"8
18.0273,-310.4184 809.0393,-304.8088 812.5674,-314.799 818.0273,-310.4184
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M
926.894,-356.3585C904.7855,-343.9583 869.0751,-323.9292 839.3755,-307.271
5"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"8
40.8071,-304.0615 830.3731,-302.2222 837.3827,-310.1668 840.8071,-304.0615
"
/>
</g>
<!-- wcfsRead -->
<g
id=
"node6"
class=
"node"
>
<title>
wcfsRead
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1
097
.8112"
cy=
"-278.3503"
rx=
"47.3916"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"1
097
.8112"
y=
"-274.6503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
read(#blk)
</text>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1
119
.8112"
cy=
"-278.3503"
rx=
"47.3916"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"1
119
.8112"
y=
"-274.6503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
read(#blk)
</text>
</g>
<!-- wcfs->wcfsRead -->
<g
id=
"edge5"
class=
"edge"
>
<title>
wcfs
->
wcfsRead
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M883.9416,-358.9918C923.9371,-343.9111 1004.5048,-313.5323 1054.532,-294.6691"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"1055.9871,-297.8611 1064.1092,-291.058 1053.5173,-291.3112 1055.9871,-297.8611"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M969.2473,-356.9062C997.6847,-342.0692 1048.3174,-315.6518 1082.9497,-297.5826"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"1084.5768,-300.6815 1091.8236,-292.9527 1081.3387,-294.4754 1084.5768,-300.6815"
/>
</g>
<!-- wcfsGC -->
<g
id=
"node7"
class=
"node"
>
<title>
wcfsGC
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"947.8112"
cy=
"-278.3503"
rx=
"35.2113"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"947.8112"
y=
"-282.1503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
GC
</text>
<text
text-anchor=
"middle"
x=
"947.8112"
y=
"-267.1503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
@rev/
</text>
</g>
<!-- wcfs->wcfsGC -->
<g
id=
"edge6"
class=
"edge"
>
<title>
wcfs
->
wcfsGC
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M947.8112,-349.9302C947.8112,-340.0272 947.8112,-327.395 947.8112,-315.5075"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"951.3113,-315.3399 947.8112,-305.3399 944.3113,-315.34 951.3113,-315.3399"
/>
</g>
<!-- client -->
<g
id=
"node3"
class=
"node"
>
<title>
client
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"12
33
.8112"
cy=
"-368.0904"
rx=
"30.5947"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"12
33
.8112"
y=
"-364.3904"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
client
</text>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"12
47
.8112"
cy=
"-368.0904"
rx=
"30.5947"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"12
47
.8112"
y=
"-364.3904"
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=
"M11
54.628,-368.0904C1170.7958,-368.0904 1186.9636,-368.0904 1203.1315
,-368.0904"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"11
54.5612,-364.5905 1144.5612,-368.0904 1154.5611,-371.5905 1154.5612
,-364.5905"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M11
93.8179,-368.0904C1201.6112,-368.0904 1209.4044,-368.0904 1217.1976
,-368.0904"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"11
93.5729,-364.5905 1183.5729,-368.0904 1193.5729,-371.5905 1193.5729
,-364.5905"
/>
</g>
<!-- client->wcfsRead -->
<g
id=
"edge2
2
"
class=
"edge"
>
<g
id=
"edge2
3
"
class=
"edge"
>
<title>
client
->
wcfsRead
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M12
13.4506,-354.6554C1191.3478,-340.0708 1155.7503,-316.5816 1129.8833,-299.5132
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"11
31.7919,-296.5793 1121.5176,-293.993 1127.9366,-302.422 1131.7919,-296.579
3"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M12
28.0917,-354.2652C1207.6058,-339.9027 1175.2476,-317.2165 1151.2335,-300.3803
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"11
52.9986,-297.3433 1142.8012,-294.4685 1148.9801,-303.075 1152.9986,-297.343
3"
/>
</g>
<!-- mappingRegister -->
<g
id=
"node1
7
"
class=
"node"
>
<g
id=
"node1
8
"
class=
"node"
>
<title>
mappingRegister
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1264.8112"
cy=
"-188.6102"
rx=
"65.1077"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"1264.8112"
y=
"-192.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
mmappings:
</text>
<text
text-anchor=
"middle"
x=
"1264.8112"
y=
"-177.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
register/maint
</text>
</g>
<!-- client->mappingRegister -->
<g
id=
"edge2
3
"
class=
"edge"
>
<g
id=
"edge2
4
"
class=
"edge"
>
<title>
client
->
mappingRegister
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M12
36.621,-349.886C1240.2019,-326.9188 1246.6665,-286.2213 1252.8112,-251.4802 1254.2972,-243.0787 1255.9712,-234.0613 1257.5869,-225.5533
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"126
1.0681,-225.9835 1259.5122,-215.5036 1254.1931,-224.6664 1261.0681,-225.9835
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M12
49.5348,-349.8932C1252.2816,-320.8932 1257.7076,-263.6077 1261.2976,-225.7051
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"126
4.7991,-225.8537 1262.2578,-215.5682 1257.8303,-225.1935 1264.7991,-225.8537
"
/>
</g>
<!-- clientInvHandle -->
<g
id=
"node2
2
"
class=
"node"
>
<g
id=
"node2
3
"
class=
"node"
>
<title>
clientInvHandle
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"13
42
.8112"
cy=
"-278.3503"
rx=
"80.7205"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"13
42
.8112"
y=
"-282.1503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
process
</text>
<text
text-anchor=
"middle"
x=
"13
42
.8112"
y=
"-267.1503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
#blk invalidations
</text>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"13
56
.8112"
cy=
"-278.3503"
rx=
"80.7205"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"13
56
.8112"
y=
"-282.1503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
process
</text>
<text
text-anchor=
"middle"
x=
"13
56
.8112"
y=
"-267.1503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
#blk invalidations
</text>
</g>
<!-- client->clientInvHandle -->
<g
id=
"edge2
4
"
class=
"edge"
>
<g
id=
"edge2
5
"
class=
"edge"
>
<title>
client
->
clientInvHandle
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M12
51.8103,-353.2716C1266.0729,-341.5292 1286.5081,-324.7049 1304
.4013,-309.9733"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"13
06.9168,-312.4359 1312.4124,-303.3777 1302.4676,-307.0317 1306
.9168,-312.4359"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M12
65.8103,-353.2716C1280.0729,-341.5292 1300.5081,-324.7049 1318
.4013,-309.9733"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"13
20.9168,-312.4359 1326.4124,-303.3777 1316.4676,-307.0317 1320
.9168,-312.4359"
/>
</g>
<!-- nowcfs -->
<g
id=
"node2
3
"
class=
"node"
>
<g
id=
"node2
4
"
class=
"node"
>
<title>
nowcfs
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1
493
.8112"
cy=
"-278.3503"
rx=
"52.7911"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"1
493
.8112"
y=
"-274.6503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
!wcfs mode
</text>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1
507
.8112"
cy=
"-278.3503"
rx=
"52.7911"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"1
507
.8112"
y=
"-274.6503"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
!wcfs mode
</text>
</g>
<!-- client->nowcfs -->
<g
id=
"edge2
5
"
class=
"edge"
>
<g
id=
"edge2
6
"
class=
"edge"
>
<title>
client
->
nowcfs
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M12
61.4952,-360.3797C1300.2362,-349.3561 1372.6328,-327.9035 1432.8112,-305.2203 1439.359,-302.7523 1446.217,-299.9509 1452
.8732,-297.1115"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"14
54.6473,-300.1567 1462.4215,-292.9586 1451.8553,-293.7376 1454
.6473,-300.1567"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M12
75.4952,-360.3797C1314.2362,-349.3561 1386.6328,-327.9035 1446.8112,-305.2203 1453.359,-302.7523 1460.217,-299.9509 1466
.8732,-297.1115"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"14
68.6473,-300.1567 1476.4215,-292.9586 1465.8553,-293.7376 1468
.6473,-300.1567"
/>
</g>
<!-- ZODB_go_inv -->
<g
id=
"node
7
"
class=
"node"
>
<g
id=
"node
8
"
class=
"node"
>
<title>
ZODB_go_inv
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"324.8112"
cy=
"-188.6102"
rx=
"60.623"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"324.8112"
y=
"-192.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
ZODB/go
</text>
<text
text-anchor=
"middle"
x=
"324.8112"
y=
"-177.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
invalidations
</text>
</g>
<!-- wcfsInvProcess->ZODB_go_inv -->
<g
id=
"edge
6
"
class=
"edge"
>
<g
id=
"edge
7
"
class=
"edge"
>
<title>
wcfsInvProcess
->
ZODB_go_inv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M723.6883,-259.5135C712.145,-256.5331 700.1713,-253.7055 688.8112,-251.4802 559.6238,-226.1743 522.5488,-247.306 394.8112,-215.4802 389.4429,-214.1427 383.9278,-212.5087 378.4625,-210.7136"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"379.3162,-207.3053 368.7214,-207.3375 377.0239,-213.9193 379.3162,-207.3053"
/>
</g>
<!-- zconnCacheGet -->
<g
id=
"node
8
"
class=
"node"
>
<g
id=
"node
9
"
class=
"node"
>
<title>
zconnCacheGet
</title>
<ellipse
fill=
"#f2f2f2"
stroke=
"#000000"
cx=
"474.8112"
cy=
"-188.6102"
rx=
"71.4873"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"474.8112"
y=
"-184.9102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
zconn.Cache.Get
</text>
</g>
<!-- wcfsInvProcess->zconnCacheGet -->
<g
id=
"edge
7
"
class=
"edge"
>
<g
id=
"edge
8
"
class=
"edge"
>
<title>
wcfsInvProcess
->
zconnCacheGet
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M721.2468,-260.277C710.406,-257.3355 699.2965,-254.3222 688.8112,-251.4802 629.7056,-235.4599 614.4515,-233.1278 555.8112,-215.4802 546.341,-212.6302 536.3025,-209.4397 526.6358,-206.2799"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"527.7211,-202.9524 517.128,-203.1441 525.5285,-209.6002 527.7211,-202.9524"
/>
</g>
<!-- zobj2file -->
<g
id=
"node
9
"
class=
"node"
>
<g
id=
"node
10
"
class=
"node"
>
<title>
zobj2file
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"634.8112"
cy=
"-188.6102"
rx=
"70.3881"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"634.8112"
y=
"-184.9102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
Z* → file/[]#blk
</text>
</g>
<!-- wcfsInvProcess->zobj2file -->
<g
id=
"edge
8
"
class=
"edge"
>
<g
id=
"edge
9
"
class=
"edge"
>
<title>
wcfsInvProcess
->
zobj2file
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M746.81,-254.3016C723.5232,-240.643 694.5977,-223.6771 671.9761,-210.4087"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"673.7252,-207.3771 663.3286,-205.3367 670.1836,-213.4151 673.7252,-207.3771"
/>
</g>
<!-- δFtail -->
<g
id=
"node1
0
"
class=
"node"
>
<g
id=
"node1
1
"
class=
"node"
>
<title>
δFtail
</title>
<ellipse
fill=
"#f2f2f2"
stroke=
"#000000"
cx=
"902.8112"
cy=
"-188.6102"
rx=
"31.6951"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"902.8112"
y=
"-184.9102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
δFtail
</text>
</g>
<!-- wcfsInvProcess->δFtail -->
<g
id=
"edge
9
"
class=
"edge"
>
<g
id=
"edge
10
"
class=
"edge"
>
<title>
wcfsInvProcess
->
δFtail
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M820.1511,-253.1138C837.6886,-239.4285 859.1158,-222.7078 875.7595,-209.7199"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"878.2507,-212.2155 883.9812,-203.3041 873.9443,-206.6969 878.2507,-212.2155"
/>
</g>
<!-- fuseRetrieveCache -->
<g
id=
"node1
1
"
class=
"node"
>
<g
id=
"node1
2
"
class=
"node"
>
<title>
fuseRetrieveCache
</title>
<ellipse
fill=
"#f2f2f2"
stroke=
"#000000"
cx=
"787.8112"
cy=
"-188.6102"
rx=
"65.1077"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"787.8112"
y=
"-192.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
FUSE:
</text>
<text
text-anchor=
"middle"
x=
"787.8112"
y=
"-177.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
retrieve cache
</text>
</g>
<!-- wcfsInvProcess->fuseRetrieveCache -->
<g
id=
"edge1
0
"
class=
"edge"
>
<g
id=
"edge1
1
"
class=
"edge"
>
<title>
wcfsInvProcess
->
fuseRetrieveCache
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M787.8112,-251.4253C787.8112,-243.3504 787.8112,-234.3471 787.8112,-225.7362"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"791.3113,-225.5161 787.8112,-215.5162 784.3113,-225.5162 791.3113,-225.5161"
/>
</g>
<!-- wcfsRead->δFtail -->
<g
id=
"edge1
6
"
class=
"edge"
>
<g
id=
"edge1
7
"
class=
"edge"
>
<title>
wcfsRead
->
δFtail
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M10
62.4077,-266.3553C1030.3717,-254.9534 982.3024,-236.4646 942.8112,-215.4802 938.9881,-213.4488 935.0761,-211.1406 931.2674,-208.7506
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"932.
9424,-205.664 922.6582,-203.1172 929.1096,-211.5214 932.9424,-205.664
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M10
81.3894,-267.7447C1044.7522,-256.9331 988.5406,-238.5028 942.8112,-215.4802 938.7505,-213.4359 934.6113,-211.0486 930.6099,-208.5562
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"932.
4387,-205.5701 922.1543,-203.0241 928.6062,-211.4278 932.4387,-205.5701
"
/>
</g>
<!-- blktabGet -->
<g
id=
"node1
6
"
class=
"node"
>
<g
id=
"node1
7
"
class=
"node"
>
<title>
blktabGet
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1066.8112"
cy=
"-188.6102"
rx=
"114.6026"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"1066.8112"
y=
"-192.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
blktab.Get(#blk):
</text>
<text
text-anchor=
"middle"
x=
"1066.8112"
y=
"-177.4102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
manually + → ⌈rev(#blk)⌉
</text>
</g>
<!-- wcfsRead->blktabGet -->
<g
id=
"edge1
5
"
class=
"edge"
>
<g
id=
"edge1
6
"
class=
"edge"
>
<title>
wcfsRead
->
blktabGet
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M1
091.5379,-260.19C1088.0824,-250.187 1083.665,-237.3994 1079.5225,-225.4074
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"10
82.7079,-223.9089 1076.1345,-215.5998 1076.0915,-226.1946 1082.7079,-223.9089
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M1
109.3401,-260.6205C1103.2227,-250.2624 1095.2798,-236.8135 1087.917,-224.3468
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"10
90.7917,-222.3316 1082.6927,-215.501 1084.7644,-225.8913 1090.7917,-222.3316
"
/>
</g>
<!-- wcfsRead->mappingRegister -->
<g
id=
"edge1
7
"
class=
"edge"
>
<g
id=
"edge1
8
"
class=
"edge"
>
<title>
wcfsRead
->
mappingRegister
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M11
25.3878,-263.5315C1149.9872,-250.3127 1186.5709,-230.6538 1216.0922,-214.7901
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"12
17.8541,-217.8167 1225.0061,-210.0001 1214.5406,-211.6506 1217.8541,-217.8167
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M11
44.7376,-262.9234C1165.3807,-250.1475 1195.2367,-231.6696 1220.0126,-216.3359
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"12
21.8796,-219.2966 1228.5409,-211.0578 1218.1957,-213.3443 1221.8796,-219.2966
"
/>
</g>
<!-- headInv -->
<g
id=
"node1
8
"
class=
"node"
>
<g
id=
"node1
9
"
class=
"node"
>
<title>
headInv
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"1420.8112"
cy=
"-188.6102"
rx=
"73.387"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"1420.8112"
y=
"-184.9102"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
#blk ← head/inv.
</text>
</g>
<!-- wcfsRead->headInv -->
<g
id=
"edge1
8
"
class=
"edge"
>
<g
id=
"edge1
9
"
class=
"edge"
>
<title>
wcfsRead
->
headInv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M11
38.103,-268.6434C1186.1291,-256.8881 1268.7014,-236.0908 1338.8112,-215.4802 1348.2972,-212.6916 1358.3423,-209.5548 1368.0277,-206.4349
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"136
9.1326,-209.756 1377.5592,-203.334 1366.9669,-203.0995 1369.1326,-209.756
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M11
58.3127,-267.7634C1202.1519,-255.6007 1275.8545,-234.8246 1338.8112,-215.4802 1348.0578,-212.6391 1357.8566,-209.5217 1367.3409,-206.4482
"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"136
8.6518,-209.7022 1377.0742,-203.2746 1366.4818,-203.047 1368.6518,-209.7022
"
/>
</g>
<!-- fs1_go_inv -->
<g
id=
"node1
2
"
class=
"node"
>
<g
id=
"node1
3
"
class=
"node"
>
<title>
fs1_go_inv
</title>
<ellipse
fill=
"#f2f2f2"
stroke=
"#000000"
cx=
"326.8112"
cy=
"-98.8701"
rx=
"60.623"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"326.8112"
y=
"-102.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
fs1/go
</text>
<text
text-anchor=
"middle"
x=
"326.8112"
y=
"-87.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
invalidations
</text>
</g>
<!-- ZODB_go_inv->fs1_go_inv -->
<g
id=
"edge1
1
"
class=
"edge"
>
<g
id=
"edge1
2
"
class=
"edge"
>
<title>
ZODB_go_inv
->
fs1_go_inv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M325.4112,-161.6852C325.5912,-153.6102 325.7919,-144.607 325.9838,-135.9961"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"329.4878,-135.8516 326.2115,-125.776 322.4895,-135.6955 329.4878,-135.8516"
/>
</g>
<!-- zeo_go_inv -->
<g
id=
"node1
3
"
class=
"node"
>
<g
id=
"node1
4
"
class=
"node"
>
<title>
zeo_go_inv
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"466.8112"
cy=
"-98.8701"
rx=
"60.623"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"466.8112"
y=
"-102.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
zeo/go
</text>
<text
text-anchor=
"middle"
x=
"466.8112"
y=
"-87.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
invalidations
</text>
</g>
<!-- ZODB_go_inv->zeo_go_inv -->
<g
id=
"edge1
2
"
class=
"edge"
>
<g
id=
"edge1
3
"
class=
"edge"
>
<title>
ZODB_go_inv
->
zeo_go_inv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M359.9123,-166.4272C379.0279,-154.3467 402.8549,-139.2887 423.1594,-126.4568"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"425.0381,-129.4099 431.6217,-121.1088 421.2985,-123.4925 425.0381,-129.4099"
/>
</g>
<!-- neo_go_inv -->
<g
id=
"node1
4
"
class=
"node"
>
<g
id=
"node1
5
"
class=
"node"
>
<title>
neo_go_inv
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"60.8112"
cy=
"-98.8701"
rx=
"60.623"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"60.8112"
y=
"-102.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
neo/go
</text>
<text
text-anchor=
"middle"
x=
"60.8112"
y=
"-87.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
invalidations
</text>
</g>
<!-- ZODB_go_inv->neo_go_inv -->
<g
id=
"edge1
3
"
class=
"edge"
>
<g
id=
"edge1
4
"
class=
"edge"
>
<title>
ZODB_go_inv
->
neo_go_inv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M274.7254,-173.1826C235.4057,-160.8778 179.3773,-142.9172 130.8112,-125.7401 126.025,-124.0473 121.0724,-122.2466 116.1154,-120.4103"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"117.2119,-117.0836 106.6195,-116.8539 114.7567,-123.6389 117.2119,-117.0836"
/>
</g>
<!-- zcache_go_inv -->
<g
id=
"node1
5
"
class=
"node"
>
<g
id=
"node1
6
"
class=
"node"
>
<title>
zcache_go_inv
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"193.8112"
cy=
"-98.8701"
rx=
"53.9813"
ry=
"26.7407"
/>
<text
text-anchor=
"middle"
x=
"193.8112"
y=
"-102.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
ZCache/go
</text>
<text
text-anchor=
"middle"
x=
"193.8112"
y=
"-87.6701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
<-
watchq
</text>
</g>
<!-- ZODB_go_inv->zcache_go_inv -->
<g
id=
"edge1
4
"
class=
"edge"
>
<g
id=
"edge1
5
"
class=
"edge"
>
<title>
ZODB_go_inv
->
zcache_go_inv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M291.7544,-165.965C274.1388,-153.8976 252.3349,-138.9611 233.7745,-126.2465"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"235.7297,-123.3434 225.5017,-120.5793 231.7736,-129.1183 235.7297,-123.3434"
/>
</g>
<!-- zblk2file -->
<g
id=
"node
19
"
class=
"node"
>
<g
id=
"node
20
"
class=
"node"
>
<title>
zblk2file
</title>
<ellipse
fill=
"
none
"
stroke=
"#000000"
cx=
"632.8112"
cy=
"-98.8701"
rx=
"83.3857"
ry=
"18"
/>
<ellipse
fill=
"
#f2f2f2
"
stroke=
"#000000"
cx=
"632.8112"
cy=
"-98.8701"
rx=
"83.3857"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"632.8112"
y=
"-95.1701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
ZBlk* → file/[]#blk
</text>
</g>
<!-- zobj2file->zblk2file -->
<g
id=
"edge
19
"
class=
"edge"
>
<g
id=
"edge
20
"
class=
"edge"
>
<title>
zobj2file
->
zblk2file
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M634.4065,-170.4499C634.1299,-158.043 633.758,-141.3523 633.4428,-127.209"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"636.9373,-126.9228 633.2153,-117.0033 629.9391,-127.0788 636.9373,-126.9228"
/>
</g>
<!-- zbtree2file -->
<g
id=
"node2
0
"
class=
"node"
>
<g
id=
"node2
1
"
class=
"node"
>
<title>
zbtree2file
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"843.8112"
cy=
"-98.8701"
rx=
"109.6807"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"843.8112"
y=
"-95.1701"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
BTree/Bucket → file/[]#blk
</text>
</g>
<!-- zobj2file->zbtree2file -->
<g
id=
"edge2
0
"
class=
"edge"
>
<g
id=
"edge2
1
"
class=
"edge"
>
<title>
zobj2file
->
zbtree2file
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M671.2162,-172.9786C705.6095,-158.2109 757.4333,-135.9589 795.3179,-119.692"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"796.8224,-122.8551 804.6302,-115.6935 794.0605,-116.423 796.8224,-122.8551"
/>
</g>
<!-- δBTree -->
<g
id=
"node2
1
"
class=
"node"
>
<g
id=
"node2
2
"
class=
"node"
>
<title>
δBTree
</title>
<ellipse
fill=
"none"
stroke=
"#000000"
cx=
"843.8112"
cy=
"-18"
rx=
"43.5923"
ry=
"18"
/>
<text
text-anchor=
"middle"
x=
"843.8112"
y=
"-14.3"
font-family=
"Times,serif"
font-size=
"14.00"
fill=
"#000000"
>
δ(BTree)
</text>
</g>
<!-- zbtree2file->δBTree -->
<g
id=
"edge2
1
"
class=
"edge"
>
<g
id=
"edge2
2
"
class=
"edge"
>
<title>
zbtree2file
->
δBTree
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M843.8112,-80.5194C843.8112,-70.4898 843.8112,-57.8453 843.8112,-46.5565"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"847.3113,-46.278 843.8112,-36.278 840.3113,-46.2781 847.3113,-46.278"
/>
</g>
<!-- clientInvHandle->headInv -->
<g
id=
"edge2
6
"
class=
"edge"
>
<g
id=
"edge2
7
"
class=
"edge"
>
<title>
clientInvHandle
->
headInv
</title>
<path
fill=
"none"
stroke=
"#000000"
d=
"M13
65.372,-252.3937C1375.8272,-240.3648 1388.2118,-226.1162 1398.6208,-214.140
5"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"140
1.5449,-216.1116 1405.4634,-206.268 1396.2617,-211.5194 1401.5449,-216.1116
"
/>
<path
fill=
"none"
stroke=
"#000000"
d=
"M13
75.6671,-251.9107C1384.0117,-240.21 1393.7996,-226.4855 1402.1245,-214.812
5"
/>
<polygon
fill=
"#000000"
stroke=
"#000000"
points=
"140
5.2005,-216.5272 1408.1573,-206.3533 1399.5013,-212.4627 1405.2005,-216.5272
"
/>
</g>
</g>
</svg>
wcfs/wcfs.go
View file @
19738029
...
...
@@ -365,6 +365,7 @@ package main
// "old" client that triggered the pagefault(~).
//
// XXX 8) serving read from @<rev>/data + zconn(s) for historical state
// XXX 9) gc @rev/ and @rev/bigfile/<bigfileX> automatically on atime timeout
//
//
// (*) see notes.txt -> "Notes on OS pagecache control"
...
...
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