360 lines
23 KiB
XML
360 lines
23 KiB
XML
|
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
|
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||
|
|
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||
|
|
<!-- Generated by graphviz version 12.2.1 (0)
|
||
|
|
-->
|
||
|
|
<!-- Title: StorageWorkflow Pages: 1 -->
|
||
|
|
<svg width="2196pt" height="573pt"
|
||
|
|
viewBox="0.00 0.00 2195.75 573.00" xmlns="http://www.w3.org/2000/svg">
|
||
|
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 569)">
|
||
|
|
<title>StorageWorkflow</title>
|
||
|
|
<polygon fill="white" stroke="none" points="-4,4 -4,-569 2191.75,-569 2191.75,4 -4,4"/>
|
||
|
|
<g id="clust1" class="cluster">
|
||
|
|
<title>cluster_inputs</title>
|
||
|
|
<polygon fill="white" stroke="#888888" stroke-dasharray="5,2"
|
||
|
|
points="23.5,-254 23.5,-557 211.75,-557 211.75,-254 23.5,-254"/>
|
||
|
|
<text text-anchor="middle" x="117.62" y="-539.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#555555">Inputs
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust2" class="cluster">
|
||
|
|
<title>cluster_setup</title>
|
||
|
|
<polygon fill="white" stroke="#9c27b0" stroke-dasharray="5,2"
|
||
|
|
points="8,-65 8,-246 524.75,-246 524.75,-65 8,-65"/>
|
||
|
|
<text text-anchor="middle" x="266.38" y="-228.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#7b1fa2">Setup  (open backend, declare relations)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust3" class="cluster">
|
||
|
|
<title>cluster_write</title>
|
||
|
|
<polygon fill="white" stroke="#4caf50" stroke-dasharray="5,2"
|
||
|
|
points="563.75,-323 563.75,-532 1882.5,-532 1882.5,-323 563.75,-323"/>
|
||
|
|
<text text-anchor="middle" x="1223.12" y="-514.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#388e3c">Write  (atomic batch via Transaction)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust4" class="cluster">
|
||
|
|
<title>cluster_read</title>
|
||
|
|
<polygon fill="white" stroke="#ff9800" stroke-dasharray="5,2"
|
||
|
|
points="1568.25,-8 1568.25,-315 1841.75,-315 1841.75,-8 1568.25,-8"/>
|
||
|
|
<text text-anchor="middle" x="1705" y="-297.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#f57c00">Read
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<g id="clust5" class="cluster">
|
||
|
|
<title>cluster_output</title>
|
||
|
|
<polygon fill="white" stroke="#888888" stroke-dasharray="5,2"
|
||
|
|
points="1965.25,-117 1965.25,-306 2179.75,-306 2179.75,-117 1965.25,-117"/>
|
||
|
|
<text text-anchor="middle" x="2072.5" y="-288.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00"
|
||
|
|
fill="#555555">Output
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- schema -->
|
||
|
|
<g id="node1" class="node">
|
||
|
|
<title>schema</title>
|
||
|
|
<path fill="#e8f4fd" stroke="#2196f3" stroke-width="1.5"
|
||
|
|
d="M181.75,-366.12C181.75,-366.12 53.5,-366.12 53.5,-366.12 47.5,-366.12 41.5,-360.12 41.5,-354.12 41.5,-354.12 41.5,-283.88 41.5,-283.88 41.5,-277.88 47.5,-271.88 53.5,-271.88 53.5,-271.88 181.75,-271.88 181.75,-271.88 187.75,-271.88 193.75,-277.88 193.75,-283.88 193.75,-283.88 193.75,-354.12 193.75,-354.12 193.75,-360.12 187.75,-366.12 181.75,-366.12"/>
|
||
|
|
<text text-anchor="start" x="91.38" y="-345.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
||
|
|
font-size="14.00">Schema
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="53.5" y="-316.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">•
|
||
|
|
relation name
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="53.5" y="-287.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">•
|
||
|
|
arity (column count)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- create_relation -->
|
||
|
|
<g id="node4" class="node">
|
||
|
|
<title>create_relation</title>
|
||
|
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
||
|
|
d="M498.75,-184C498.75,-184 292.25,-184 292.25,-184 286.25,-184 280.25,-178 280.25,-172 280.25,-172 280.25,-160 280.25,-160 280.25,-154 286.25,-148 292.25,-148 292.25,-148 498.75,-148 498.75,-148 504.75,-148 510.75,-154 510.75,-160 510.75,-160 510.75,-172 510.75,-172 510.75,-178 504.75,-184 498.75,-184"/>
|
||
|
|
<text text-anchor="middle" x="395.5" y="-163.2" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
storage.create_relation(name, arity)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- schema->create_relation -->
|
||
|
|
<g id="edge1" class="edge">
|
||
|
|
<title>schema->create_relation</title>
|
||
|
|
<path fill="none" stroke="#2196f3" stroke-width="1.2"
|
||
|
|
d="M194.01,-277.19C244.45,-249.22 309.06,-213.38 351.1,-190.07"/>
|
||
|
|
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.2"
|
||
|
|
points="352.64,-193.22 359.69,-185.31 349.24,-187.1 352.64,-193.22"/>
|
||
|
|
</g>
|
||
|
|
<!-- row_data -->
|
||
|
|
<g id="node2" class="node">
|
||
|
|
<title>row_data</title>
|
||
|
|
<path fill="#e8f4fd" stroke="#2196f3" stroke-width="1.5"
|
||
|
|
d="M178.75,-510.12C178.75,-510.12 56.5,-510.12 56.5,-510.12 50.5,-510.12 44.5,-504.12 44.5,-498.12 44.5,-498.12 44.5,-427.88 44.5,-427.88 44.5,-421.88 50.5,-415.88 56.5,-415.88 56.5,-415.88 178.75,-415.88 178.75,-415.88 184.75,-415.88 190.75,-421.88 190.75,-427.88 190.75,-427.88 190.75,-498.12 190.75,-498.12 190.75,-504.12 184.75,-510.12 178.75,-510.12"/>
|
||
|
|
<text text-anchor="start" x="86.5" y="-489.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
||
|
|
font-size="14.00">Row Data
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="56.5" y="-460.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">•
|
||
|
|
Vec<Value>
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="56.5" y="-431.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">•
|
||
|
|
Int / Str / Id(RowId)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- tx_ops -->
|
||
|
|
<g id="node6" class="node">
|
||
|
|
<title>tx_ops</title>
|
||
|
|
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5"
|
||
|
|
d="M1020.75,-474.62C1020.75,-474.62 824.25,-474.62 824.25,-474.62 818.25,-474.62 812.25,-468.62 812.25,-462.62 812.25,-462.62 812.25,-363.38 812.25,-363.38 812.25,-357.38 818.25,-351.38 824.25,-351.38 824.25,-351.38 1020.75,-351.38 1020.75,-351.38 1026.75,-351.38 1032.75,-357.38 1032.75,-363.38 1032.75,-363.38 1032.75,-462.62 1032.75,-462.62 1032.75,-468.62 1026.75,-474.62 1020.75,-474.62"/>
|
||
|
|
<text text-anchor="start" x="862.88" y="-454.32" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
||
|
|
font-size="14.00">tx.insert / tx.delete
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="824.25" y="-425.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
• insert yields pending RowId
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="824.25" y="-396.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
• pending RowIds reused as FKs
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="824.25" y="-367.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
• delete by RowId
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- row_data->tx_ops -->
|
||
|
|
<g id="edge5" class="edge">
|
||
|
|
<title>row_data->tx_ops</title>
|
||
|
|
<path fill="none" stroke="#2196f3" stroke-width="1.2" stroke-dasharray="5,2"
|
||
|
|
d="M190.94,-458.5C328.87,-449.91 630.86,-431.1 800.21,-420.55"/>
|
||
|
|
<polygon fill="#2196f3" stroke="#2196f3" stroke-width="1.2"
|
||
|
|
points="800.34,-424.05 810.11,-419.94 799.91,-417.07 800.34,-424.05"/>
|
||
|
|
</g>
|
||
|
|
<!-- open_backend -->
|
||
|
|
<g id="node3" class="node">
|
||
|
|
<title>open_backend</title>
|
||
|
|
<path fill="#f3e5f5" stroke="#9c27b0" stroke-width="1.5"
|
||
|
|
d="M201.25,-202.62C201.25,-202.62 34,-202.62 34,-202.62 28,-202.62 22,-196.62 22,-190.62 22,-190.62 22,-91.38 22,-91.38 22,-85.38 28,-79.38 34,-79.38 34,-79.38 201.25,-79.38 201.25,-79.38 207.25,-79.38 213.25,-85.38 213.25,-91.38 213.25,-91.38 213.25,-190.62 213.25,-190.62 213.25,-196.62 207.25,-202.62 201.25,-202.62"/>
|
||
|
|
<text text-anchor="start" x="70" y="-182.32" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
||
|
|
font-size="14.00">Open Backend
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="34" y="-153.07" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
MemoryStorage::new() /
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="34" y="-124.08" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
SqliteStorage::open(path) /
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="34" y="-95.08" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
FjallStorage::open(path) / ...
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- open_backend->create_relation -->
|
||
|
|
<g id="edge2" class="edge">
|
||
|
|
<title>open_backend->create_relation</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
d="M213.57,-149.6C231.17,-151.2 249.8,-152.89 268.16,-154.55"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="267.78,-158.03 278.05,-155.45 268.41,-151.06 267.78,-158.03"/>
|
||
|
|
</g>
|
||
|
|
<!-- begin_tx -->
|
||
|
|
<g id="node5" class="node">
|
||
|
|
<title>begin_tx</title>
|
||
|
|
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5"
|
||
|
|
d="M733.25,-387C733.25,-387 589.75,-387 589.75,-387 583.75,-387 577.75,-381 577.75,-375 577.75,-375 577.75,-349 577.75,-349 577.75,-343 583.75,-337 589.75,-337 589.75,-337 733.25,-337 733.25,-337 739.25,-337 745.25,-343 745.25,-349 745.25,-349 745.25,-375 745.25,-375 745.25,-381 739.25,-387 733.25,-387"/>
|
||
|
|
<text text-anchor="middle" x="661.5" y="-369.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
storage.transaction()
|
||
|
|
</text>
|
||
|
|
<text text-anchor="middle" x="661.5" y="-348.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
-> Box<dyn Transaction>
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- create_relation->begin_tx -->
|
||
|
|
<g id="edge3" class="edge">
|
||
|
|
<title>create_relation->begin_tx</title>
|
||
|
|
<path fill="none" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
d="M416.8,-184.23C444.61,-208.87 496.48,-253.65 543.75,-288 564.01,-302.72 587.16,-317.74 607.47,-330.37"/>
|
||
|
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
points="605.6,-333.32 615.94,-335.59 609.27,-327.37 605.6,-333.32"/>
|
||
|
|
</g>
|
||
|
|
<!-- scan_iter -->
|
||
|
|
<g id="node9" class="node">
|
||
|
|
<title>scan_iter</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M1774.5,-272C1774.5,-272 1635.5,-272 1635.5,-272 1629.5,-272 1623.5,-266 1623.5,-260 1623.5,-260 1623.5,-234 1623.5,-234 1623.5,-228 1629.5,-222 1635.5,-222 1635.5,-222 1774.5,-222 1774.5,-222 1780.5,-222 1786.5,-228 1786.5,-234 1786.5,-234 1786.5,-260 1786.5,-260 1786.5,-266 1780.5,-272 1774.5,-272"/>
|
||
|
|
<text text-anchor="middle" x="1705" y="-254.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
storage.scan_iter(name)
|
||
|
|
</text>
|
||
|
|
<text text-anchor="middle" x="1705" y="-233.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
-> RowStream
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- create_relation->scan_iter -->
|
||
|
|
<g id="edge8" class="edge">
|
||
|
|
<title>create_relation->scan_iter</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2" stroke-dasharray="5,2"
|
||
|
|
d="M430.83,-184.43C480.17,-209.16 574.65,-250 660.5,-250 660.5,-250 660.5,-250 1261.62,-250 1382.54,-250 1522.03,-248.87 1611.53,-247.99"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="1611.5,-251.49 1621.46,-247.89 1611.43,-244.49 1611.5,-251.49"/>
|
||
|
|
</g>
|
||
|
|
<!-- scan_where -->
|
||
|
|
<g id="node10" class="node">
|
||
|
|
<title>scan_where</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M1815.75,-72C1815.75,-72 1594.25,-72 1594.25,-72 1588.25,-72 1582.25,-66 1582.25,-60 1582.25,-60 1582.25,-34 1582.25,-34 1582.25,-28 1588.25,-22 1594.25,-22 1594.25,-22 1815.75,-22 1815.75,-22 1821.75,-22 1827.75,-28 1827.75,-34 1827.75,-34 1827.75,-60 1827.75,-60 1827.75,-66 1821.75,-72 1815.75,-72"/>
|
||
|
|
<text text-anchor="middle" x="1705" y="-54.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
storage.scan_where(name, col, value)
|
||
|
|
</text>
|
||
|
|
<text text-anchor="middle" x="1705" y="-33.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
-> RowStream  (filtered)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- create_relation->scan_where -->
|
||
|
|
<g id="edge9" class="edge">
|
||
|
|
<title>create_relation->scan_where</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2" stroke-dasharray="5,2"
|
||
|
|
d="M419.28,-147.51C463.15,-113.85 563.58,-46 660.5,-46 660.5,-46 660.5,-46 1261.62,-46 1365.26,-46 1482.56,-46.28 1570.31,-46.54"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="1570.12,-50.04 1580.13,-46.57 1570.15,-43.04 1570.12,-50.04"/>
|
||
|
|
</g>
|
||
|
|
<!-- scan_full -->
|
||
|
|
<g id="node11" class="node">
|
||
|
|
<title>scan_full</title>
|
||
|
|
<path fill="#fff3e0" stroke="#ff9800" stroke-width="1.5"
|
||
|
|
d="M1792.5,-172C1792.5,-172 1617.5,-172 1617.5,-172 1611.5,-172 1605.5,-166 1605.5,-160 1605.5,-160 1605.5,-134 1605.5,-134 1605.5,-128 1611.5,-122 1617.5,-122 1617.5,-122 1792.5,-122 1792.5,-122 1798.5,-122 1804.5,-128 1804.5,-134 1804.5,-134 1804.5,-160 1804.5,-160 1804.5,-166 1798.5,-172 1792.5,-172"/>
|
||
|
|
<text text-anchor="middle" x="1705" y="-154.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
storage.scan(name)
|
||
|
|
</text>
|
||
|
|
<text text-anchor="middle" x="1705" y="-133.7" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
-> Vec<(RowId, Vec<Value>)>
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- create_relation->scan_full -->
|
||
|
|
<g id="edge10" class="edge">
|
||
|
|
<title>create_relation->scan_full</title>
|
||
|
|
<path fill="none" stroke="#9c27b0" stroke-width="1.2" stroke-dasharray="5,2"
|
||
|
|
d="M511.06,-154.78C557.41,-151.13 611.46,-148 660.5,-148 660.5,-148 660.5,-148 1261.62,-148 1374.63,-148 1503.88,-147.67 1593.36,-147.39"/>
|
||
|
|
<polygon fill="#9c27b0" stroke="#9c27b0" stroke-width="1.2"
|
||
|
|
points="1593.37,-150.89 1603.35,-147.36 1593.34,-143.89 1593.37,-150.89"/>
|
||
|
|
</g>
|
||
|
|
<!-- begin_tx->tx_ops -->
|
||
|
|
<g id="edge4" class="edge">
|
||
|
|
<title>begin_tx->tx_ops</title>
|
||
|
|
<path fill="none" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
d="M745.52,-378.35C763.04,-381.8 781.87,-385.51 800.47,-389.17"/>
|
||
|
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
points="799.73,-392.59 810.22,-391.09 801.09,-385.72 799.73,-392.59"/>
|
||
|
|
</g>
|
||
|
|
<!-- commit -->
|
||
|
|
<g id="node7" class="node">
|
||
|
|
<title>commit</title>
|
||
|
|
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5"
|
||
|
|
d="M1409.5,-489.12C1409.5,-489.12 1111.75,-489.12 1111.75,-489.12 1105.75,-489.12 1099.75,-483.12 1099.75,-477.12 1099.75,-477.12 1099.75,-348.88 1099.75,-348.88 1099.75,-342.88 1105.75,-336.88 1111.75,-336.88 1111.75,-336.88 1409.5,-336.88 1409.5,-336.88 1415.5,-336.88 1421.5,-342.88 1421.5,-348.88 1421.5,-348.88 1421.5,-477.12 1421.5,-477.12 1421.5,-483.12 1415.5,-489.12 1409.5,-489.12"/>
|
||
|
|
<text text-anchor="start" x="1223.5" y="-468.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
||
|
|
font-size="14.00">tx.commit()
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="1111.75" y="-439.57" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">• native commit (LMDB, redb, SQLite, geomerge)
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="1111.75" y="-410.57" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">• buffered apply (memory, fjall)
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="1111.75" y="-381.57" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">• law validation (geomerge)
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="1111.75" y="-352.57" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">• yields CommittedTx
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- tx_ops->commit -->
|
||
|
|
<g id="edge6" class="edge">
|
||
|
|
<title>tx_ops->commit</title>
|
||
|
|
<path fill="none" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
d="M1033.09,-413C1050.7,-413 1069.29,-413 1087.94,-413"/>
|
||
|
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
points="1087.74,-416.5 1097.74,-413 1087.74,-409.5 1087.74,-416.5"/>
|
||
|
|
</g>
|
||
|
|
<!-- resolve_ids -->
|
||
|
|
<g id="node8" class="node">
|
||
|
|
<title>resolve_ids</title>
|
||
|
|
<path fill="#e8f5e9" stroke="#4caf50" stroke-width="1.5"
|
||
|
|
d="M1856.5,-438.12C1856.5,-438.12 1553.5,-438.12 1553.5,-438.12 1547.5,-438.12 1541.5,-432.12 1541.5,-426.12 1541.5,-426.12 1541.5,-355.88 1541.5,-355.88 1541.5,-349.88 1547.5,-343.88 1553.5,-343.88 1553.5,-343.88 1856.5,-343.88 1856.5,-343.88 1862.5,-343.88 1868.5,-349.88 1868.5,-355.88 1868.5,-355.88 1868.5,-426.12 1868.5,-426.12 1868.5,-432.12 1862.5,-438.12 1856.5,-438.12"/>
|
||
|
|
<text text-anchor="start" x="1633" y="-417.82" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
||
|
|
font-size="14.00">CommittedTx::resolve
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="1553.5" y="-388.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
• KV: pending == real
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="1553.5" y="-359.57" font-family="Helvetica,Arial,sans-serif" font-size="14.00">
|
||
|
|
• geomerge: pending counter → (commit, counter)
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- commit->resolve_ids -->
|
||
|
|
<g id="edge7" class="edge">
|
||
|
|
<title>commit->resolve_ids</title>
|
||
|
|
<path fill="none" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
d="M1421.96,-405.03C1456.99,-403.28 1494.23,-401.43 1529.77,-399.66"/>
|
||
|
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
points="1529.61,-403.18 1539.43,-399.18 1529.27,-396.19 1529.61,-403.18"/>
|
||
|
|
<text text-anchor="middle" x="1481.5" y="-408.27" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
||
|
|
fill="#555555">CommittedTx
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- commit->scan_iter -->
|
||
|
|
<g id="edge11" class="edge">
|
||
|
|
<title>commit->scan_iter</title>
|
||
|
|
<path fill="none" stroke="#4caf50" stroke-width="1.2" stroke-dasharray="5,2"
|
||
|
|
d="M1421.96,-352.84C1491.15,-326.87 1568.97,-297.67 1625.3,-276.53"/>
|
||
|
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
points="1626.44,-279.84 1634.58,-273.05 1623.98,-273.29 1626.44,-279.84"/>
|
||
|
|
<text text-anchor="middle" x="1481.5" y="-344.89" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
||
|
|
fill="#555555">after commit
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- rows_out -->
|
||
|
|
<g id="node12" class="node">
|
||
|
|
<title>rows_out</title>
|
||
|
|
<path fill="#eceff1" stroke="#607d8b" stroke-width="1.5"
|
||
|
|
d="M2149.75,-258.62C2149.75,-258.62 1995.25,-258.62 1995.25,-258.62 1989.25,-258.62 1983.25,-252.62 1983.25,-246.62 1983.25,-246.62 1983.25,-147.38 1983.25,-147.38 1983.25,-141.38 1989.25,-135.38 1995.25,-135.38 1995.25,-135.38 2149.75,-135.38 2149.75,-135.38 2155.75,-135.38 2161.75,-141.38 2161.75,-147.38 2161.75,-147.38 2161.75,-246.62 2161.75,-246.62 2161.75,-252.62 2155.75,-258.62 2149.75,-258.62"/>
|
||
|
|
<text text-anchor="start" x="2054.5" y="-238.32" font-family="Helvetica,Arial,sans-serif" font-weight="bold"
|
||
|
|
font-size="14.00">Rows
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="1995.25" y="-209.07" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">• (RowId, Vec<Value>)
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="1995.25" y="-180.07" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00">• consumed by query-ops
|
||
|
|
</text>
|
||
|
|
<text text-anchor="start" x="1995.25" y="-151.07" font-family="Helvetica,Arial,sans-serif"
|
||
|
|
font-size="14.00"> via scan_as_table
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- resolve_ids->rows_out -->
|
||
|
|
<g id="edge15" class="edge">
|
||
|
|
<title>resolve_ids->rows_out</title>
|
||
|
|
<path fill="none" stroke="#4caf50" stroke-width="1.2" stroke-dasharray="5,2"
|
||
|
|
d="M1847.09,-343.54C1859.24,-338.34 1871.2,-332.82 1882.5,-327 1916.36,-309.58 1951.29,-287.04 1981.77,-265.63"/>
|
||
|
|
<polygon fill="#4caf50" stroke="#4caf50" stroke-width="1.2"
|
||
|
|
points="1983.46,-268.72 1989.6,-260.08 1979.41,-263.01 1983.46,-268.72"/>
|
||
|
|
<text text-anchor="middle" x="1925.88" y="-320.11" font-family="Helvetica,Arial,sans-serif" font-size="9.00"
|
||
|
|
fill="#555555">real RowIds
|
||
|
|
</text>
|
||
|
|
</g>
|
||
|
|
<!-- scan_iter->rows_out -->
|
||
|
|
<g id="edge12" class="edge">
|
||
|
|
<title>scan_iter->rows_out</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1786.66,-235.97C1841.16,-228.51 1913.48,-218.62 1971.62,-210.66"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1971.81,-214.17 1981.25,-209.35 1970.86,-207.23 1971.81,-214.17"/>
|
||
|
|
</g>
|
||
|
|
<!-- scan_where->rows_out -->
|
||
|
|
<g id="edge13" class="edge">
|
||
|
|
<title>scan_where->rows_out</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1809.89,-72.49C1834.05,-79.5 1859.44,-87.75 1882.5,-97 1912.57,-109.06 1944.11,-124.52 1972.62,-139.66"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1970.91,-142.71 1981.37,-144.36 1974.22,-136.55 1970.91,-142.71"/>
|
||
|
|
</g>
|
||
|
|
<!-- scan_full->rows_out -->
|
||
|
|
<g id="edge14" class="edge">
|
||
|
|
<title>scan_full->rows_out</title>
|
||
|
|
<path fill="none" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
d="M1804.91,-160.53C1856.5,-167.59 1919.48,-176.2 1971.27,-183.29"/>
|
||
|
|
<polygon fill="#ff9800" stroke="#ff9800" stroke-width="1.2"
|
||
|
|
points="1970.63,-186.73 1981.02,-184.62 1971.58,-179.8 1970.63,-186.73"/>
|
||
|
|
</g>
|
||
|
|
</g>
|
||
|
|
</svg>
|