storj/docs/blueprints/byte-range-multipart-copy/images/metabase-shape-160_003.svg
Erik van Velzen 0cfbd34da2 docs/blueprints: byte range multipart copy
Design proposal for approval to support S3's UploadPartCopy. Major
revision 2.

Change-Id: I9cbe934a773d3496101f32afb19492ea75f48061
2022-10-13 12:03:17 +00:00

59 lines
17 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="363px" preserveAspectRatio="none" style="width:726px;height:363px;background:#FFFFFF;" version="1.1" viewBox="0 0 726 363" width="726px" zoomAndPan="magnify"><defs/><g><!--MD5=[e99e64f544e03e74d5532d92e9db740c]
cluster Destination--><g id="cluster_Destination"><path d="M8.5,6.294 L88.5,6.294 A3.75,3.75 0 0 1 91,8.794 L98,29.0939 L716.5,29.0939 A2.5,2.5 0 0 1 719,31.5939 L719,353.794 A2.5,2.5 0 0 1 716.5,356.294 L8.5,356.294 A2.5,2.5 0 0 1 6,353.794 L6,8.794 A2.5,2.5 0 0 1 8.5,6.294 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="6" x2="98" y1="29.0939" y2="29.0939"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="79" x="10" y="21.2999">Destination</text></g><!--MD5=[e32ea201eac9c26a2182d9fc82f320db]
cluster PendingCopyRange--><g id="cluster_PendingCopyRange"><path d="M402.5,49.294 L540.5,49.294 A3.75,3.75 0 0 1 543,51.794 L550,72.0939 L692.5,72.0939 A2.5,2.5 0 0 1 695,74.5939 L695,179.794 A2.5,2.5 0 0 1 692.5,182.294 L402.5,182.294 A2.5,2.5 0 0 1 400,179.794 L400,51.794 A2.5,2.5 0 0 1 402.5,49.294 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="400" x2="550" y1="72.0939" y2="72.0939"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="137" x="404" y="64.2999">PendingCopyRange</text></g><!--MD5=[8729272c8dbef0dd5f62fba128b8720d]
cluster Segments.Part1--><g id="cluster_Segments.Part1"><path d="M118.5,49.294 L226.5,49.294 A3.75,3.75 0 0 1 229,51.794 L236,72.0939 L373.5,72.0939 A2.5,2.5 0 0 1 376,74.5939 L376,329.794 A2.5,2.5 0 0 1 373.5,332.294 L118.5,332.294 A2.5,2.5 0 0 1 116,329.794 L116,51.794 A2.5,2.5 0 0 1 118.5,49.294 " fill="none" style="stroke:#000000;stroke-width:1.5;"/><line style="stroke:#000000;stroke-width:1.5;" x1="116" x2="236" y1="72.0939" y2="72.0939"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="107" x="120" y="64.2999">Segments.Part1</text></g><!--MD5=[aa7f586532e18719e6cefa70fc650583]
class Object--><g id="elem_Object"><rect codeLine="72" fill="#F1F1F1" height="98.3998" id="Object" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="75" x="21.5" y="76.294"/><ellipse cx="37.4" cy="92.294" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M32.4,93.4502 C32.4,95.9502 34.5406,97.7627 37.4625,97.7627 C38.6969,97.7627 39.8688,97.4659 40.6188,96.9502 C41.2281,96.5284 41.5563,96.1065 41.5563,95.7002 C41.5563,95.2315 41.1344,94.8252 40.6344,94.8252 C40.4,94.8252 40.1813,94.9034 39.9781,95.1065 C39.5406,95.544 39.5406,95.544 39.3688,95.6377 C38.9156,95.8721 38.275,96.0127 37.5094,96.0127 C35.5094,96.0127 34.2281,94.9971 34.2281,93.419 L34.2281,92.3721 C34.2281,90.669 35.4469,89.4659 37.15,89.4659 C37.7281,89.4659 38.3063,89.6065 38.775,89.8565 C39.2438,90.1221 39.4156,90.3096 39.4781,90.669 C39.6031,91.3409 39.8531,91.5909 40.3844,91.5909 C40.6656,91.5909 40.9469,91.4502 41.1344,91.2315 C41.2594,91.0596 41.3063,90.8877 41.3063,90.4502 L41.3063,89.0909 C41.3063,88.669 41.2906,88.5284 41.1656,88.3565 C40.9938,88.1065 40.7125,87.9502 40.3844,87.9502 C40.0719,87.9502 39.8688,88.0596 39.65,88.3252 C38.4781,87.8252 38.0406,87.7159 37.0875,87.7159 C34.4156,87.7159 32.4,89.7315 32.4,92.3565 L32.4,93.4502 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="41" x="51.6" y="96.9">Object</text><line style="stroke:#181818;stroke-width:0.5;" x1="22.5" x2="95.5" y1="108.294" y2="108.294"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="63" x="27.5" y="125.2999">PENDING</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="22" x="27.5" y="142.0999">key</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="52" x="27.5" y="158.8998">??? MiB</text><line style="stroke:#181818;stroke-width:0.5;" x1="22.5" x2="95.5" y1="166.6938" y2="166.6938"/></g><!--MD5=[351a9df3532dba24ee657e370e0b6cee]
class Part1--><g id="elem_Part1"><rect codeLine="79" fill="#F1F1F1" height="81.5999" id="Part1" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="114" x="565" y="84.294"/><ellipse cx="601.6" cy="100.294" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M596.6,101.4502 C596.6,103.9502 598.7406,105.7627 601.6625,105.7627 C602.8969,105.7627 604.0688,105.4659 604.8188,104.9502 C605.4281,104.5284 605.7563,104.1065 605.7563,103.7002 C605.7563,103.2315 605.3344,102.8252 604.8344,102.8252 C604.6,102.8252 604.3813,102.9034 604.1781,103.1065 C603.7406,103.544 603.7406,103.544 603.5688,103.6377 C603.1156,103.8721 602.475,104.0127 601.7094,104.0127 C599.7094,104.0127 598.4281,102.9971 598.4281,101.419 L598.4281,100.3721 C598.4281,98.669 599.6469,97.4659 601.35,97.4659 C601.9281,97.4659 602.5063,97.6065 602.975,97.8565 C603.4438,98.1221 603.6156,98.3096 603.6781,98.669 C603.8031,99.3409 604.0531,99.5909 604.5844,99.5909 C604.8656,99.5909 605.1469,99.4502 605.3344,99.2315 C605.4594,99.0596 605.5063,98.8877 605.5063,98.4502 L605.5063,97.0909 C605.5063,96.669 605.4906,96.5284 605.3656,96.3565 C605.1938,96.1065 604.9125,95.9502 604.5844,95.9502 C604.2719,95.9502 604.0688,96.0596 603.85,96.3252 C602.6781,95.8252 602.2406,95.7159 601.2875,95.7159 C598.6156,95.7159 596.6,97.7315 596.6,100.3565 L596.6,101.4502 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="34" x="620.4" y="104.9">Part1</text><line style="stroke:#181818;stroke-width:0.5;" x1="566" x2="678" y1="116.294" y2="116.294"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="102" x="571" y="133.2999">Source=Object1</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65" x="571" y="150.0999">1-160 MiB</text><line style="stroke:#181818;stroke-width:0.5;" x1="566" x2="678" y1="157.8938" y2="157.8938"/></g><!--MD5=[f74e29a2b1373b86cd5728da30dd0b5c]
class Part2--><g id="elem_Part2"><rect codeLine="83" fill="#F1F1F1" height="81.5999" id="Part2" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="114" x="416" y="84.294"/><ellipse cx="452.6" cy="100.294" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M447.6,101.4502 C447.6,103.9502 449.7406,105.7627 452.6625,105.7627 C453.8969,105.7627 455.0688,105.4659 455.8188,104.9502 C456.4281,104.5284 456.7563,104.1065 456.7563,103.7002 C456.7563,103.2315 456.3344,102.8252 455.8344,102.8252 C455.6,102.8252 455.3813,102.9034 455.1781,103.1065 C454.7406,103.544 454.7406,103.544 454.5688,103.6377 C454.1156,103.8721 453.475,104.0127 452.7094,104.0127 C450.7094,104.0127 449.4281,102.9971 449.4281,101.419 L449.4281,100.3721 C449.4281,98.669 450.6469,97.4659 452.35,97.4659 C452.9281,97.4659 453.5063,97.6065 453.975,97.8565 C454.4438,98.1221 454.6156,98.3096 454.6781,98.669 C454.8031,99.3409 455.0531,99.5909 455.5844,99.5909 C455.8656,99.5909 456.1469,99.4502 456.3344,99.2315 C456.4594,99.0596 456.5063,98.8877 456.5063,98.4502 L456.5063,97.0909 C456.5063,96.669 456.4906,96.5284 456.3656,96.3565 C456.1938,96.1065 455.9125,95.9502 455.5844,95.9502 C455.2719,95.9502 455.0688,96.0596 454.85,96.3252 C453.6781,95.8252 453.2406,95.7159 452.2875,95.7159 C449.6156,95.7159 447.6,97.7315 447.6,100.3565 L447.6,101.4502 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="34" x="471.4" y="104.9">Part2</text><line style="stroke:#181818;stroke-width:0.5;" x1="417" x2="529" y1="116.294" y2="116.294"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="102" x="422" y="133.2999">Source=Object1</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="81" x="422" y="150.0999">160-320 MiB</text><line style="stroke:#181818;stroke-width:0.5;" x1="417" x2="529" y1="157.8938" y2="157.8938"/></g><!--MD5=[e8c087ca6c91ad88f30ff6f96718cc79]
class Segment1--><g id="elem_Segment1"><rect codeLine="90" fill="#F1F1F1" height="81.5999" id="Segment1" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="97" x="131.5" y="84.294"/><ellipse cx="146.5" cy="100.294" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M141.5,101.4502 C141.5,103.9502 143.6406,105.7627 146.5625,105.7627 C147.7969,105.7627 148.9688,105.4659 149.7188,104.9502 C150.3281,104.5284 150.6563,104.1065 150.6563,103.7002 C150.6563,103.2315 150.2344,102.8252 149.7344,102.8252 C149.5,102.8252 149.2813,102.9034 149.0781,103.1065 C148.6406,103.544 148.6406,103.544 148.4688,103.6377 C148.0156,103.8721 147.375,104.0127 146.6094,104.0127 C144.6094,104.0127 143.3281,102.9971 143.3281,101.419 L143.3281,100.3721 C143.3281,98.669 144.5469,97.4659 146.25,97.4659 C146.8281,97.4659 147.4063,97.6065 147.875,97.8565 C148.3438,98.1221 148.5156,98.3096 148.5781,98.669 C148.7031,99.3409 148.9531,99.5909 149.4844,99.5909 C149.7656,99.5909 150.0469,99.4502 150.2344,99.2315 C150.3594,99.0596 150.4063,98.8877 150.4063,98.4502 L150.4063,97.0909 C150.4063,96.669 150.3906,96.5284 150.2656,96.3565 C150.0938,96.1065 149.8125,95.9502 149.4844,95.9502 C149.1719,95.9502 148.9688,96.0596 148.75,96.3252 C147.5781,95.8252 147.1406,95.7159 146.1875,95.7159 C143.5156,95.7159 141.5,97.7315 141.5,100.3565 L141.5,101.4502 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65" x="160.5" y="104.9">Segment1</text><line style="stroke:#181818;stroke-width:0.5;" x1="132.5" x2="227.5" y1="116.294" y2="116.294"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="44" x="137.5" y="133.2999">64 MiB</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="53" x="137.5" y="150.0999">0 pieces</text><line style="stroke:#181818;stroke-width:0.5;" x1="132.5" x2="227.5" y1="157.8938" y2="157.8938"/></g><!--MD5=[0c5e25f2d8585a3891e00bf8523de367]
class Segment2--><g id="elem_Segment2"><rect codeLine="94" fill="#F1F1F1" height="81.5999" id="Segment2" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="97" x="263.5" y="84.294"/><ellipse cx="278.5" cy="100.294" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M273.5,101.4502 C273.5,103.9502 275.6406,105.7627 278.5625,105.7627 C279.7969,105.7627 280.9688,105.4659 281.7188,104.9502 C282.3281,104.5284 282.6563,104.1065 282.6563,103.7002 C282.6563,103.2315 282.2344,102.8252 281.7344,102.8252 C281.5,102.8252 281.2813,102.9034 281.0781,103.1065 C280.6406,103.544 280.6406,103.544 280.4688,103.6377 C280.0156,103.8721 279.375,104.0127 278.6094,104.0127 C276.6094,104.0127 275.3281,102.9971 275.3281,101.419 L275.3281,100.3721 C275.3281,98.669 276.5469,97.4659 278.25,97.4659 C278.8281,97.4659 279.4063,97.6065 279.875,97.8565 C280.3438,98.1221 280.5156,98.3096 280.5781,98.669 C280.7031,99.3409 280.9531,99.5909 281.4844,99.5909 C281.7656,99.5909 282.0469,99.4502 282.2344,99.2315 C282.3594,99.0596 282.4063,98.8877 282.4063,98.4502 L282.4063,97.0909 C282.4063,96.669 282.3906,96.5284 282.2656,96.3565 C282.0938,96.1065 281.8125,95.9502 281.4844,95.9502 C281.1719,95.9502 280.9688,96.0596 280.75,96.3252 C279.5781,95.8252 279.1406,95.7159 278.1875,95.7159 C275.5156,95.7159 273.5,97.7315 273.5,100.3565 L273.5,101.4502 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65" x="292.5" y="104.9">Segment2</text><line style="stroke:#181818;stroke-width:0.5;" x1="264.5" x2="359.5" y1="116.294" y2="116.294"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="44" x="269.5" y="133.2999">64 MiB</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="53" x="269.5" y="150.0999">0 pieces</text><line style="stroke:#181818;stroke-width:0.5;" x1="264.5" x2="359.5" y1="157.8938" y2="157.8938"/></g><!--MD5=[6709f8a889f97bff46691ea82439f452]
class Segment3--><g id="elem_Segment3"><rect codeLine="98" fill="#F1F1F1" height="81.5999" id="Segment3" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="97" x="131.5" y="234.294"/><ellipse cx="146.5" cy="250.294" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M141.5,251.4502 C141.5,253.9502 143.6406,255.7627 146.5625,255.7627 C147.7969,255.7627 148.9688,255.4659 149.7188,254.9502 C150.3281,254.5284 150.6563,254.1065 150.6563,253.7002 C150.6563,253.2315 150.2344,252.8252 149.7344,252.8252 C149.5,252.8252 149.2813,252.9034 149.0781,253.1065 C148.6406,253.544 148.6406,253.544 148.4688,253.6377 C148.0156,253.8721 147.375,254.0127 146.6094,254.0127 C144.6094,254.0127 143.3281,252.9971 143.3281,251.419 L143.3281,250.3721 C143.3281,248.669 144.5469,247.4659 146.25,247.4659 C146.8281,247.4659 147.4063,247.6065 147.875,247.8565 C148.3438,248.1221 148.5156,248.3096 148.5781,248.669 C148.7031,249.3409 148.9531,249.5909 149.4844,249.5909 C149.7656,249.5909 150.0469,249.4502 150.2344,249.2315 C150.3594,249.0596 150.4063,248.8877 150.4063,248.4502 L150.4063,247.0909 C150.4063,246.669 150.3906,246.5284 150.2656,246.3565 C150.0938,246.1065 149.8125,245.9502 149.4844,245.9502 C149.1719,245.9502 148.9688,246.0596 148.75,246.3252 C147.5781,245.8252 147.1406,245.7159 146.1875,245.7159 C143.5156,245.7159 141.5,247.7315 141.5,250.3565 L141.5,251.4502 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65" x="160.5" y="254.9">Segment3</text><line style="stroke:#181818;stroke-width:0.5;" x1="132.5" x2="227.5" y1="266.294" y2="266.294"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="44" x="137.5" y="283.2999">64 MiB</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="53" x="137.5" y="300.0999">0 pieces</text><line style="stroke:#181818;stroke-width:0.5;" x1="132.5" x2="227.5" y1="307.8938" y2="307.8938"/></g><!--MD5=[71b18ec3900e68539b655371ac057fe5]
class Segment4--><g id="elem_Segment4"><rect codeLine="102" fill="#F1F1F1" height="81.5999" id="Segment4" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="97" x="263.5" y="234.294"/><ellipse cx="278.5" cy="250.294" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1.0;"/><path d="M273.5,251.4502 C273.5,253.9502 275.6406,255.7627 278.5625,255.7627 C279.7969,255.7627 280.9688,255.4659 281.7188,254.9502 C282.3281,254.5284 282.6563,254.1065 282.6563,253.7002 C282.6563,253.2315 282.2344,252.8252 281.7344,252.8252 C281.5,252.8252 281.2813,252.9034 281.0781,253.1065 C280.6406,253.544 280.6406,253.544 280.4688,253.6377 C280.0156,253.8721 279.375,254.0127 278.6094,254.0127 C276.6094,254.0127 275.3281,252.9971 275.3281,251.419 L275.3281,250.3721 C275.3281,248.669 276.5469,247.4659 278.25,247.4659 C278.8281,247.4659 279.4063,247.6065 279.875,247.8565 C280.3438,248.1221 280.5156,248.3096 280.5781,248.669 C280.7031,249.3409 280.9531,249.5909 281.4844,249.5909 C281.7656,249.5909 282.0469,249.4502 282.2344,249.2315 C282.3594,249.0596 282.4063,248.8877 282.4063,248.4502 L282.4063,247.0909 C282.4063,246.669 282.3906,246.5284 282.2656,246.3565 C282.0938,246.1065 281.8125,245.9502 281.4844,245.9502 C281.1719,245.9502 280.9688,246.0596 280.75,246.3252 C279.5781,245.8252 279.1406,245.7159 278.1875,245.7159 C275.5156,245.7159 273.5,247.7315 273.5,250.3565 L273.5,251.4502 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="65" x="292.5" y="254.9">Segment4</text><line style="stroke:#181818;stroke-width:0.5;" x1="264.5" x2="359.5" y1="266.294" y2="266.294"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="44" x="269.5" y="283.2999">64 MiB</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="53" x="269.5" y="300.0999">0 pieces</text><line style="stroke:#181818;stroke-width:0.5;" x1="264.5" x2="359.5" y1="307.8938" y2="307.8938"/></g><!--MD5=[634640b163f2bab7f9a6b131bcf77c49]
@startuml
package Destination {
class Object {
PENDING
key
??? MiB
}
package PendingCopyRange {
class Part1 {
Source=Object1
1-160 MiB
}
class Part2 {
Source=Object1
160-320 MiB
}
}
package Segments.Part1 {
class Segment1 {
64 MiB
0 pieces
}
class Segment2 {
64 MiB
0 pieces
}
class Segment3 {
64 MiB
0 pieces
}
class Segment4 {
64 MiB
0 pieces
}
}
}
@enduml
PlantUML version 1.2022.7(Mon Aug 22 19:01:30 CEST 2022)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>