。。。
This commit is contained in:
parent
47053d35da
commit
3af49699a4
@ -493,5 +493,478 @@
|
|||||||
:height 1900.8}),
|
:height 1900.8}),
|
||||||
:page 5},
|
:page 5},
|
||||||
:content {:text "3.1 HOP"},
|
:content {:text "3.1 HOP"},
|
||||||
:properties {:color "yellow"}}],
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64533b91-7e2b-448b-bb4f-807cc7cb5a77",
|
||||||
|
:page 5,
|
||||||
|
:position {:bounding {:x1 0,
|
||||||
|
:y1 625.848274230957,
|
||||||
|
:x2 1041.702880859375,
|
||||||
|
:y2 1331.830451965332,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 761.5968017578125,
|
||||||
|
:y1 625.848274230957,
|
||||||
|
:x2 1041.702880859375,
|
||||||
|
:y2 650.4196853637695,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 592.7053985595703,
|
||||||
|
:y1 648.160774230957,
|
||||||
|
:x2 779.3180541992188,
|
||||||
|
:y2 672.7321853637695,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 0,
|
||||||
|
:y1 1307.2590408325195,
|
||||||
|
:x2 0,
|
||||||
|
:y2 1331.830451965332,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 5},
|
||||||
|
:content {:text "first perform all reads and invisible writes outside the RTM"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64533cf1-c232-4630-8cf9-88cf4dbfe0c2",
|
||||||
|
:page 5,
|
||||||
|
:position {:bounding {:x1 666.8732299804688,
|
||||||
|
:y1 759.7500305175781,
|
||||||
|
:x2 788.893310546875,
|
||||||
|
:y2 784.3214416503906,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 666.8732299804688,
|
||||||
|
:y1 759.7500305175781,
|
||||||
|
:x2 788.893310546875,
|
||||||
|
:y2 784.3214416503906,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 5},
|
||||||
|
:content {:text "sequence count"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534050-8459-4719-866e-612b76560e00",
|
||||||
|
:page 6,
|
||||||
|
:position {:bounding {:x1 100.79464721679688,
|
||||||
|
:y1 1121.4465026855469,
|
||||||
|
:x2 299.19744873046875,
|
||||||
|
:y2 1150.58935546875,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 100.79464721679688,
|
||||||
|
:y1 1121.4465026855469,
|
||||||
|
:x2 299.19744873046875,
|
||||||
|
:y2 1150.58935546875,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 128.6875,
|
||||||
|
:y1 1124.8750610351562,
|
||||||
|
:x2 151.02301025390625,
|
||||||
|
:y2 1147.1875610351562,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 6},
|
||||||
|
:content {:text "3.2 File Operations"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "6453427e-ce5a-4746-960b-45f9546e8b37",
|
||||||
|
:page 5,
|
||||||
|
:position {:bounding {:x1 593.3750305175781,
|
||||||
|
:y1 1169.4732666015625,
|
||||||
|
:x2 897.7872924804688,
|
||||||
|
:y2 1194.044677734375,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 593.3750305175781,
|
||||||
|
:y1 1169.4732666015625,
|
||||||
|
:x2 897.7872924804688,
|
||||||
|
:y2 1194.044677734375,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 5},
|
||||||
|
:content {:text "Discussion of concurrency correctness."},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534bc6-4bde-47c6-9fa2-3a085ff59c66",
|
||||||
|
:page 6,
|
||||||
|
:position {:bounding {:x1 100.79464721679688,
|
||||||
|
:y1 1159.5893249511719,
|
||||||
|
:x2 240.79701232910156,
|
||||||
|
:y2 1184.1607666015625,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 100.79464721679688,
|
||||||
|
:y1 1159.5893249511719,
|
||||||
|
:x2 240.79701232910156,
|
||||||
|
:y2 1184.1607666015625,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 137.99107360839844,
|
||||||
|
:y1 1163.0178985595703,
|
||||||
|
:x2 156.61558532714844,
|
||||||
|
:y2 1181.6161193847656,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 6},
|
||||||
|
:content {:text "3.2.1 Data Read"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534cee-e35f-4e07-a79d-9185e36b57a2",
|
||||||
|
:page 6,
|
||||||
|
:position {:bounding {:x1 593.3750381469727,
|
||||||
|
:y1 600.6696472167969,
|
||||||
|
:x2 738.5257873535156,
|
||||||
|
:y2 625.2410888671875,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 593.3750381469727,
|
||||||
|
:y1 600.6696472167969,
|
||||||
|
:x2 738.5257873535156,
|
||||||
|
:y2 625.2410888671875,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 630.5625457763672,
|
||||||
|
:y1 604.0982208251953,
|
||||||
|
:x2 649.1870574951172,
|
||||||
|
:y2 622.6964416503906,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 6},
|
||||||
|
:content {:text "3.2.2 Data Write"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534d02-3d6b-4dd4-8d3f-e86767190f08",
|
||||||
|
:page 7,
|
||||||
|
:position {:bounding {:x1 100.79464721679688,
|
||||||
|
:y1 430.9553985595703,
|
||||||
|
:x2 238.2342071533203,
|
||||||
|
:y2 455.5268096923828,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 100.79464721679688,
|
||||||
|
:y1 430.9553985595703,
|
||||||
|
:x2 238.2342071533203,
|
||||||
|
:y2 455.5268096923828,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 137.99107360839844,
|
||||||
|
:y1 434.38392639160156,
|
||||||
|
:x2 156.61558532714844,
|
||||||
|
:y2 452.9821319580078,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 7},
|
||||||
|
:content {:text "3.2.3 Allocation"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534d0c-9fe2-4817-b510-5d2da7d55dbf",
|
||||||
|
:page 7,
|
||||||
|
:position {:bounding {:x1 100.79464721679688,
|
||||||
|
:y1 898.3750305175781,
|
||||||
|
:x2 354.5528564453125,
|
||||||
|
:y2 927.5179138183594,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 100.79464721679688,
|
||||||
|
:y1 898.3750305175781,
|
||||||
|
:x2 354.5528564453125,
|
||||||
|
:y2 927.5179138183594,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 128.6875,
|
||||||
|
:y1 901.8036193847656,
|
||||||
|
:x2 151.02301025390625,
|
||||||
|
:y2 924.1161193847656,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 7},
|
||||||
|
:content {:text "3.3 Directory Operations"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534d0f-1882-4633-9cd4-fce9d411aeb9",
|
||||||
|
:page 7,
|
||||||
|
:position {:bounding {:x1 100.79464721679688,
|
||||||
|
:y1 936.0982666015625,
|
||||||
|
:x2 240.4675750732422,
|
||||||
|
:y2 960.669677734375,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 100.79464721679688,
|
||||||
|
:y1 936.0982666015625,
|
||||||
|
:x2 240.4675750732422,
|
||||||
|
:y2 960.669677734375,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 137.99107360839844,
|
||||||
|
:y1 939.52685546875,
|
||||||
|
:x2 156.61558532714844,
|
||||||
|
:y2 958.1250610351562,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 7},
|
||||||
|
:content {:text "3.3.1 Path Walk"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534d19-b941-4c04-a084-2d8a09d00883",
|
||||||
|
:page 7,
|
||||||
|
:position {:bounding {:x1 593.3750381469727,
|
||||||
|
:y1 465.1161117553711,
|
||||||
|
:x2 795.0186767578125,
|
||||||
|
:y2 489.6875228881836,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 593.3750381469727,
|
||||||
|
:y1 465.1161117553711,
|
||||||
|
:x2 795.0186767578125,
|
||||||
|
:y2 489.6875228881836,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 630.5625457763672,
|
||||||
|
:y1 468.54463958740234,
|
||||||
|
:x2 649.1870574951172,
|
||||||
|
:y2 487.14290618896484,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 7},
|
||||||
|
:content {:text "3.3.2 Directory Updates"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534d23-1327-40ef-b58e-7c5a01559552",
|
||||||
|
:page 8,
|
||||||
|
:position {:bounding {:x1 100.79464721679688,
|
||||||
|
:y1 504.79463958740234,
|
||||||
|
:x2 310.562255859375,
|
||||||
|
:y2 533.9375228881836,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 100.79464721679688,
|
||||||
|
:y1 504.79463958740234,
|
||||||
|
:x2 310.562255859375,
|
||||||
|
:y2 533.9375228881836,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 128.6875,
|
||||||
|
:y1 508.22322845458984,
|
||||||
|
:x2 151.02301025390625,
|
||||||
|
:y2 530.5357284545898,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 8},
|
||||||
|
:content {:text "3.4 Other File Types"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534d33-2bfe-4817-a5bd-0cc3534584d7",
|
||||||
|
:page 8,
|
||||||
|
:position {:bounding {:x1 100.79464721679688,
|
||||||
|
:y1 640.2678833007812,
|
||||||
|
:x2 309.95745849609375,
|
||||||
|
:y2 669.4107360839844,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 100.79464721679688,
|
||||||
|
:y1 640.2678833007812,
|
||||||
|
:x2 309.95745849609375,
|
||||||
|
:y2 669.4107360839844,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 128.6875,
|
||||||
|
:y1 643.6964416503906,
|
||||||
|
:x2 151.02301025390625,
|
||||||
|
:y2 666.0089416503906,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 8},
|
||||||
|
:content {:text "3.5 The Timestamps"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534d37-b14f-4943-92c0-7bb4823fbd50",
|
||||||
|
:page 8,
|
||||||
|
:position {:bounding {:x1 100.79464721679688,
|
||||||
|
:y1 1088.96435546875,
|
||||||
|
:x2 404.5784912109375,
|
||||||
|
:y2 1118.107177734375,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 100.79464721679688,
|
||||||
|
:y1 1088.96435546875,
|
||||||
|
:x2 404.5784912109375,
|
||||||
|
:y2 1118.107177734375,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 128.6875,
|
||||||
|
:y1 1092.3929443359375,
|
||||||
|
:x2 151.02301025390625,
|
||||||
|
:y2 1114.7054443359375,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 8},
|
||||||
|
:content {:text "3.6 The Special Case: Rename"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64534d45-e498-427d-b4ef-74eaf56f7aae",
|
||||||
|
:page 9,
|
||||||
|
:position {:bounding {:x1 100.79464721679688,
|
||||||
|
:y1 498.08929443359375,
|
||||||
|
:x2 286.7929382324219,
|
||||||
|
:y2 527.232177734375,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 100.79464721679688,
|
||||||
|
:y1 498.08929443359375,
|
||||||
|
:x2 286.7929382324219,
|
||||||
|
:y2 527.232177734375,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 111.95536041259766,
|
||||||
|
:y1 501.51788330078125,
|
||||||
|
:x2 134.29086303710938,
|
||||||
|
:y2 523.8303833007812,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 9},
|
||||||
|
:content {:text "4 Implementation"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "645357b1-b9ab-456c-87b3-c1047ec5ce59",
|
||||||
|
:page 6,
|
||||||
|
:position {:bounding {:x1 0,
|
||||||
|
:y1 811.6785888671875,
|
||||||
|
:x2 1041.711669921875,
|
||||||
|
:y2 1414.8214721679688,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 947.4280700683594,
|
||||||
|
:y1 811.6785888671875,
|
||||||
|
:x2 1041.711669921875,
|
||||||
|
:y2 836.2500305175781,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 593.3750381469727,
|
||||||
|
:y1 834.0000305175781,
|
||||||
|
:x2 1041.6945877075195,
|
||||||
|
:y2 858.5714416503906,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 593.3750381469727,
|
||||||
|
:y1 837.4285888671875,
|
||||||
|
:x2 1041.6945877075195,
|
||||||
|
:y2 856.0268249511719,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 593.3750381469727,
|
||||||
|
:y1 856.3125305175781,
|
||||||
|
:x2 730.7262649536133,
|
||||||
|
:y2 880.8839416503906,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 0,
|
||||||
|
:y1 1373.65185546875,
|
||||||
|
:x2 0,
|
||||||
|
:y2 1398.2232666015625,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 0,
|
||||||
|
:y1 1390.2500610351562,
|
||||||
|
:x2 0,
|
||||||
|
:y2 1414.8214721679688,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 6},
|
||||||
|
:content {:text "convert data updates to metadata updates that can be embedded in the RTM transactions."},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64535855-08bc-484d-951e-6cf191d5729f",
|
||||||
|
:page 6,
|
||||||
|
:position {:bounding {:x1 611.9732513427734,
|
||||||
|
:y1 879.3661346435547,
|
||||||
|
:x2 708.9877014160156,
|
||||||
|
:y2 903.9375610351562,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 611.9732513427734,
|
||||||
|
:y1 879.3661346435547,
|
||||||
|
:x2 708.9877014160156,
|
||||||
|
:y2 903.9375610351562,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 6},
|
||||||
|
:content {:text "Small writes, "},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64535ce3-9927-4e22-b2ed-9c396c3b43f2",
|
||||||
|
:page 6,
|
||||||
|
:position {:bounding {:x1 0,
|
||||||
|
:y1 1214.1072082519531,
|
||||||
|
:x2 1041.6976928710938,
|
||||||
|
:y2 1696.9911499023438,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 802.2041625976562,
|
||||||
|
:y1 1214.1072082519531,
|
||||||
|
:x2 1041.6976928710938,
|
||||||
|
:y2 1238.6786499023438,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 593.3750381469727,
|
||||||
|
:y1 1236.4197082519531,
|
||||||
|
:x2 748.9095840454102,
|
||||||
|
:y2 1260.9911499023438,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 0,
|
||||||
|
:y1 1672.4197387695312,
|
||||||
|
:x2 0,
|
||||||
|
:y2 1696.9911499023438,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 6},
|
||||||
|
:content {:text "But the blocks may have leaked after a system crash. "},
|
||||||
|
:properties {:color "red"}}
|
||||||
|
{:id #uuid "64535d27-c876-4481-856e-8962e5ba9b16",
|
||||||
|
:page 7,
|
||||||
|
:position {:bounding {:x1 257.77557373046875,
|
||||||
|
:y1 485.0536003112793,
|
||||||
|
:x2 436.4731140136719,
|
||||||
|
:y2 509.6250114440918,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 257.77557373046875,
|
||||||
|
:y1 485.0536003112793,
|
||||||
|
:x2 436.4731140136719,
|
||||||
|
:y2 509.6250114440918,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 7},
|
||||||
|
:content {:text " temporal allocating list"},
|
||||||
|
:properties {:color "yellow"}}
|
||||||
|
{:id #uuid "64535f97-b733-4522-a2d1-dbfc8837799e",
|
||||||
|
:page 7,
|
||||||
|
:position {:bounding {:x1 0,
|
||||||
|
:y1 327.9643020629883,
|
||||||
|
:x2 549.4309692382812,
|
||||||
|
:y2 733.5357360839844,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999},
|
||||||
|
:rects ({:x1 0,
|
||||||
|
:y1 327.9643020629883,
|
||||||
|
:x2 0,
|
||||||
|
:y2 352.5357322692871,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 0,
|
||||||
|
:y1 344.5625171661377,
|
||||||
|
:x2 0,
|
||||||
|
:y2 369.1339473724365,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 338.12518310546875,
|
||||||
|
:y1 664.3303833007812,
|
||||||
|
:x2 549.4309692382812,
|
||||||
|
:y2 688.9018249511719,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 100.79464721679688,
|
||||||
|
:y1 686.6518249511719,
|
||||||
|
:x2 549.1180419921875,
|
||||||
|
:y2 711.2232360839844,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 100.79464721679688,
|
||||||
|
:y1 690.0803833007812,
|
||||||
|
:x2 549.1180419921875,
|
||||||
|
:y2 708.6786193847656,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}
|
||||||
|
{:x1 100.79464721679688,
|
||||||
|
:y1 708.9643249511719,
|
||||||
|
:x2 408.1436767578125,
|
||||||
|
:y2 733.5357360839844,
|
||||||
|
:width 1142.3999999999999,
|
||||||
|
:height 1478.3999999999999}),
|
||||||
|
:page 7},
|
||||||
|
:content {:text "the file system crashes after a reference to a block of data has been removed (when this block of memory has not yet been freed)"},
|
||||||
|
:properties {:color "red"}}],
|
||||||
:extra {:page 7}}
|
:extra {:page 7}}
|
||||||
|
|||||||
3
journals/2023_05_04.md
Normal file
3
journals/2023_05_04.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
- TODO Paper1-HTMFS Implementation 看完
|
||||||
|
- TODO 模式识别作业提交
|
||||||
|
- TODO 写一会编译器
|
||||||
@ -317,13 +317,14 @@ mark {
|
|||||||
font-size: inherit;
|
font-size: inherit;
|
||||||
text-decoration-style: solid;
|
text-decoration-style: solid;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
text-decoration-color: var(--ls-primary-background-color);
|
text-decoration-color: rgba(255,198,0,0.7);
|
||||||
text-decoration-thickness: 4px;
|
text-decoration-thickness: 4px;
|
||||||
text-underline-offset: -1px;
|
text-underline-offset: -1px;
|
||||||
text-decoration-skip-ink: none;
|
text-decoration-skip-ink: none;
|
||||||
}
|
}
|
||||||
|
html[data-theme="dark"] mark {
|
||||||
|
text-decoration-color: rgba(255,198,0,0.7);
|
||||||
|
}
|
||||||
/* fix color page-reference when mark text */
|
/* fix color page-reference when mark text */
|
||||||
mark .page-ref,
|
mark .page-ref,
|
||||||
mark .page-reference .bracket {
|
mark .page-reference .bracket {
|
||||||
File diff suppressed because it is too large
Load Diff
@ -113,8 +113,8 @@ html[data-theme="light"],
|
|||||||
/* {{ 1.2. Layout corrections */
|
/* {{ 1.2. Layout corrections */
|
||||||
/* Helps to not overlap content with tabs plugin */
|
/* Helps to not overlap content with tabs plugin */
|
||||||
#main-content-container {
|
#main-content-container {
|
||||||
margin-top: 1.9em;
|
margin-top: 1.0em;
|
||||||
padding-top: 1.9em !important;
|
padding-top: 1.0em !important;
|
||||||
}
|
}
|
||||||
/* Add some white space to the right.
|
/* Add some white space to the right.
|
||||||
(This is because the actual start of the content on the left side is offset if we include the bullets and spacing.) */
|
(This is because the actual start of the content on the left side is offset if we include the bullets and spacing.) */
|
||||||
@ -353,7 +353,7 @@ html[data-theme="light"] .search-results-wrap a .rounded.border {
|
|||||||
padding: 0.3em 0;
|
padding: 0.3em 0;
|
||||||
}
|
}
|
||||||
.ls-block[level="1"] {
|
.ls-block[level="1"] {
|
||||||
padding-top: 0.6em;
|
padding-top: 0.3em;
|
||||||
}
|
}
|
||||||
.block-children {
|
.block-children {
|
||||||
padding: 0.16em 0;
|
padding: 0.16em 0;
|
||||||
@ -655,8 +655,8 @@ html[data-theme="light"] .cm-s-solarized.cm-s-dark .CodeMirror-gutters {
|
|||||||
/* { == 4. Plugin specific ==> */
|
/* { == 4. Plugin specific ==> */
|
||||||
/* {{ 4.1. Tabs Plugin */
|
/* {{ 4.1. Tabs Plugin */
|
||||||
#main-content-container {
|
#main-content-container {
|
||||||
margin-top: 1.9em;
|
margin-top: 1.0em;
|
||||||
padding-top: 1.9em !important;
|
padding-top: 1.0em !important;
|
||||||
}
|
}
|
||||||
html[data-theme="dark"] #logseq-tabs_lsp_main {
|
html[data-theme="dark"] #logseq-tabs_lsp_main {
|
||||||
filter: sepia(0) saturate(0.8) opacity(0.85) hue-rotate(360deg) grayscale(0.05) brightness(0.85) invert(0.04);
|
filter: sepia(0) saturate(0.8) opacity(0.85) hue-rotate(360deg) grayscale(0.05) brightness(0.85) invert(0.04);
|
||||||
|
|||||||
@ -124,4 +124,117 @@ file-path:: ../assets/HTMFS_Strong_Consistency_Comes_for_Free_with_1682647018871
|
|||||||
- 非常自然的想法:把一个操作,或者说trx,拆成小的
|
- 非常自然的想法:把一个操作,或者说trx,拆成小的
|
||||||
- 三种操作分类:
|
- 三种操作分类:
|
||||||
- Read、Invisible write(内部的东西,比如块分配信息) 、Visible write(应用程序可见的)
|
- Read、Invisible write(内部的东西,比如块分配信息) 、Visible write(应用程序可见的)
|
||||||
- 只有 Visible Write 用 HTM 实现,Invisible 和 Read 通过别的机制来实现
|
- 只有 Visible Write 用 HTM 实现,Invisible 和 Read 通过别的机制来实现
|
||||||
|
- (对于一整个FS操作)首先在 RTM 外面完成所需的 read 和 invisible,然后用 RTM 完成 visible,保证它们是 atomic 的。
|
||||||
|
hl-page:: 5
|
||||||
|
ls-type:: annotation
|
||||||
|
id:: 64533b91-7e2b-448b-bb4f-807cc7cb5a77
|
||||||
|
hl-color:: yellow
|
||||||
|
- RTM外面的部分不保证并发安全,用 sequence count 来解决这个问题。
|
||||||
|
hl-page:: 5
|
||||||
|
ls-type:: annotation
|
||||||
|
id:: 64533cf1-c232-4630-8cf9-88cf4dbfe0c2
|
||||||
|
hl-color:: yellow
|
||||||
|
- 这东西的原型是 Linux 里面的 `seqlock` 。基本原理可以看这个。 [SeqLock中文博客](http://www.wowotech.net/kernel_synchronization/seqlock.html)。 然后这里的机制大概就是把 writer lock 给换成了 RTM,虽然细节上不是很一样
|
||||||
|
- 在读之前(RTM外)先记录 seqcount,然后进入 RTM 之后进行验证,需要保证在 RTM commit 之前这些 seqcount 都没变。如果有变化,就需要重新回到 RTM 外面的某一点重新读取
|
||||||
|
- 当然如果是 accidental abort,那么只需要重新执行RTM就可以了(就算前面读的数据炸了,反正还是要验证一次的)
|
||||||
|
- 不过有个问题它没说,就是 invisible write,它没有RTM保证不会写冲突啊?不过也有可能,它会保证 invisible 不涉及临界区??
|
||||||
|
- Discussion of concurrency correctness.
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 5
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 6453427e-ce5a-4746-960b-45f9546e8b37
|
||||||
|
- Read-Read显然不冲突
|
||||||
|
- Write-Write 他说potential conflicting write 会被RTM保护起来,不过有可能会live lock掉
|
||||||
|
- Write-Read 也就是如果在RTM里面写入并且commit之前读取,会导致RTM abort
|
||||||
|
- Read-Write 的情况就比较复杂了。作者给了个图,考虑了 T1 读,同时有T2写的例子
|
||||||
|
- T2 在 T1 验证之前写:Valid fail 然后重新读。不过其实是有一个 overlap 的,图里面的第三个B点应该也会 RTM-abort
|
||||||
|
- T2 在 T1 验证之后、RTM commit 之前写:因为读取的数据在 RTM 的 read-set 里面,所有还是会 RTM abort
|
||||||
|
- 3.2 File Operations
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 6
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534050-8459-4719-866e-612b76560e00
|
||||||
|
- 其实看 Figure 3 就行了
|
||||||
|
- 3.2.1 Data Read
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 6
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534bc6-4bde-47c6-9fa2-3a085ff59c66
|
||||||
|
- 前面也写了,用 seqcnt 机制来保证读一致性。众所周知,每个文件的inode里面都有block指针,这里给每个指针都配上了一个seqno,读的时候就用这些个东西
|
||||||
|
- 3.2.2 Data Write
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 6
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534cee-e35f-4e07-a79d-9185e36b57a2
|
||||||
|
- convert data updates to metadata updates that can be embedded in the RTM transactions.
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 6
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 645357b1-b9ab-456c-87b3-c1047ec5ce59
|
||||||
|
- small writes,直接塞进RTM
|
||||||
|
hl-page:: 6
|
||||||
|
ls-type:: annotation
|
||||||
|
id:: 64535855-08bc-484d-951e-6cf191d5729f
|
||||||
|
hl-color:: yellow
|
||||||
|
- 大量写入,先把数据写入PM,然后再更新元数据。这时候用的就是block指针了。具体:空间分配是用的DRAM数据;(存疑?然后 shadow page 写文件数据);最后 RTM 修改 FS 元数据,allocation 的修改这个时候才会被持久化。如果 trx 提交之前炸了,顶多就是写了点垃圾数据到空白位置罢了。
|
||||||
|
- But the blocks may have leaked after a system crash. 没看懂,为啥会leak啊?你的 alloc 数据又没落盘。
|
||||||
|
hl-stamp:: 1683184901505
|
||||||
|
hl-page:: 6
|
||||||
|
ls-type:: annotation
|
||||||
|
id:: 64535ce3-9927-4e22-b2ed-9c396c3b43f2
|
||||||
|
hl-color:: red
|
||||||
|
- 不过看上去,它们这边是认为分配一个块是个双向的过程,不仅会在总的freelist里面有记录,block 里面也有一个记录表明它的分配情况?
|
||||||
|
- 3.2.3 Allocation
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 7
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534d02-3d6b-4dd4-8d3f-e86767190f08
|
||||||
|
- 首先把已经分配的块放进一个 temporal allocating list 里面 (大概会在 alloc 阶段持久化?),如果commit成功就不管它,如果出事了就把这个里面的块还回去
|
||||||
|
hl-page:: 7
|
||||||
|
ls-type:: annotation
|
||||||
|
id:: 64535d27-c876-4481-856e-8962e5ba9b16
|
||||||
|
hl-color:: yellow
|
||||||
|
- 在释放块的时候,也会存在中途 crash 的问题。一般是先删掉reference 然后再释放块,如果没释放完,那这个块就leak了。还是有和前面类似的疑问,这东西不是 引用一删就已经整完了吗?
|
||||||
|
- the file system crashes after a reference to a block of data has been removed (when this block of memory has not yet been freed)
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 7
|
||||||
|
hl-color:: red
|
||||||
|
id:: 64535f97-b733-4522-a2d1-dbfc8837799e
|
||||||
|
hl-stamp:: 1683185566331
|
||||||
|
- 3.3 Directory Operations
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 7
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534d0c-9fe2-4817-b510-5d2da7d55dbf
|
||||||
|
- 3.3.1 Path Walk
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 7
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534d0f-1882-4633-9cd4-fce9d411aeb9
|
||||||
|
- 3.3.2 Directory Updates
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 7
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534d19-b941-4c04-a084-2d8a09d00883
|
||||||
|
- 3.4 Other File Types
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 8
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534d23-1327-40ef-b58e-7c5a01559552
|
||||||
|
- 就写了一个 symlink,但是这玩意就是其他操作的组合罢了,没啥特别的东西
|
||||||
|
- 3.5 The Timestamps
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 8
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534d33-2bfe-4817-a5bd-0cc3534584d7
|
||||||
|
- 3.6 The Special Case: Rename
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 8
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534d37-b14f-4943-92c0-7bb4823fbd50
|
||||||
|
- 4 Implementation
|
||||||
|
ls-type:: annotation
|
||||||
|
hl-page:: 9
|
||||||
|
hl-color:: yellow
|
||||||
|
id:: 64534d45-e498-427d-b4ef-74eaf56f7aae
|
||||||
Loading…
Reference in New Issue
Block a user