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
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Joshua
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
Show 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