diff options
author | Alex Auvolat <alex@adnab.me> | 2020-12-12 16:05:28 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2020-12-12 16:05:28 +0100 |
commit | 0b3084ca5ff7884f149f679c6dc391bab46d902d (patch) | |
tree | 9e2797fea45bb0fe5f55afc205366d45c2c3b0dd | |
parent | cbd10c1b0a1325fbd7cf91a43ea0044ba1aae409 (diff) | |
parent | 022b386a5085cad79d649a82846c41cad730920b (diff) | |
download | garage-doc/model.tar.gz garage-doc/model.zip |
Merge branch 'master' into doc/modeldoc/model
31 files changed, 2748 insertions, 61 deletions
@@ -461,6 +461,7 @@ dependencies = [ "log", "md-5", "percent-encoding", + "rand", "roxmltree", "sha2", "tokio", @@ -20,17 +20,24 @@ Our main use case is to provide a distributed storage layer for small-scale self We propose the following quickstart to setup a full dev. environment as quickly as possible: - 1. Setup a rust/cargo environment and install s3cmd. eg. `dnf install rust cargo s3cmd` - 2. Run `cargo build` to build the project - 3. Run `./script/dev-cluster.sh` to launch a test cluster (feel free to read the script) - 4. Run `./script/dev-configure.sh` to configure your test cluster with default values (same datacenter, 100 tokens) - 5. Run `./script/dev-bucket.sh` to create a bucket named `éprouvette` and an API key that will be stored in `/tmp/garage.s3` - 6. Run `source ./script/dev-env.sh` to configure your CLI environment - 7. You can use `garage` to manage the cluster. Try `garage --help`. - 8. You can use `s3grg` to add, remove, and delete files. Try `s3grg --help`, `s3grg put /proc/cpuinfo s3://éprouvette/cpuinfo.txt`, `s3grg ls s3://éprouvette`. `s3grg` is a wrapper on `s3cmd` configured with the previously generated API key (the one in `/tmp/garage.s3`). + 1. Setup a rust/cargo environment. eg. `dnf install rust cargo` + 2. Install awscli v2 by following the guide [here](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html). + 3. Run `cargo build` to build the project + 4. Run `./script/dev-cluster.sh` to launch a test cluster (feel free to read the script) + 5. Run `./script/dev-configure.sh` to configure your test cluster with default values (same datacenter, 100 tokens) + 6. Run `./script/dev-bucket.sh` to create a bucket named `eprouvette` and an API key that will be stored in `/tmp/garage.s3` + 7. Run `source ./script/dev-env-aws.sh` to configure your CLI environment + 8. You can use `garage` to manage the cluster. Try `garage --help`. + 9. You can use the `awsgrg` alias to add, remove, and delete files. Try `awsgrg help`, `awsgrg cp /proc/cpuinfo s3://eprouvette/cpuinfo.txt`, or `awsgrg ls s3://eprouvette`. `awsgrg` is a wrapper on the `aws s3` command pre-configured with the previously generated API key (the one in `/tmp/garage.s3`) and localhost as the endpoint. Now you should be ready to start hacking on garage! +## S3 compatibility + +Only a subset of S3 is supported: adding, listing, getting and deleting files in a bucket. +Bucket management, ACL and other advanced features are not (yet?) handled through the S3 API but through the `garage` CLI. +We primarily test `garage` against the `awscli` tool and `nextcloud`. + ## Setting up Garage Use the `genkeys.sh` script to generate TLS keys for encrypting communications between Garage nodes. diff --git a/doc/20201202_talk/.gitignore b/doc/20201202_talk/.gitignore new file mode 100644 index 00000000..a5e8d18b --- /dev/null +++ b/doc/20201202_talk/.gitignore @@ -0,0 +1,12 @@ +* + +!img + +!.gitignore +!*.svg +!*.png +!*.jpg +!*.tex +!Makefile +!.gitignore +!talk.pdf diff --git a/doc/20201202_talk/Makefile b/doc/20201202_talk/Makefile new file mode 100644 index 00000000..27dbf788 --- /dev/null +++ b/doc/20201202_talk/Makefile @@ -0,0 +1,6 @@ +talk.pdf: talk.tex img/garage_distributed.pdf img/consistent_hashing_1.pdf img/consistent_hashing_2.pdf img/consistent_hashing_3.pdf img/consistent_hashing_4.pdf img/garage_tables.pdf + pdflatex talk.tex + +img/%.pdf: img/%.svg + inkscape -D -z --file=$^ --export-pdf=$@ + diff --git a/doc/20201202_talk/img/Amazon-S3.jpg b/doc/20201202_talk/img/Amazon-S3.jpg Binary files differnew file mode 100644 index 00000000..a9501973 --- /dev/null +++ b/doc/20201202_talk/img/Amazon-S3.jpg diff --git a/doc/20201202_talk/img/cloud.png b/doc/20201202_talk/img/cloud.png Binary files differnew file mode 100644 index 00000000..d95b2ae3 --- /dev/null +++ b/doc/20201202_talk/img/cloud.png diff --git a/doc/20201202_talk/img/consistent_hashing_1.svg b/doc/20201202_talk/img/consistent_hashing_1.svg new file mode 100644 index 00000000..f8d24fd8 --- /dev/null +++ b/doc/20201202_talk/img/consistent_hashing_1.svg @@ -0,0 +1,301 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="648" + height="480" + viewBox="0 0 171.45 127" + version="1.1" + id="svg2147" + inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" + sodipodi:docname="consistent_hashing_1.svg"> + <defs + id="defs2141"> + <marker + style="overflow:visible;" + id="marker3465" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3463" /> + </marker> + <marker + style="overflow:visible;" + id="marker3455" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3453" /> + </marker> + <marker + style="overflow:visible;" + id="marker3445" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3443" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow1Lend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3144" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.98994949" + inkscape:cx="297.97441" + inkscape:cy="245.37211" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" + showgrid="false" + units="px" + inkscape:window-width="1404" + inkscape:window-height="1016" + inkscape:window-x="281" + inkscape:window-y="27" + inkscape:window-maximized="0" + showguides="true" + inkscape:guide-bbox="true" /> + <metadata + id="metadata2144"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="g2851" + transform="matrix(0.84882735,0,0,0.84882735,-5.4514578,9.7344105)"> + <circle + style="fill:none;stroke:#000000;stroke-width:1" + id="path2710" + cx="89.153343" + cy="63.810429" + r="51.14566" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 118.92887,33.710015 131.54406,21.284558" + id="path2736" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 130.3168,71.515 17.36133,3.481276" + id="path2736-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 104.71157,102.41933 6.56219,16.44605" + id="path2736-6" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 51.073764,81.65523 35.108111,89.312443" + id="path2736-9" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 54.233873,39.571826 39.643162,29.539572" + id="path2736-3" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 69.962563,25.77499 61.999798,9.959512" + id="path2736-7" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g2992" + transform="translate(-19.258685)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcQAAAHECAYAAACnX1ofAAAABmJLR0QA/wD/AP+gvaeTAAAULklE QVR4nO3de7B1d0Hf4U94X0LIBRJRiQyYGJAkiAItYtGAUBAaBLFNIXJxqjQ4VYQpWOnQC1Pb2qk3 phWRq1AVBBEj94sKxaLlVgoiSBIgRkIqF7kmGCAJ6R/rQF4hmPCetfdv772eZ2ZPhkyy1veQs8/n 3WtfzhGxy46pzqjuWN2hum31ddXx1QkDd8Gmu7r6ZHVZ9Ynqgur86h3V66u/HjeNVTli9ABmd5Pq wdUDq3tXR42dAzvnC01hfEn17OqDY+cwF0HcHbepHl39SFMUgdW7qnp19V+q/z14CyzeidXTqyua LvO4ubmNub2kul1srQOjB3DYDlSPr15U3bW6wdg5sHinVudUn63e1BRJtohLptvp1OrXq+8aPQS4 Vv+zelD1sdFDuP4Ecfs8tHpmdfToIcDf6bzqzOqi0UO4flxm2x4Hql+qnpcYwjY4remFNrcZPYTr xyPE7XBkUwj/6eghwNfswuq7qw+PHsLfzSPEzXdM9YrEELbVKdXv5D3BG08QN9uRTTG89+ghwL7c rXpBfuZuNG+72Gy/Wp01egQwi9Oa/pD72tFDuHaCuLl+onri6BHArO5Wvb965+ghfCUvqtlM31O9 rulPk8Bu+Wx1z6Y377NBBHHzfHP11uobRw8BVuZD1V2qi0cP4Rqe4N0sRzV9FJsYwm47semzT48Z PYRrCOJmeWr1naNHAGtxp+o3cqVuY3hRzeb46b0bsByn7/319UNXUPmTyaa4T/XKVvsHlPdWz6ne 0vSJGR9p+pVRwFc6qukN9d9f/WjTJc5Vubo6u+nN+7Bot2n6RPxV/Y62zzX9miiXx+Hw3LDpF29f 0urup5+p/v66viDYRMdV72p1d7IPVHdc21cDu+3Y6oWt7v56cfVNa/tqYIMcUZ3b6u5cF1Qnre2r gWW4QdMrwVd1v31TPvOUBXpiq7tTvaa6+fq+FFiUY5s+aWZV99/n5vUdLMgDq6tazZ3pT6obre9L gUU6ufpoq4viE9b3pcA4p1WfbDV3okuqW6zvS4FFu1fTK7VXcV++qukPzrCzTmh6bm8Vd6DL86Z+ WLfHtrpHiZdW37G+LwXW5wZNv9twVXeeh67vSwEO8axWd7++KB/luDaeuF2fn2t6P+AqXNn0Fgtg /Y6sbrnC4/9x0+XZz6/wHCSI63JW06dQ+P8bOBy/3vThAKyQzzJdvTtWL8/vNgQO3x2bnlN84+gh u8wjltW6WdPvNvyW0UOArfeFpleevnz0kF0liKtzfPX7eeUnMJ9PNf1Mee/oIbvIBz6vxo2a/hQn hsCcbtr0eoRjRw/ZRZ5DXI1n5E21wGqc2HR177Wjh+wal0zn96PVs0ePAHbaldUZ1ZtHD9klgjiv 45o+iWaVv0wUoOr9Ta8+vWz0kF3hOcR5/dvEEFiPW1f/YvSIXeIR4nxObPoT29GjhwCL8cHqlKYP GWefPEKcz6MSQ2C9bln90OgRu0IQ5+MtFsAIZ48esCtcMp3HkdXHq2NGDwEW59KmT8Vy2XSfPEKc x10SQ2CM45p+BrFPgjiP240eACzat48esAsEcR43Hz0AWDS/RHgGgjgPQQRGEsQZHBw9YEfcdKbj PKn6rZmOBWy+h1aPm+E4c/0MWjRB3CwfrN42egSwNncfPYBruGQKAAkiAFSCCACVIAJAJYgAUAki AFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgA UAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFR1cPQAtsrB 6g57t1Oqb6huXB01chTs+Wx1efXR6sLqHdU7qytHjmJ7CCLX5UD1A9VDqjOrY8fOga/JZdUrq+dX L6uuGjuHTeaSKV/Ngeqc6v3VudWDEkO2z7HVg6vfq95XPSI/9/gqfGNwbU6v3lI9szpp8BaYy8nV r1Vvrk4bvIUNJIh8uQdVb6v+3ughsCJ3bvoeP2v0EDaLIHKoc6oXNL1QBnbZ0dULm77noRJErvHA 6mn5nmA5btD0Pf+A0UPYDH74UXWr6jlNL6SBJTlQ/WaeKydBZPKc6oTRI2CQm1bPGD2C8QSRB1T3 Gj0CBrtPdb/RIxhLEPk3owfAhnjC6AGMJYjLdqfqH4weARvijKaPJWShBHHZzh49ADbMg0cPYBxB XLYzRw+ADeN5xAUTxOW6SXX70SNgw3x7ddzoEYwhiMt1ev77w5c7UJ06egRj+IG4XCePHgAb6ltG D2AMQVyu40cPgA3lvrFQfkHwcs31W+7fXv32TMeC/Ti76a1E+3X0DMdgCwnics11deDd1c/NdCzY j9s3TxBdOVso/+EBIEEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEA KkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACo BBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaCq g6MHMMzVMx3npOpBMx0L9uOkmY4z132DLSOIy3XpTMe5294NdsWnRw9gDJdMl+tTowfAhvrk6AGM IYjL9RejB8CGunD0AMYQxOV6V3XF6BGwYa6o3jN6BGMI4nJ9rvrT0SNgw7y96b7BAgnisr1k9ADY MC8ePYBxBHHZXpSXmMMXXV2dO3oE4wjisp1XvWb0CNgQr6rOHz2CcQSRp40eABvi6aMHMJYgco/R A2BDfO/oAYwliMt2fPXPR4+ADXFOddPRIxhHEJftH1fHjR4BG+Im1QNHj2AcQVy2Hxw9ADaM+8SC CeJyHZHnD+HL3bPpvsECCeJy3brpEhFwjeOrk0ePYAxBXK7TRg+ADXX66AGMIYjLdbPRA2BDuW8s lF8QvFxzXS79UNNvzoDRbl+dOMNxvPVioQRxueb6b/+H1Q/PdCzYj9+sHj7DcW44wzHYQi6ZAkCC CACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAki AFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgA UAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAVQdHD2DrHVmdMHoENH0v zuHqmY7DlhHE5fr8TMd58N4NdsVc9w22jEumy3XZ6AGwoS4dPYAxBHG5Pjh6AGyoi0cPYAxBXK4L Rg+ADfXe0QMYQxCX6+LqktEjYMNckvvFYgnisr1+9ADYMK8dPYBxBHHZfnf0ANgw544ewDiCuGwv z+Uh+KL/V71q9AjGEcRlu6J66ugRsCF+Oe9BXDRB5El5mTlcUj159AjGEkQurx4zegQM9hPV34we wViCSNWLc+mU5fqV6qWjRzCeIPJFj6leMXoErNkrqseOHsFmEES+6MrqrOoFo4fAmpxbPajpex8E kb/lc9XDqic0vQIVdtHnq3/dFMPLB29hgwgiX+4L1X+t7pxP7WD3/EHT9/bPN32vw5cIIl/NO6t7 V3evfqf67Ng5cNgur15YnVHdp/qzsXPYVH5BMNflDXu3Y6vva/qhcofqlOqE6vhx0+ArfLL6RHVh 9Y7qj6s/zO//5HoQRK6vy6rf27sB7ByXTAEgQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAq QQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgE EQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJE AKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShAB oBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAqg6OHgALdEp1RnV6dVJ1zN7f/0z1l9V7qjdUfzFk HSyUIMJ63KJ6ZPWw6luv579zQfXc6lnVX61oF7DHJVNYra+vfrW6sPoPXf8YVt22+o9NjxR/pfq6 2dcBXyKIsDoPrs6rfry60T6Oc6PqUdX51Vkz7AKuhSDC/G5Q/ffqt6ubzXjcr69eVP1S7rswO3cq mNfB6reqx6zwHI9rem7xwArPAYsjiDCfI6qnV2ev4VwPqZ66hvPAYggizOfR1SPWeL5HNj0/CcxA EGEet6t+fsB5n1SdOuC8sHMEEebxlPb3StLDdVT15AHnhZ0jiLB/967uMfD83zf4/LATBBH276dG D6h+evQA2HaCCPtzi6ZHaKPdpzpx9AjYZoII+/OANuP9gAer+48eAdtMEGF/Num5u3uOHgDbTBBh f+4wesAhvmP0ANhmggj7c8roAYe4zegBsM0EEQ7f0Y157+FXc9TeDTgMggiHb5Ni+EWCCIdJEOHw fWb0gGuxiZtgKwgiHL7PV58aPeIQn6iuGD0CtpUgwv5cMHrAIc4fPQC2mSDC/rx19IBDbNIW2DqC CPvz2tEDDrFJW2DrCCLsz6vajOcRP139/ugRsM0EEfbn8ur5o0dUz23aAhwmQYT9+8XqyoHnv6L6 hYHnh50giLB/76+eOvD8v1xdNPD8sBMEEebx76sPDDjvRdXPDDgv7BxBhHl8qvqh1vvG+M9XZ1eX rvGcsLMEEebzxuqfVV9Yw7murh5ZvWUN54JFEESY1/ObQnXVCs9xZfWI6jdWeA5YHEGE+T27+oHq 4ys49l9X96/+xwqODYsmiLAar6zutPfXubxs75ivmfGYwB5BhNX5QPX9TY/o9vNc35uq+zU96vzg DLuAa3Fw9ABYgFfs3e5SPay6b3Xqdfw751Wvrp5X/Z+VrgMqQYR1ekvXPFL8hup21a2q4/b+3qXV xdW7m54rBNZIEGGMj1Z/NHoEcA3PIQJAgggAlSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBUgggA lSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBU dXD0AFiob6y+rbpVdcze3/tM9YHqz6uPDNoFiyWIsD7fVT28um/1rdfxz55fvaZ6XvWWFe8CcskU 1uGB1VurN1U/2XXHsOrU6jHVm/du91/ZOqASRFilk6pXVy+u7ryP49yleln1iuqbZ9gFXAtBhNW4 f/X2psujc7lf9X+rM2c8JrBHEGF+5zQ9KjxhBce+WfXS6hErODYsmiDCvB5WPb06sMJzHKyeVf3I Cs8BiyOIMJ8zque0nvvVEdUzqruu4VywCIII8zi+en51wzWe84Z757zJGs8JO0sQYR4/W91ywHlP qn5mwHlh5wgi7N+tqx8beP5HV7cZeH7YCYII+/f4xn7q04HqcQPPDztBEGF/jq4eMnpE06tbjx49 AraZIML+nFkdN3pE0wtr7jN6BGwzQYT9udfoAYfYpC2wdQQR9mc/n1E6t+8cPQC2mSDC/tx29IBD bNIW2DqCCIfvyOqmo0cc4oTW+8EAsFMEEQ7fMdf9j6zdJm6CrSCIcPg+N3rAtfjs6AGwrQQRDt/f tFlRvDxBhMMmiLA/7x894BDvGz0Atpkgwv786egBh3jn6AGwzQQR9uf1owcc4nWjB8A2E0TYn5dU V44e0bThlaNHwDYTRNifD1d/MHpE9erqQ6NHwDYTRNi/Xxw9oPqF0QNg2wki7N/rqtcOPP9rqv81 8PywEwQR5vGTjXkP4OXVowecF3aOIMI8zqv+1YDz/svqvQPOCztHEGE+T6meucbzPa16xhrPBztN EGFeP149fw3neV7TZVpgJoII87qqenj1pBUd/+qmV5T+8N65gJkIIszvC9VPVWdVH53xuB+u/kn1 +KYwAjMSRFidc6vTqie3v1egXl79t71jvXiGXcC1EERYrY9Xj6lOqZ5Ynf81/Lvvqf7d3r/72OqT s68DvuTg6AGwEH9V/ae928nVGdXp1UnVsXv/zKXVB5pC+IbqL9c/E5ZLEGH9Ltq7ARvEJVMASBAB oBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSA ShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAq QQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKjq4OgB/C03rk4YPQJYmxuP HsA1BHEeV8x0nJ/duwF8LT43esAucMl0HpeOHgAs2mWjB+wCQZzHJaMHAIt28egBu0AQ53HB6AHA or139IBdcMToATvi5tWHRo8AFuub8jNo3zxCnMeHq/NGjwAW6d2J4SwEcT6/O3oAsEjnjh6wK1wy nc/J1fuqA6OHAItxVXXb6sLRQ3aBR4jzuah66egRwKKcmxjOxiPEeZ1a/Vl1w9FDgJ13RfVteYXp bFzem9fHqiOru48eAuy8/5znD2flEeL8Dlavr75n9BBgZ72h+ofVlaOH7BJBXI2bVX/SdAkVYE7n VWc0XZFiRl5Usxofq763etvoIcBOeWd178RwJQRxdT5c3aP6tdFDgJ3wzOq789nJKyOIq3VZdU51 ZvXng7cA2+ld1T+qfqz6zOAtO81ziOtzoPrB6lFNr0L1Cl/gq7mq+qPqKdVL9v43KyaIY9y8um91 1+r21SnVTapjR44Chris+nTTG+zfVb2xenX1kZGjluj/A7eiP6AtHfmzAAAAAElFTkSuQmCC " + id="image2981" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987"><tspan + sodipodi:role="line" + id="tspan2985" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">1</tspan></text> + </g> + <g + id="g2992-5" + transform="translate(-5.5636458,61.815287)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-0" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-4"><tspan + sodipodi:role="line" + id="tspan2985-8" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">2</tspan></text> + </g> + <g + id="g2992-7" + transform="translate(-36.464671,99.052583)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-1" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-7"><tspan + sodipodi:role="line" + id="tspan2985-2" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">3</tspan></text> + </g> + <g + id="g2992-72" + transform="translate(-117.33947,73.967241)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-2" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-6"><tspan + sodipodi:role="line" + id="tspan2985-1" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">4</tspan></text> + </g> + <g + id="g2992-0" + transform="translate(-118.04937,17.044482)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-6" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-1"><tspan + sodipodi:role="line" + id="tspan2985-5" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">5</tspan></text> + </g> + <g + id="g2992-9" + transform="translate(-94.51307,-9.6130091)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-4" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-9"><tspan + sodipodi:role="line" + id="tspan2985-0" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">6</tspan></text> + </g> + <rect + style="fill:none;stroke:#000040;stroke-width:0.799999;stroke-dasharray:2.4, 0.79999900000000002;stroke-opacity:0.01249951" + id="rect894" + width="171.26611" + height="127.22334" + x="0.13010304" + y="0.24505959" /> + </g> +</svg> diff --git a/doc/20201202_talk/img/consistent_hashing_2.svg b/doc/20201202_talk/img/consistent_hashing_2.svg new file mode 100644 index 00000000..5ac8faf6 --- /dev/null +++ b/doc/20201202_talk/img/consistent_hashing_2.svg @@ -0,0 +1,334 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="648" + height="480" + viewBox="0 0 171.45 127" + version="1.1" + id="svg2147" + inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" + sodipodi:docname="consistent_hashing_2.svg"> + <defs + id="defs2141"> + <marker + style="overflow:visible;" + id="marker3465" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3463" /> + </marker> + <marker + style="overflow:visible;" + id="marker3455" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3453" /> + </marker> + <marker + style="overflow:visible;" + id="marker3445" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3443" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow1Lend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3144" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="166.38273" + inkscape:cy="269.80211" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" + showgrid="false" + units="px" + inkscape:window-width="1404" + inkscape:window-height="1016" + inkscape:window-x="281" + inkscape:window-y="27" + inkscape:window-maximized="0" + showguides="true" + inkscape:guide-bbox="true" /> + <metadata + id="metadata2144"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="g2851" + transform="matrix(0.84882735,0,0,0.84882735,-5.4514578,9.7344105)"> + <circle + style="fill:none;stroke:#000000;stroke-width:1" + id="path2710" + cx="89.153343" + cy="63.810429" + r="51.14566" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 118.92887,33.710015 131.54406,21.284558" + id="path2736" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 130.3168,71.515 17.36133,3.481276" + id="path2736-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 104.71157,102.41933 6.56219,16.44605" + id="path2736-6" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 51.073764,81.65523 35.108111,89.312443" + id="path2736-9" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 54.233873,39.571826 39.643162,29.539572" + id="path2736-3" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 69.962563,25.77499 61.999798,9.959512" + id="path2736-7" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g2992" + transform="translate(-19.258685)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987"><tspan + sodipodi:role="line" + id="tspan2985" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">1</tspan></text> + </g> + <g + id="g2992-5" + transform="translate(-5.5636458,61.815287)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-0" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-4"><tspan + sodipodi:role="line" + id="tspan2985-8" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">2</tspan></text> + </g> + <g + id="g2992-7" + transform="translate(-36.464671,99.052583)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcQAAAHECAYAAACnX1ofAAAABmJLR0QA/wD/AP+gvaeTAAAULklE QVR4nO3de7B1d0Hf4U94X0LIBRJRiQyYGJAkiAItYtGAUBAaBLFNIXJxqjQ4VYQpWOnQC1Pb2qk3 phWRq1AVBBEj94sKxaLlVgoiSBIgRkIqF7kmGCAJ6R/rQF4hmPCetfdv772eZ2ZPhkyy1veQs8/n 3WtfzhGxy46pzqjuWN2hum31ddXx1QkDd8Gmu7r6ZHVZ9Ynqgur86h3V66u/HjeNVTli9ABmd5Pq wdUDq3tXR42dAzvnC01hfEn17OqDY+cwF0HcHbepHl39SFMUgdW7qnp19V+q/z14CyzeidXTqyua LvO4ubmNub2kul1srQOjB3DYDlSPr15U3bW6wdg5sHinVudUn63e1BRJtohLptvp1OrXq+8aPQS4 Vv+zelD1sdFDuP4Ecfs8tHpmdfToIcDf6bzqzOqi0UO4flxm2x4Hql+qnpcYwjY4remFNrcZPYTr xyPE7XBkUwj/6eghwNfswuq7qw+PHsLfzSPEzXdM9YrEELbVKdXv5D3BG08QN9uRTTG89+ghwL7c rXpBfuZuNG+72Gy/Wp01egQwi9Oa/pD72tFDuHaCuLl+onri6BHArO5Wvb965+ghfCUvqtlM31O9 rulPk8Bu+Wx1z6Y377NBBHHzfHP11uobRw8BVuZD1V2qi0cP4Rqe4N0sRzV9FJsYwm47semzT48Z PYRrCOJmeWr1naNHAGtxp+o3cqVuY3hRzeb46b0bsByn7/319UNXUPmTyaa4T/XKVvsHlPdWz6ne 0vSJGR9p+pVRwFc6qukN9d9f/WjTJc5Vubo6u+nN+7Bot2n6RPxV/Y62zzX9miiXx+Hw3LDpF29f 0urup5+p/v66viDYRMdV72p1d7IPVHdc21cDu+3Y6oWt7v56cfVNa/tqYIMcUZ3b6u5cF1Qnre2r gWW4QdMrwVd1v31TPvOUBXpiq7tTvaa6+fq+FFiUY5s+aWZV99/n5vUdLMgDq6tazZ3pT6obre9L gUU6ufpoq4viE9b3pcA4p1WfbDV3okuqW6zvS4FFu1fTK7VXcV++qukPzrCzTmh6bm8Vd6DL86Z+ WLfHtrpHiZdW37G+LwXW5wZNv9twVXeeh67vSwEO8axWd7++KB/luDaeuF2fn2t6P+AqXNn0Fgtg /Y6sbrnC4/9x0+XZz6/wHCSI63JW06dQ+P8bOBy/3vThAKyQzzJdvTtWL8/vNgQO3x2bnlN84+gh u8wjltW6WdPvNvyW0UOArfeFpleevnz0kF0liKtzfPX7eeUnMJ9PNf1Mee/oIbvIBz6vxo2a/hQn hsCcbtr0eoRjRw/ZRZ5DXI1n5E21wGqc2HR177Wjh+wal0zn96PVs0ePAHbaldUZ1ZtHD9klgjiv 45o+iWaVv0wUoOr9Ta8+vWz0kF3hOcR5/dvEEFiPW1f/YvSIXeIR4nxObPoT29GjhwCL8cHqlKYP GWefPEKcz6MSQ2C9bln90OgRu0IQ5+MtFsAIZ48esCtcMp3HkdXHq2NGDwEW59KmT8Vy2XSfPEKc x10SQ2CM45p+BrFPgjiP240eACzat48esAsEcR43Hz0AWDS/RHgGgjgPQQRGEsQZHBw9YEfcdKbj PKn6rZmOBWy+h1aPm+E4c/0MWjRB3CwfrN42egSwNncfPYBruGQKAAkiAFSCCACVIAJAJYgAUAki AFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgA UAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFR1cPQAtsrB 6g57t1Oqb6huXB01chTs+Wx1efXR6sLqHdU7qytHjmJ7CCLX5UD1A9VDqjOrY8fOga/JZdUrq+dX L6uuGjuHTeaSKV/Ngeqc6v3VudWDEkO2z7HVg6vfq95XPSI/9/gqfGNwbU6v3lI9szpp8BaYy8nV r1Vvrk4bvIUNJIh8uQdVb6v+3ughsCJ3bvoeP2v0EDaLIHKoc6oXNL1QBnbZ0dULm77noRJErvHA 6mn5nmA5btD0Pf+A0UPYDH74UXWr6jlNL6SBJTlQ/WaeKydBZPKc6oTRI2CQm1bPGD2C8QSRB1T3 Gj0CBrtPdb/RIxhLEPk3owfAhnjC6AGMJYjLdqfqH4weARvijKaPJWShBHHZzh49ADbMg0cPYBxB XLYzRw+ADeN5xAUTxOW6SXX70SNgw3x7ddzoEYwhiMt1ev77w5c7UJ06egRj+IG4XCePHgAb6ltG D2AMQVyu40cPgA3lvrFQfkHwcs31W+7fXv32TMeC/Ti76a1E+3X0DMdgCwnics11deDd1c/NdCzY j9s3TxBdOVso/+EBIEEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEA KkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACo BBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaCq g6MHMMzVMx3npOpBMx0L9uOkmY4z132DLSOIy3XpTMe5294NdsWnRw9gDJdMl+tTowfAhvrk6AGM IYjL9RejB8CGunD0AMYQxOV6V3XF6BGwYa6o3jN6BGMI4nJ9rvrT0SNgw7y96b7BAgnisr1k9ADY MC8ePYBxBHHZXpSXmMMXXV2dO3oE4wjisp1XvWb0CNgQr6rOHz2CcQSRp40eABvi6aMHMJYgco/R A2BDfO/oAYwliMt2fPXPR4+ADXFOddPRIxhHEJftH1fHjR4BG+Im1QNHj2AcQVy2Hxw9ADaM+8SC CeJyHZHnD+HL3bPpvsECCeJy3brpEhFwjeOrk0ePYAxBXK7TRg+ADXX66AGMIYjLdbPRA2BDuW8s lF8QvFxzXS79UNNvzoDRbl+dOMNxvPVioQRxueb6b/+H1Q/PdCzYj9+sHj7DcW44wzHYQi6ZAkCC CACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAki AFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgA UAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAVQdHD2DrHVmdMHoENH0v zuHqmY7DlhHE5fr8TMd58N4NdsVc9w22jEumy3XZ6AGwoS4dPYAxBHG5Pjh6AGyoi0cPYAxBXK4L Rg+ADfXe0QMYQxCX6+LqktEjYMNckvvFYgnisr1+9ADYMK8dPYBxBHHZfnf0ANgw544ewDiCuGwv z+Uh+KL/V71q9AjGEcRlu6J66ugRsCF+Oe9BXDRB5El5mTlcUj159AjGEkQurx4zegQM9hPV34we wViCSNWLc+mU5fqV6qWjRzCeIPJFj6leMXoErNkrqseOHsFmEES+6MrqrOoFo4fAmpxbPajpex8E kb/lc9XDqic0vQIVdtHnq3/dFMPLB29hgwgiX+4L1X+t7pxP7WD3/EHT9/bPN32vw5cIIl/NO6t7 V3evfqf67Ng5cNgur15YnVHdp/qzsXPYVH5BMNflDXu3Y6vva/qhcofqlOqE6vhx0+ArfLL6RHVh 9Y7qj6s/zO//5HoQRK6vy6rf27sB7ByXTAEgQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAq QQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgE EQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJE AKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShAB oBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAqg6OHgALdEp1RnV6dVJ1zN7f/0z1l9V7qjdUfzFk HSyUIMJ63KJ6ZPWw6luv579zQfXc6lnVX61oF7DHJVNYra+vfrW6sPoPXf8YVt22+o9NjxR/pfq6 2dcBXyKIsDoPrs6rfry60T6Oc6PqUdX51Vkz7AKuhSDC/G5Q/ffqt6ubzXjcr69eVP1S7rswO3cq mNfB6reqx6zwHI9rem7xwArPAYsjiDCfI6qnV2ev4VwPqZ66hvPAYggizOfR1SPWeL5HNj0/CcxA EGEet6t+fsB5n1SdOuC8sHMEEebxlPb3StLDdVT15AHnhZ0jiLB/967uMfD83zf4/LATBBH276dG D6h+evQA2HaCCPtzi6ZHaKPdpzpx9AjYZoII+/OANuP9gAer+48eAdtMEGF/Num5u3uOHgDbTBBh f+4wesAhvmP0ANhmggj7c8roAYe4zegBsM0EEQ7f0Y157+FXc9TeDTgMggiHb5Ni+EWCCIdJEOHw fWb0gGuxiZtgKwgiHL7PV58aPeIQn6iuGD0CtpUgwv5cMHrAIc4fPQC2mSDC/rx19IBDbNIW2DqC CPvz2tEDDrFJW2DrCCLsz6vajOcRP139/ugRsM0EEfbn8ur5o0dUz23aAhwmQYT9+8XqyoHnv6L6 hYHnh50giLB/76+eOvD8v1xdNPD8sBMEEebx76sPDDjvRdXPDDgv7BxBhHl8qvqh1vvG+M9XZ1eX rvGcsLMEEebzxuqfVV9Yw7murh5ZvWUN54JFEESY1/ObQnXVCs9xZfWI6jdWeA5YHEGE+T27+oHq 4ys49l9X96/+xwqODYsmiLAar6zutPfXubxs75ivmfGYwB5BhNX5QPX9TY/o9vNc35uq+zU96vzg DLuAa3Fw9ABYgFfs3e5SPay6b3Xqdfw751Wvrp5X/Z+VrgMqQYR1ekvXPFL8hup21a2q4/b+3qXV xdW7m54rBNZIEGGMj1Z/NHoEcA3PIQJAgggAlSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBUgggA lSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBU dXD0AFiob6y+rbpVdcze3/tM9YHqz6uPDNoFiyWIsD7fVT28um/1rdfxz55fvaZ6XvWWFe8CcskU 1uGB1VurN1U/2XXHsOrU6jHVm/du91/ZOqASRFilk6pXVy+u7ryP49yleln1iuqbZ9gFXAtBhNW4 f/X2psujc7lf9X+rM2c8JrBHEGF+5zQ9KjxhBce+WfXS6hErODYsmiDCvB5WPb06sMJzHKyeVf3I Cs8BiyOIMJ8zque0nvvVEdUzqruu4VywCIII8zi+en51wzWe84Z757zJGs8JO0sQYR4/W91ywHlP qn5mwHlh5wgi7N+tqx8beP5HV7cZeH7YCYII+/f4xn7q04HqcQPPDztBEGF/jq4eMnpE06tbjx49 AraZIML+nFkdN3pE0wtr7jN6BGwzQYT9udfoAYfYpC2wdQQR9mc/n1E6t+8cPQC2mSDC/tx29IBD bNIW2DqCCIfvyOqmo0cc4oTW+8EAsFMEEQ7fMdf9j6zdJm6CrSCIcPg+N3rAtfjs6AGwrQQRDt/f tFlRvDxBhMMmiLA/7x894BDvGz0Atpkgwv786egBh3jn6AGwzQQR9uf1owcc4nWjB8A2E0TYn5dU V44e0bThlaNHwDYTRNifD1d/MHpE9erqQ6NHwDYTRNi/Xxw9oPqF0QNg2wki7N/rqtcOPP9rqv81 8PywEwQR5vGTjXkP4OXVowecF3aOIMI8zqv+1YDz/svqvQPOCztHEGE+T6meucbzPa16xhrPBztN EGFeP149fw3neV7TZVpgJoII87qqenj1pBUd/+qmV5T+8N65gJkIIszvC9VPVWdVH53xuB+u/kn1 +KYwAjMSRFidc6vTqie3v1egXl79t71jvXiGXcC1EERYrY9Xj6lOqZ5Ynf81/Lvvqf7d3r/72OqT s68DvuTg6AGwEH9V/ae928nVGdXp1UnVsXv/zKXVB5pC+IbqL9c/E5ZLEGH9Ltq7ARvEJVMASBAB oBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSA ShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAq QQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKjq4OgB/C03rk4YPQJYmxuP HsA1BHEeV8x0nJ/duwF8LT43esAucMl0HpeOHgAs2mWjB+wCQZzHJaMHAIt28egBu0AQ53HB6AHA or139IBdcMToATvi5tWHRo8AFuub8jNo3zxCnMeHq/NGjwAW6d2J4SwEcT6/O3oAsEjnjh6wK1wy nc/J1fuqA6OHAItxVXXb6sLRQ3aBR4jzuah66egRwKKcmxjOxiPEeZ1a/Vl1w9FDgJ13RfVteYXp bFzem9fHqiOru48eAuy8/5znD2flEeL8Dlavr75n9BBgZ72h+ofVlaOH7BJBXI2bVX/SdAkVYE7n VWc0XZFiRl5Usxofq763etvoIcBOeWd178RwJQRxdT5c3aP6tdFDgJ3wzOq789nJKyOIq3VZdU51 ZvXng7cA2+ld1T+qfqz6zOAtO81ziOtzoPrB6lFNr0L1Cl/gq7mq+qPqKdVL9v43KyaIY9y8um91 1+r21SnVTapjR44Chris+nTTG+zfVb2xenX1kZGjluj/A7eiP6AtHfmzAAAAAElFTkSuQmCC " + id="image2981-1" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-7"><tspan + sodipodi:role="line" + id="tspan2985-2" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">3</tspan></text> + </g> + <g + id="g2992-72" + transform="translate(-117.33947,73.967241)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-2" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-6"><tspan + sodipodi:role="line" + id="tspan2985-1" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">4</tspan></text> + </g> + <g + id="g2992-0" + transform="translate(-118.04937,17.044482)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-6" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-1"><tspan + sodipodi:role="line" + id="tspan2985-5" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">5</tspan></text> + </g> + <g + id="g2992-9" + transform="translate(-94.51307,-9.6130091)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-4" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-9"><tspan + sodipodi:role="line" + id="tspan2985-0" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">6</tspan></text> + </g> + <g + id="g3137" + transform="translate(6.1449507,10.235717)" + style="stroke:#0000ff;stroke-opacity:1"> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 161.12836,39.73877 V 54.647494 L 146.163,54.488794 V 33.300302 h 8.7615 l 5.86826,6.195557 h -5.87342 v -6.047936" + id="path3085" + sodipodi:nodetypes="cccccccc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,37.39937 h 4.21162" + id="path3087" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,40.644703 h 4.21162" + id="path3087-7" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,43.555576 h 9.81264" + id="path3087-1" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,46.646723 h 9.81264" + id="path3087-1-1" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,50.449131 h 9.81264" + id="path3087-1-5" + sodipodi:nodetypes="cc" /> + </g> + <rect + style="fill:none;stroke:#000040;stroke-width:0.799999;stroke-dasharray:2.4, 0.799999;stroke-opacity:0.0124995" + id="rect894" + width="171.26611" + height="127.22335" + x="0.13010304" + y="0.24505216" /> + </g> +</svg> diff --git a/doc/20201202_talk/img/consistent_hashing_3.svg b/doc/20201202_talk/img/consistent_hashing_3.svg new file mode 100644 index 00000000..fdfd3efc --- /dev/null +++ b/doc/20201202_talk/img/consistent_hashing_3.svg @@ -0,0 +1,358 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="648" + height="480" + viewBox="0 0 171.45 127" + version="1.1" + id="svg2147" + inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" + sodipodi:docname="consistent_hashing_3.svg"> + <defs + id="defs2141"> + <marker + style="overflow:visible;" + id="marker3465" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3463" /> + </marker> + <marker + style="overflow:visible;" + id="marker3455" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3453" /> + </marker> + <marker + style="overflow:visible;" + id="marker3445" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3443" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow1Mend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3150" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow1Lend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3144" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="166.38273" + inkscape:cy="269.80211" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" + showgrid="false" + units="px" + inkscape:window-width="1404" + inkscape:window-height="1016" + inkscape:window-x="281" + inkscape:window-y="27" + inkscape:window-maximized="0" + showguides="true" + inkscape:guide-bbox="true" /> + <metadata + id="metadata2144"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="g2851" + transform="matrix(0.84882735,0,0,0.84882735,-5.4514578,9.7344105)"> + <circle + style="fill:none;stroke:#000000;stroke-width:1" + id="path2710" + cx="89.153343" + cy="63.810429" + r="51.14566" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 118.92887,33.710015 131.54406,21.284558" + id="path2736" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 130.3168,71.515 17.36133,3.481276" + id="path2736-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 104.71157,102.41933 6.56219,16.44605" + id="path2736-6" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 51.073764,81.65523 35.108111,89.312443" + id="path2736-9" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 54.233873,39.571826 39.643162,29.539572" + id="path2736-3" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 69.962563,25.77499 61.999798,9.959512" + id="path2736-7" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g2992" + transform="translate(-19.258685)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987"><tspan + sodipodi:role="line" + id="tspan2985" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">1</tspan></text> + </g> + <g + id="g2992-5" + transform="translate(-5.5636458,61.815287)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-0" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-4"><tspan + sodipodi:role="line" + id="tspan2985-8" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">2</tspan></text> + </g> + <g + id="g2992-7" + transform="translate(-36.464671,99.052583)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-1" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-7"><tspan + sodipodi:role="line" + id="tspan2985-2" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">3</tspan></text> + </g> + <g + id="g2992-72" + transform="translate(-117.33947,73.967241)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-2" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-6"><tspan + sodipodi:role="line" + id="tspan2985-1" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">4</tspan></text> + </g> + <g + id="g2992-0" + transform="translate(-118.04937,17.044482)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-6" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-1"><tspan + sodipodi:role="line" + id="tspan2985-5" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">5</tspan></text> + </g> + <g + id="g2992-9" + transform="translate(-94.51307,-9.6130091)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-4" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-9"><tspan + sodipodi:role="line" + id="tspan2985-0" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">6</tspan></text> + </g> + <path + style="fill:none;stroke:#0000ff;stroke-width:0.848828;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 104.64946,54.902986 119.22518,51.23513" + id="path2736-1" + sodipodi:nodetypes="cc" /> + <g + id="g3137" + transform="translate(6.1449507,10.235717)" + style="stroke:#0000ff;stroke-opacity:1"> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 161.12836,39.73877 V 54.647494 L 146.163,54.488794 V 33.300302 h 8.7615 l 5.86826,6.195557 h -5.87342 v -6.047936" + id="path3085" + sodipodi:nodetypes="cccccccc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,37.39937 h 4.21162" + id="path3087" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,40.644703 h 4.21162" + id="path3087-7" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,43.555576 h 9.81264" + id="path3087-1" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,46.646723 h 9.81264" + id="path3087-1-1" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,50.449131 h 9.81264" + id="path3087-1-5" + sodipodi:nodetypes="cc" /> + </g> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" + d="m 147.85661,51.721464 c -6.70172,-3.912196 -23.39473,-1.178632 -23.39473,-1.178632" + id="path3139" /> + <rect + style="fill:none;stroke:#000040;stroke-width:0.799999;stroke-dasharray:2.4, 0.799999;stroke-opacity:0.0124995" + id="rect894" + width="171.26611" + height="127.22335" + x="0.13010304" + y="0.24505216" /> + </g> +</svg> diff --git a/doc/20201202_talk/img/consistent_hashing_4.svg b/doc/20201202_talk/img/consistent_hashing_4.svg new file mode 100644 index 00000000..95ed0e02 --- /dev/null +++ b/doc/20201202_talk/img/consistent_hashing_4.svg @@ -0,0 +1,377 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="648" + height="480" + viewBox="0 0 171.45 127" + version="1.1" + id="svg2147" + inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" + sodipodi:docname="consistent_hashing_4.svg"> + <defs + id="defs2141"> + <marker + style="overflow:visible;" + id="marker3465" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3463" /> + </marker> + <marker + style="overflow:visible;" + id="marker3455" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3453" /> + </marker> + <marker + style="overflow:visible;" + id="marker3445" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3443" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow1Mend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + transform="scale(0.4) rotate(180) translate(10,0)" + style="fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt;stroke-opacity:1;fill:#0000ff;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3150" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow1Lend" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + transform="scale(0.8) rotate(180) translate(12.5,0)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1;fill:#000000;fill-opacity:1" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + id="path3144" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="166.38273" + inkscape:cy="269.80211" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" + showgrid="false" + units="px" + inkscape:window-width="1404" + inkscape:window-height="1016" + inkscape:window-x="281" + inkscape:window-y="27" + inkscape:window-maximized="0" + showguides="true" + inkscape:guide-bbox="true" /> + <metadata + id="metadata2144"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + id="g2851" + transform="matrix(0.84882735,0,0,0.84882735,-5.4514578,9.7344105)"> + <circle + style="fill:none;stroke:#000000;stroke-width:1" + id="path2710" + cx="89.153343" + cy="63.810429" + r="51.14566" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 118.92887,33.710015 131.54406,21.284558" + id="path2736" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 130.3168,71.515 17.36133,3.481276" + id="path2736-5" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 104.71157,102.41933 6.56219,16.44605" + id="path2736-6" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 51.073764,81.65523 35.108111,89.312443" + id="path2736-9" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 54.233873,39.571826 39.643162,29.539572" + id="path2736-3" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 69.962563,25.77499 61.999798,9.959512" + id="path2736-7" + sodipodi:nodetypes="cc" /> + </g> + <g + id="g2992" + transform="translate(-19.258685)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987"><tspan + sodipodi:role="line" + id="tspan2985" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">1</tspan></text> + </g> + <g + id="g2992-5" + transform="translate(-5.5636458,61.815287)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-0" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-4"><tspan + sodipodi:role="line" + id="tspan2985-8" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">2</tspan></text> + </g> + <g + id="g2992-7" + transform="translate(-36.464671,99.052583)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcQAAAHECAYAAACnX1ofAAAABmJLR0QA/wD/AP+gvaeTAAAULklE QVR4nO3de7B1d0Hf4U94X0LIBRJRiQyYGJAkiAItYtGAUBAaBLFNIXJxqjQ4VYQpWOnQC1Pb2qk3 phWRq1AVBBEj94sKxaLlVgoiSBIgRkIqF7kmGCAJ6R/rQF4hmPCetfdv772eZ2ZPhkyy1veQs8/n 3WtfzhGxy46pzqjuWN2hum31ddXx1QkDd8Gmu7r6ZHVZ9Ynqgur86h3V66u/HjeNVTli9ABmd5Pq wdUDq3tXR42dAzvnC01hfEn17OqDY+cwF0HcHbepHl39SFMUgdW7qnp19V+q/z14CyzeidXTqyua LvO4ubmNub2kul1srQOjB3DYDlSPr15U3bW6wdg5sHinVudUn63e1BRJtohLptvp1OrXq+8aPQS4 Vv+zelD1sdFDuP4Ecfs8tHpmdfToIcDf6bzqzOqi0UO4flxm2x4Hql+qnpcYwjY4remFNrcZPYTr xyPE7XBkUwj/6eghwNfswuq7qw+PHsLfzSPEzXdM9YrEELbVKdXv5D3BG08QN9uRTTG89+ghwL7c rXpBfuZuNG+72Gy/Wp01egQwi9Oa/pD72tFDuHaCuLl+onri6BHArO5Wvb965+ghfCUvqtlM31O9 rulPk8Bu+Wx1z6Y377NBBHHzfHP11uobRw8BVuZD1V2qi0cP4Rqe4N0sRzV9FJsYwm47semzT48Z PYRrCOJmeWr1naNHAGtxp+o3cqVuY3hRzeb46b0bsByn7/319UNXUPmTyaa4T/XKVvsHlPdWz6ne 0vSJGR9p+pVRwFc6qukN9d9f/WjTJc5Vubo6u+nN+7Bot2n6RPxV/Y62zzX9miiXx+Hw3LDpF29f 0urup5+p/v66viDYRMdV72p1d7IPVHdc21cDu+3Y6oWt7v56cfVNa/tqYIMcUZ3b6u5cF1Qnre2r gWW4QdMrwVd1v31TPvOUBXpiq7tTvaa6+fq+FFiUY5s+aWZV99/n5vUdLMgDq6tazZ3pT6obre9L gUU6ufpoq4viE9b3pcA4p1WfbDV3okuqW6zvS4FFu1fTK7VXcV++qukPzrCzTmh6bm8Vd6DL86Z+ WLfHtrpHiZdW37G+LwXW5wZNv9twVXeeh67vSwEO8axWd7++KB/luDaeuF2fn2t6P+AqXNn0Fgtg /Y6sbrnC4/9x0+XZz6/wHCSI63JW06dQ+P8bOBy/3vThAKyQzzJdvTtWL8/vNgQO3x2bnlN84+gh u8wjltW6WdPvNvyW0UOArfeFpleevnz0kF0liKtzfPX7eeUnMJ9PNf1Mee/oIbvIBz6vxo2a/hQn hsCcbtr0eoRjRw/ZRZ5DXI1n5E21wGqc2HR177Wjh+wal0zn96PVs0ePAHbaldUZ1ZtHD9klgjiv 45o+iWaVv0wUoOr9Ta8+vWz0kF3hOcR5/dvEEFiPW1f/YvSIXeIR4nxObPoT29GjhwCL8cHqlKYP GWefPEKcz6MSQ2C9bln90OgRu0IQ5+MtFsAIZ48esCtcMp3HkdXHq2NGDwEW59KmT8Vy2XSfPEKc x10SQ2CM45p+BrFPgjiP240eACzat48esAsEcR43Hz0AWDS/RHgGgjgPQQRGEsQZHBw9YEfcdKbj PKn6rZmOBWy+h1aPm+E4c/0MWjRB3CwfrN42egSwNncfPYBruGQKAAkiAFSCCACVIAJAJYgAUAki AFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgA UAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFR1cPQAtsrB 6g57t1Oqb6huXB01chTs+Wx1efXR6sLqHdU7qytHjmJ7CCLX5UD1A9VDqjOrY8fOga/JZdUrq+dX L6uuGjuHTeaSKV/Ngeqc6v3VudWDEkO2z7HVg6vfq95XPSI/9/gqfGNwbU6v3lI9szpp8BaYy8nV r1Vvrk4bvIUNJIh8uQdVb6v+3ughsCJ3bvoeP2v0EDaLIHKoc6oXNL1QBnbZ0dULm77noRJErvHA 6mn5nmA5btD0Pf+A0UPYDH74UXWr6jlNL6SBJTlQ/WaeKydBZPKc6oTRI2CQm1bPGD2C8QSRB1T3 Gj0CBrtPdb/RIxhLEPk3owfAhnjC6AGMJYjLdqfqH4weARvijKaPJWShBHHZzh49ADbMg0cPYBxB XLYzRw+ADeN5xAUTxOW6SXX70SNgw3x7ddzoEYwhiMt1ev77w5c7UJ06egRj+IG4XCePHgAb6ltG D2AMQVyu40cPgA3lvrFQfkHwcs31W+7fXv32TMeC/Ti76a1E+3X0DMdgCwnics11deDd1c/NdCzY j9s3TxBdOVso/+EBIEEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEA KkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACo BBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaASRACoBBEAKkEEgEoQAaCq g6MHMMzVMx3npOpBMx0L9uOkmY4z132DLSOIy3XpTMe5294NdsWnRw9gDJdMl+tTowfAhvrk6AGM IYjL9RejB8CGunD0AMYQxOV6V3XF6BGwYa6o3jN6BGMI4nJ9rvrT0SNgw7y96b7BAgnisr1k9ADY MC8ePYBxBHHZXpSXmMMXXV2dO3oE4wjisp1XvWb0CNgQr6rOHz2CcQSRp40eABvi6aMHMJYgco/R A2BDfO/oAYwliMt2fPXPR4+ADXFOddPRIxhHEJftH1fHjR4BG+Im1QNHj2AcQVy2Hxw9ADaM+8SC CeJyHZHnD+HL3bPpvsECCeJy3brpEhFwjeOrk0ePYAxBXK7TRg+ADXX66AGMIYjLdbPRA2BDuW8s lF8QvFxzXS79UNNvzoDRbl+dOMNxvPVioQRxueb6b/+H1Q/PdCzYj9+sHj7DcW44wzHYQi6ZAkCC CACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAki AFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgA UAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAJYgAUAkiAFSCCACVIAJAVQdHD2DrHVmdMHoENH0v zuHqmY7DlhHE5fr8TMd58N4NdsVc9w22jEumy3XZ6AGwoS4dPYAxBHG5Pjh6AGyoi0cPYAxBXK4L Rg+ADfXe0QMYQxCX6+LqktEjYMNckvvFYgnisr1+9ADYMK8dPYBxBHHZfnf0ANgw544ewDiCuGwv z+Uh+KL/V71q9AjGEcRlu6J66ugRsCF+Oe9BXDRB5El5mTlcUj159AjGEkQurx4zegQM9hPV34we wViCSNWLc+mU5fqV6qWjRzCeIPJFj6leMXoErNkrqseOHsFmEES+6MrqrOoFo4fAmpxbPajpex8E kb/lc9XDqic0vQIVdtHnq3/dFMPLB29hgwgiX+4L1X+t7pxP7WD3/EHT9/bPN32vw5cIIl/NO6t7 V3evfqf67Ng5cNgur15YnVHdp/qzsXPYVH5BMNflDXu3Y6vva/qhcofqlOqE6vhx0+ArfLL6RHVh 9Y7qj6s/zO//5HoQRK6vy6rf27sB7ByXTAEgQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAq QQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgE EQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJE AKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShAB oBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAqg6OHgALdEp1RnV6dVJ1zN7f/0z1l9V7qjdUfzFk HSyUIMJ63KJ6ZPWw6luv579zQfXc6lnVX61oF7DHJVNYra+vfrW6sPoPXf8YVt22+o9NjxR/pfq6 2dcBXyKIsDoPrs6rfry60T6Oc6PqUdX51Vkz7AKuhSDC/G5Q/ffqt6ubzXjcr69eVP1S7rswO3cq mNfB6reqx6zwHI9rem7xwArPAYsjiDCfI6qnV2ev4VwPqZ66hvPAYggizOfR1SPWeL5HNj0/CcxA EGEet6t+fsB5n1SdOuC8sHMEEebxlPb3StLDdVT15AHnhZ0jiLB/967uMfD83zf4/LATBBH276dG D6h+evQA2HaCCPtzi6ZHaKPdpzpx9AjYZoII+/OANuP9gAer+48eAdtMEGF/Num5u3uOHgDbTBBh f+4wesAhvmP0ANhmggj7c8roAYe4zegBsM0EEQ7f0Y157+FXc9TeDTgMggiHb5Ni+EWCCIdJEOHw fWb0gGuxiZtgKwgiHL7PV58aPeIQn6iuGD0CtpUgwv5cMHrAIc4fPQC2mSDC/rx19IBDbNIW2DqC CPvz2tEDDrFJW2DrCCLsz6vajOcRP139/ugRsM0EEfbn8ur5o0dUz23aAhwmQYT9+8XqyoHnv6L6 hYHnh50giLB/76+eOvD8v1xdNPD8sBMEEebx76sPDDjvRdXPDDgv7BxBhHl8qvqh1vvG+M9XZ1eX rvGcsLMEEebzxuqfVV9Yw7murh5ZvWUN54JFEESY1/ObQnXVCs9xZfWI6jdWeA5YHEGE+T27+oHq 4ys49l9X96/+xwqODYsmiLAar6zutPfXubxs75ivmfGYwB5BhNX5QPX9TY/o9vNc35uq+zU96vzg DLuAa3Fw9ABYgFfs3e5SPay6b3Xqdfw751Wvrp5X/Z+VrgMqQYR1ekvXPFL8hup21a2q4/b+3qXV xdW7m54rBNZIEGGMj1Z/NHoEcA3PIQJAgggAlSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBUgggA lSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBUgggAlSACQCWIAFAJIgBU dXD0AFiob6y+rbpVdcze3/tM9YHqz6uPDNoFiyWIsD7fVT28um/1rdfxz55fvaZ6XvWWFe8CcskU 1uGB1VurN1U/2XXHsOrU6jHVm/du91/ZOqASRFilk6pXVy+u7ryP49yleln1iuqbZ9gFXAtBhNW4 f/X2psujc7lf9X+rM2c8JrBHEGF+5zQ9KjxhBce+WfXS6hErODYsmiDCvB5WPb06sMJzHKyeVf3I Cs8BiyOIMJ8zque0nvvVEdUzqruu4VywCIII8zi+en51wzWe84Z757zJGs8JO0sQYR4/W91ywHlP qn5mwHlh5wgi7N+tqx8beP5HV7cZeH7YCYII+/f4xn7q04HqcQPPDztBEGF/jq4eMnpE06tbjx49 AraZIML+nFkdN3pE0wtr7jN6BGwzQYT9udfoAYfYpC2wdQQR9mc/n1E6t+8cPQC2mSDC/tx29IBD bNIW2DqCCIfvyOqmo0cc4oTW+8EAsFMEEQ7fMdf9j6zdJm6CrSCIcPg+N3rAtfjs6AGwrQQRDt/f tFlRvDxBhMMmiLA/7x894BDvGz0Atpkgwv786egBh3jn6AGwzQQR9uf1owcc4nWjB8A2E0TYn5dU V44e0bThlaNHwDYTRNifD1d/MHpE9erqQ6NHwDYTRNi/Xxw9oPqF0QNg2wki7N/rqtcOPP9rqv81 8PywEwQR5vGTjXkP4OXVowecF3aOIMI8zqv+1YDz/svqvQPOCztHEGE+T6meucbzPa16xhrPBztN EGFeP149fw3neV7TZVpgJoII87qqenj1pBUd/+qmV5T+8N65gJkIIszvC9VPVWdVH53xuB+u/kn1 +KYwAjMSRFidc6vTqie3v1egXl79t71jvXiGXcC1EERYrY9Xj6lOqZ5Ynf81/Lvvqf7d3r/72OqT s68DvuTg6AGwEH9V/ae928nVGdXp1UnVsXv/zKXVB5pC+IbqL9c/E5ZLEGH9Ltq7ARvEJVMASBAB oBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSA ShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAq QQSAShABoBJEAKgEEQAqQQSAShABoBJEAKgEEQAqQQSAShABoBJEAKjq4OgB/C03rk4YPQJYmxuP HsA1BHEeV8x0nJ/duwF8LT43esAucMl0HpeOHgAs2mWjB+wCQZzHJaMHAIt28egBu0AQ53HB6AHA or139IBdcMToATvi5tWHRo8AFuub8jNo3zxCnMeHq/NGjwAW6d2J4SwEcT6/O3oAsEjnjh6wK1wy nc/J1fuqA6OHAItxVXXb6sLRQ3aBR4jzuah66egRwKKcmxjOxiPEeZ1a/Vl1w9FDgJ13RfVteYXp bFzem9fHqiOru48eAuy8/5znD2flEeL8Dlavr75n9BBgZ72h+ofVlaOH7BJBXI2bVX/SdAkVYE7n VWc0XZFiRl5Usxofq763etvoIcBOeWd178RwJQRxdT5c3aP6tdFDgJ3wzOq789nJKyOIq3VZdU51 ZvXng7cA2+ld1T+qfqz6zOAtO81ziOtzoPrB6lFNr0L1Cl/gq7mq+qPqKdVL9v43KyaIY9y8um91 1+r21SnVTapjR44Chris+nTTG+zfVb2xenX1kZGjluj/A7eiP6AtHfmzAAAAAElFTkSuQmCC " + id="image2981-1" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-7"><tspan + sodipodi:role="line" + id="tspan2985-2" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">3</tspan></text> + </g> + <g + id="g2992-72" + transform="translate(-117.33947,73.967241)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-2" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-6"><tspan + sodipodi:role="line" + id="tspan2985-1" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">4</tspan></text> + </g> + <g + id="g2992-0" + transform="translate(-118.04937,17.044482)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-6" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-1"><tspan + sodipodi:role="line" + id="tspan2985-5" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">5</tspan></text> + </g> + <g + id="g2992-9" + transform="translate(-94.51307,-9.6130091)"> + <image + width="16.223312" + height="16.223312" + preserveAspectRatio="none" + xlink:href="data:image/png;base64,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 " + id="image2981-4" + x="125.46542" + y="11.578013" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="140.23157" + y="26.731647" + id="text2987-9"><tspan + sodipodi:role="line" + id="tspan2985-0" + x="140.23157" + y="26.731647" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono';stroke-width:0.264583">6</tspan></text> + </g> + <path + style="fill:none;stroke:#0000ff;stroke-width:0.848828;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 104.64946,54.902986 119.22518,51.23513" + id="path2736-1" + sodipodi:nodetypes="cc" /> + <g + id="g3137" + transform="translate(6.1449507,10.235717)" + style="stroke:#0000ff;stroke-opacity:1"> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 161.12836,39.73877 V 54.647494 L 146.163,54.488794 V 33.300302 h 8.7615 l 5.86826,6.195557 h -5.87342 v -6.047936" + id="path3085" + sodipodi:nodetypes="cccccccc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,37.39937 h 4.21162" + id="path3087" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,40.644703 h 4.21162" + id="path3087-7" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,43.555576 h 9.81264" + id="path3087-1" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,46.646723 h 9.81264" + id="path3087-1-1" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 148.46975,50.449131 h 9.81264" + id="path3087-1-5" + sodipodi:nodetypes="cc" /> + </g> + <path + style="fill:none;stroke:#0000ff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" + d="m 147.85661,51.721464 c -6.70172,-3.912196 -23.39473,-1.178632 -23.39473,-1.178632" + id="path3139" /> + <g + id="g3602" + style="stroke:#0000ff;stroke-opacity:1"> + <path + style="fill:none;stroke:#0000ff;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3465);stroke-miterlimit:4;stroke-dasharray:2.4, 0.80000000000000004;stroke-dashoffset:0" + d="m 99.774673,58.026576 c -5.092676,4.046769 -2.589217,10.390276 3.295517,11.307367" + id="path3437" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3455);stroke-miterlimit:4;stroke-dasharray:2.4, 0.80000000000000004;stroke-dashoffset:0" + d="M 98.854842,57.027565 C 87.49604,65.49508 80.412608,80.588074 82.926734,90.302514" + id="path3439" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#0000ff;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#marker3445);stroke-miterlimit:4;stroke-dasharray:2.4, 0.80000000000000004;stroke-dashoffset:0" + d="M 98.611748,55.797585 C 83.469402,57.101491 46.01116,75.338227 43.693127,76.144807" + id="path3441" + sodipodi:nodetypes="cc" /> + </g> + <rect + style="fill:none;stroke:#000040;stroke-width:0.799999;stroke-dasharray:2.4, 0.799999;stroke-opacity:0.0124995" + id="rect894" + width="171.26611" + height="127.22335" + x="0.13010304" + y="0.24505216" /> + </g> +</svg> diff --git a/doc/20201202_talk/img/dc.jpg b/doc/20201202_talk/img/dc.jpg Binary files differnew file mode 100644 index 00000000..52cb1e70 --- /dev/null +++ b/doc/20201202_talk/img/dc.jpg diff --git a/doc/20201202_talk/img/death.jpg b/doc/20201202_talk/img/death.jpg Binary files differnew file mode 100644 index 00000000..2ffa9180 --- /dev/null +++ b/doc/20201202_talk/img/death.jpg diff --git a/doc/20201202_talk/img/garage_distributed.svg b/doc/20201202_talk/img/garage_distributed.svg new file mode 100644 index 00000000..2db03626 --- /dev/null +++ b/doc/20201202_talk/img/garage_distributed.svg @@ -0,0 +1,404 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="480" + height="480" + viewBox="0 0 127 127" + version="1.1" + id="svg8" + inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" + sodipodi:docname="garage_distributed.svg"> + <defs + id="defs2" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.979899" + inkscape:cx="171.34852" + inkscape:cy="170.69443" + inkscape:document-units="mm" + inkscape:current-layer="layer1-3" + inkscape:document-rotation="0" + showgrid="false" + units="px" + inkscape:window-width="1404" + inkscape:window-height="1016" + inkscape:window-x="103" + inkscape:window-y="27" + inkscape:window-maximized="0" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <g + inkscape:label="Layer 1" + id="layer1-3" + transform="matrix(0.42851498,0,0,0.42851498,24.079728,-24.925134)"> + <path + style="fill:none;stroke:#000000;stroke-width:2.065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 66.78016,80.71889 99.921832,61.598165 132.84481,80.509232 V 127.38418 H 66.701651 Z" + id="path124" + sodipodi:nodetypes="cccccc" /> + <g + id="g1106-5" + transform="matrix(0,0.95201267,-0.95201267,0,194.01664,-57.627274)" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <g + id="g1061-3" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path956-5" + cx="168.8569" + cy="92.889587" + r="13.125794" /> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path958-6" + cx="168.77444" + cy="92.702293" + r="3.0778286" /> + <path + id="path960-2" + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 169.46072,82.84435 c 4.95795,0.336608 8.87296,4.341959 9.09638,9.306301" + sodipodi:nodetypes="cc" /> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 154.67824,112.84018 11.89881,-13.038071 c 1.46407,-1.552664 3.79541,0.878511 2.81832,2.089181 l -10.57965,14.481 c -1.8851,2.02632 -6.10786,-1.06119 -4.13748,-3.53211 z" + id="path964-9" + sodipodi:nodetypes="ccccc" /> + <g + id="g1071-1" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none" /> + <g + id="g1065-3" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect949-6" + width="35.576611" + height="48.507355" + x="150.9623" + y="74.698929" + ry="2.7302756" /> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 150.76919,106.16944 6.36181,-0.0223 c 2.53845,3.46232 6.29787,4.20243 10.1055,4.40362 l 0.0176,13.09251" + id="path1033-0" + sodipodi:nodetypes="cccc" /> + </g> + </g> + </g> + <g + inkscape:label="Layer 1" + id="layer1-3-5" + transform="matrix(0.42851499,0,0,0.42851499,68.181495,12.180995)"> + <path + style="fill:none;stroke:#000000;stroke-width:2.065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 66.78016,73.340623 99.921832,54.219898 132.84481,73.130965 V 120.00591 H 66.701651 Z" + id="path124-6" + sodipodi:nodetypes="cccccc" /> + <g + id="g1106-5-2" + transform="matrix(0,0.95201267,-0.95201267,0,194.01664,-65.058377)" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <g + id="g1061-3-9" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path956-5-1" + cx="168.8569" + cy="92.889587" + r="13.125794" /> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path958-6-2" + cx="168.77444" + cy="92.702293" + r="3.0778286" /> + <path + id="path960-2-7" + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 169.46072,82.84435 c 4.95795,0.336608 8.87296,4.341959 9.09638,9.306301" + sodipodi:nodetypes="cc" /> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 154.67824,112.84018 11.89881,-13.038071 c 1.46407,-1.552664 3.79541,0.878511 2.81832,2.089181 l -10.57965,14.481 c -1.8851,2.02632 -6.10786,-1.06119 -4.13748,-3.53211 z" + id="path964-9-0" + sodipodi:nodetypes="ccccc" /> + <g + id="g1071-1-9" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none" /> + <g + id="g1065-3-3" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect949-6-6" + width="35.576611" + height="48.507355" + x="150.9623" + y="74.698929" + ry="2.7302756" /> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 150.76919,106.16944 6.36181,-0.0223 c 2.53845,3.46232 6.29787,4.20243 10.1055,4.40362 l 0.0176,13.09251" + id="path1033-0-0" + sodipodi:nodetypes="cccc" /> + </g> + </g> + </g> + <g + inkscape:label="Layer 1" + id="layer1-3-6" + transform="matrix(0.42851499,0,0,0.42851499,-20.953301,19.351613)"> + <path + style="fill:none;stroke:#000000;stroke-width:2.065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 66.78016,73.340623 99.921832,54.219898 132.84481,73.130965 V 120.00591 H 66.701651 Z" + id="path124-2" + sodipodi:nodetypes="cccccc" /> + <g + id="g1106-5-6" + transform="matrix(0,0.95201267,-0.95201267,0,194.01664,-65.058377)" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <g + id="g1061-3-1" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path956-5-8" + cx="168.8569" + cy="92.889587" + r="13.125794" /> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path958-6-7" + cx="168.77444" + cy="92.702293" + r="3.0778286" /> + <path + id="path960-2-9" + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 169.46072,82.84435 c 4.95795,0.336608 8.87296,4.341959 9.09638,9.306301" + sodipodi:nodetypes="cc" /> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 154.67824,112.84018 11.89881,-13.038071 c 1.46407,-1.552664 3.79541,0.878511 2.81832,2.089181 l -10.57965,14.481 c -1.8851,2.02632 -6.10786,-1.06119 -4.13748,-3.53211 z" + id="path964-9-2" + sodipodi:nodetypes="ccccc" /> + <g + id="g1071-1-0" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none" /> + <g + id="g1065-3-2" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect949-6-3" + width="35.576611" + height="48.507355" + x="150.9623" + y="74.698929" + ry="2.7302756" /> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 150.76919,106.16944 6.36181,-0.0223 c 2.53845,3.46232 6.29787,4.20243 10.1055,4.40362 l 0.0176,13.09251" + id="path1033-0-7" + sodipodi:nodetypes="cccc" /> + </g> + </g> + </g> + <g + inkscape:label="Layer 1" + id="layer1-3-59" + transform="matrix(0.42851499,0,0,0.42851499,51.949789,75.218277)"> + <path + style="fill:none;stroke:#000000;stroke-width:2.065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 66.78016,73.340623 99.921832,54.219898 132.84481,73.130965 V 120.00591 H 66.701651 Z" + id="path124-22" + sodipodi:nodetypes="cccccc" /> + <g + id="g1106-5-8" + transform="matrix(0,0.95201267,-0.95201267,0,194.01664,-65.058377)" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <g + id="g1061-3-97" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path956-5-3" + cx="168.8569" + cy="92.889587" + r="13.125794" /> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path958-6-6" + cx="168.77444" + cy="92.702293" + r="3.0778286" /> + <path + id="path960-2-1" + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 169.46072,82.84435 c 4.95795,0.336608 8.87296,4.341959 9.09638,9.306301" + sodipodi:nodetypes="cc" /> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 154.67824,112.84018 11.89881,-13.038071 c 1.46407,-1.552664 3.79541,0.878511 2.81832,2.089181 l -10.57965,14.481 c -1.8851,2.02632 -6.10786,-1.06119 -4.13748,-3.53211 z" + id="path964-9-29" + sodipodi:nodetypes="ccccc" /> + <g + id="g1071-1-3" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none" /> + <g + id="g1065-3-1" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect949-6-9" + width="35.576611" + height="48.507355" + x="150.9623" + y="74.698929" + ry="2.7302756" /> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 150.76919,106.16944 6.36181,-0.0223 c 2.53845,3.46232 6.29787,4.20243 10.1055,4.40362 l 0.0176,13.09251" + id="path1033-0-4" + sodipodi:nodetypes="cccc" /> + </g> + </g> + </g> + <g + inkscape:label="Layer 1" + id="layer1-3-7" + transform="matrix(0.42851499,0,0,0.42851499,-1.173447,75.150288)"> + <path + style="fill:none;stroke:#000000;stroke-width:2.065;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 66.78016,73.340623 99.921832,54.219898 132.84481,73.130965 V 120.00591 H 66.701651 Z" + id="path124-8" + sodipodi:nodetypes="cccccc" /> + <g + id="g1106-5-4" + transform="matrix(0,0.95201267,-0.95201267,0,194.01664,-65.058377)" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <g + id="g1061-3-5" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path956-5-0" + cx="168.8569" + cy="92.889587" + r="13.125794" /> + <circle + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path958-6-3" + cx="168.77444" + cy="92.702293" + r="3.0778286" /> + <path + id="path960-2-6" + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 169.46072,82.84435 c 4.95795,0.336608 8.87296,4.341959 9.09638,9.306301" + sodipodi:nodetypes="cc" /> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 154.67824,112.84018 11.89881,-13.038071 c 1.46407,-1.552664 3.79541,0.878511 2.81832,2.089181 l -10.57965,14.481 c -1.8851,2.02632 -6.10786,-1.06119 -4.13748,-3.53211 z" + id="path964-9-1" + sodipodi:nodetypes="ccccc" /> + <g + id="g1071-1-06" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none" /> + <g + id="g1065-3-32" + style="stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="rect949-6-0" + width="35.576611" + height="48.507355" + x="150.9623" + y="74.698929" + ry="2.7302756" /> + <path + style="fill:none;stroke:#000000;stroke-width:2.17959;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 150.76919,106.16944 6.36181,-0.0223 c 2.53845,3.46232 6.29787,4.20243 10.1055,4.40362 l 0.0176,13.09251" + id="path1033-0-6" + sodipodi:nodetypes="cccc" /> + </g> + </g> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 35.21897,43.254452 46.803736,32.872178" + id="path1045" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 85.798392,29.613721 10.944185,7.688225" + id="path1047" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 107.59813,71.879386 -6.2564,22.552649" + id="path1049" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 75.866769,119.14997 61.529058,118.74136" + id="path1051" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 29.414211,98.256475 C 29.681482,96.462435 21.07721,77.446418 21.07721,77.446418" + id="path1053" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 39.447822,61.341585 90.641428,57.562618" + id="path1055" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 90.440176,64.423751 54.180736,100.02908" + id="path1057" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 47.163557,96.532205 61.535331,33.078667" + id="path1059" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 71.396211,33.058731 15.77285,60.595014" + id="path1061" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="M 79.384641,100.96895 41.150775,67.902625" + id="path1063" /> + </g> +</svg> diff --git a/doc/20201202_talk/img/garage_tables.svg b/doc/20201202_talk/img/garage_tables.svg new file mode 100644 index 00000000..fc3d8fc5 --- /dev/null +++ b/doc/20201202_talk/img/garage_tables.svg @@ -0,0 +1,502 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="850" + height="480" + viewBox="0 0 224.89584 127" + version="1.1" + id="svg8" + inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)" + sodipodi:docname="garage_tables.svg"> + <defs + id="defs2"> + <marker + style="overflow:visible" + id="marker1262" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path1260" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Mend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Mend" + inkscape:isstock="true" + inkscape:collect="always"> + <path + transform="matrix(-0.4,0,0,-0.4,-4,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path965" /> + </marker> + <marker + style="overflow:visible" + id="Arrow1Lend" + refX="0" + refY="0" + orient="auto" + inkscape:stockid="Arrow1Lend" + inkscape:isstock="true"> + <path + transform="matrix(-0.8,0,0,-0.8,-10,0)" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + d="M 0,0 5,-5 -12.5,0 5,5 Z" + id="path959" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.98994949" + inkscape:cx="381.09221" + inkscape:cy="219.5592" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + inkscape:document-rotation="0" + showgrid="false" + units="px" + inkscape:window-width="1867" + inkscape:window-height="1016" + inkscape:window-x="53" + inkscape:window-y="27" + inkscape:window-maximized="1" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1"> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="39.570904" + y="38.452755" + id="text2025"><tspan + sodipodi:role="line" + id="tspan2023" + x="39.570904" + y="38.452755" + style="font-size:5.64444px;stroke-width:0.264583" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="101.95796" + y="92.835831" + id="text2139"><tspan + sodipodi:role="line" + id="tspan2137" + x="101.95796" + y="92.835831" + style="stroke-width:0.264583"> </tspan></text> + <g + id="g2316" + transform="translate(-11.455511,1.5722486)"> + <g + id="g2277"> + <rect + style="fill:none;stroke:#000000;stroke-width:0.8;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833" + width="47.419891" + height="95.353409" + x="18.534418" + y="24.42766" /> + <rect + style="fill:none;stroke:#000000;stroke-width:0.799999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833-3" + width="47.419891" + height="86.973076" + x="18.534418" + y="32.807987" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="32.250839" + y="29.894743" + id="text852"><tspan + sodipodi:role="line" + id="tspan850" + x="32.250839" + y="29.894743" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">Object</tspan></text> + </g> + <g + id="g2066" + transform="translate(-2.1807817,-3.0621439)"> + <g + id="g1969" + transform="matrix(0.12763631,0,0,0.12763631,0.7215051,24.717273)" + style="fill:#ff6600;fill-opacity:1;stroke:none;stroke-opacity:1"> + <path + style="fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" + d="m 203.71837,154.80038 c -1.11451,3.75057 -2.45288,5.84095 -5.11132,7.98327 -2.2735,1.83211 -4.66721,2.65982 -8.09339,2.79857 -2.59227,0.10498 -2.92868,0.0577 -5.02863,-0.70611 -3.99215,-1.45212 -7.1627,-4.65496 -8.48408,-8.57046 -1.28374,-3.80398 -0.61478,-8.68216 1.64793,-12.01698 0.87317,-1.28689 3.15089,-3.48326 4.18771,-4.03815 l 0.53332,-28.51234 5.78454,-5.09197 6.95158,6.16704 -3.21112,3.49026 3.17616,3.45499 -3.17616,3.40822 2.98973,3.28645 -3.24843,3.3829 4.49203,4.58395 0.0516,5.69106 c 1.06874,0.64848 3.81974,3.24046 4.69548,4.56257 0.452,0.68241 1.06834,2.0197 1.36962,2.97176 0.62932,1.98864 0.88051,5.785 0.47342,7.15497 z m -10.0406,2.32604 c -0.88184,-3.17515 -4.92402,-3.78864 -6.75297,-1.02492 -0.58328,0.8814 -0.6898,1.28852 -0.58362,2.23056 0.26492,2.35041 2.45434,3.95262 4.60856,3.37255 1.19644,-0.32217 2.39435,-1.44872 2.72875,-2.56621 0.30682,-1.02529 0.30686,-0.9045 -7.9e-4,-2.01198 z" + id="path1971" + sodipodi:nodetypes="ssscsscccccccccccssscsssscc" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="28.809687" + y="44.070885" + id="text852-9"><tspan + sodipodi:role="line" + id="tspan850-4" + x="28.809687" + y="44.070885" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">bucket </tspan></text> + </g> + <g + id="g2066-7" + transform="translate(-2.1807817,6.2627616)"> + <g + id="g1969-8" + transform="matrix(0.12763631,0,0,0.12763631,0.7215051,24.717273)" + style="fill:#ff6600;fill-opacity:1;stroke:none;stroke-opacity:1"> + <path + style="fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" + d="m 203.71837,154.80038 c -1.11451,3.75057 -2.45288,5.84095 -5.11132,7.98327 -2.2735,1.83211 -4.66721,2.65982 -8.09339,2.79857 -2.59227,0.10498 -2.92868,0.0577 -5.02863,-0.70611 -3.99215,-1.45212 -7.1627,-4.65496 -8.48408,-8.57046 -1.28374,-3.80398 -0.61478,-8.68216 1.64793,-12.01698 0.87317,-1.28689 3.15089,-3.48326 4.18771,-4.03815 l 0.53332,-28.51234 5.78454,-5.09197 6.95158,6.16704 -3.21112,3.49026 3.17616,3.45499 -3.17616,3.40822 2.98973,3.28645 -3.24843,3.3829 4.49203,4.58395 0.0516,5.69106 c 1.06874,0.64848 3.81974,3.24046 4.69548,4.56257 0.452,0.68241 1.06834,2.0197 1.36962,2.97176 0.62932,1.98864 0.88051,5.785 0.47342,7.15497 z m -10.0406,2.32604 c -0.88184,-3.17515 -4.92402,-3.78864 -6.75297,-1.02492 -0.58328,0.8814 -0.6898,1.28852 -0.58362,2.23056 0.26492,2.35041 2.45434,3.95262 4.60856,3.37255 1.19644,-0.32217 2.39435,-1.44872 2.72875,-2.56621 0.30682,-1.02529 0.30686,-0.9045 -7.9e-4,-2.01198 z" + id="path1971-4" + sodipodi:nodetypes="ssscsscccccccccccssscsssscc" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="28.809687" + y="44.070885" + id="text852-9-5"><tspan + sodipodi:role="line" + id="tspan850-4-0" + x="28.809687" + y="44.070885" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">file path </tspan></text> + </g> + <g + id="g2161" + transform="translate(-62.264403,-59.333115)"> + <g + id="g2271" + transform="translate(0,67.042823)"> + <rect + style="fill:none;stroke:#000000;stroke-width:0.799999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833-6" + width="39.008453" + height="16.775949" + x="84.896881" + y="90.266838" /> + <rect + style="fill:none;stroke:#000000;stroke-width:0.799999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833-3-1" + width="39.008453" + height="8.673645" + x="84.896881" + y="98.369141" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="89.826942" + y="96.212921" + id="text852-0"><tspan + sodipodi:role="line" + id="tspan850-6" + x="89.826942" + y="96.212921" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">Version 1</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="89.826942" + y="104.71013" + id="text852-0-3"><tspan + sodipodi:role="line" + id="tspan850-6-2" + x="89.826942" + y="104.71013" + style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';fill:#4d4d4d;stroke-width:0.264583">deleted</tspan></text> + </g> + </g> + <g + id="g2263" + transform="translate(0,-22.791204)"> + <g + id="g2161-1" + transform="translate(-62.264403,-10.910843)"> + <rect + style="fill:none;stroke:#000000;stroke-width:0.799999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833-6-5" + width="39.008453" + height="36.749603" + x="84.896881" + y="90.266838" /> + <rect + style="fill:none;stroke:#000000;stroke-width:0.799999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833-3-1-5" + width="39.008453" + height="28.647301" + x="84.896881" + y="98.369141" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="89.826942" + y="96.212921" + id="text852-0-4"><tspan + sodipodi:role="line" + id="tspan850-6-7" + x="89.826942" + y="96.212921" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">Version 2</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="89.826942" + y="104.71013" + id="text852-0-3-6"><tspan + sodipodi:role="line" + id="tspan850-6-2-5" + x="89.826942" + y="104.71013" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';fill:#000000;stroke-width:0.264583">id</tspan></text> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="27.56254" + y="100.34132" + id="text852-0-3-6-6"><tspan + sodipodi:role="line" + id="tspan850-6-2-5-9" + x="27.56254" + y="100.34132" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';fill:#000000;stroke-width:0.264583">size</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="27.56254" + y="106.90263" + id="text852-0-3-6-6-3"><tspan + sodipodi:role="line" + id="tspan850-6-2-5-9-7" + x="27.56254" + y="106.90263" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';fill:#000000;stroke-width:0.264583">MIME type</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="27.56254" + y="111.92816" + id="text852-0-3-6-6-3-4"><tspan + sodipodi:role="line" + id="tspan850-6-2-5-9-7-5" + x="27.56254" + y="111.92816" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';fill:#000000;stroke-width:0.264583">...</tspan></text> + </g> + </g> + <g + id="g898" + transform="translate(-6.2484318,29.95006)"> + <rect + style="fill:none;stroke:#000000;stroke-width:0.799999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833-7" + width="47.419891" + height="44.007515" + x="95.443573" + y="24.42766" /> + <rect + style="fill:none;stroke:#000000;stroke-width:0.799999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833-3-4" + width="47.419891" + height="35.627186" + x="95.443573" + y="32.807987" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="107.46638" + y="29.894743" + id="text852-4"><tspan + sodipodi:role="line" + id="tspan850-3" + x="107.46638" + y="29.894743" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">Version</tspan></text> + <path + style="fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.0337704;stroke-opacity:1" + d="m 102.90563,41.413279 c -0.14226,0.478709 -0.31308,0.745518 -0.65239,1.018956 -0.29019,0.233843 -0.59571,0.339489 -1.03301,0.357199 -0.33087,0.0134 -0.37381,0.0074 -0.64184,-0.09013 -0.50954,-0.185343 -0.914221,-0.594142 -1.082877,-1.093901 -0.163852,-0.485526 -0.07847,-1.108159 0.210335,-1.533803 0.111448,-0.164254 0.402172,-0.444591 0.534502,-0.515415 l 0.0681,-3.63921 0.73832,-0.64992 0.88727,0.787138 -0.40985,0.445484 0.40539,0.440982 -0.40539,0.435013 0.3816,0.41947 -0.41462,0.431781 0.57335,0.585078 0.007,0.726386 c 0.13641,0.08277 0.48753,0.413601 0.59931,0.58235 0.0577,0.0871 0.13636,0.257787 0.17481,0.379304 0.0803,0.253823 0.11239,0.738377 0.0604,0.913234 z m -1.28155,0.296888 c -0.11255,-0.405265 -0.62848,-0.483569 -0.86192,-0.130817 -0.0744,0.112498 -0.088,0.164461 -0.0745,0.2847 0.0338,0.299998 0.31326,0.504498 0.58822,0.43046 0.15271,-0.04112 0.3056,-0.184909 0.34828,-0.327542 0.0392,-0.130864 0.0392,-0.115447 -1e-4,-0.256801 z" + id="path1971-0" + sodipodi:nodetypes="ssscsscccccccccccssscsssscc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="104.99195" + y="41.008743" + id="text852-9-7"><tspan + sodipodi:role="line" + id="tspan850-4-8" + x="104.99195" + y="41.008743" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">id </tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="104.99195" + y="49.168018" + id="text852-9-7-6"><tspan + sodipodi:role="line" + id="tspan850-4-8-8" + x="104.99195" + y="49.168018" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">h(block 1)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="104.99195" + y="56.583336" + id="text852-9-7-6-8"><tspan + sodipodi:role="line" + id="tspan850-4-8-8-4" + x="104.99195" + y="56.583336" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">h(block 2)</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="104.99195" + y="64.265732" + id="text852-9-7-6-3"><tspan + sodipodi:role="line" + id="tspan850-4-8-8-1" + x="104.99195" + y="64.265732" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">...</tspan></text> + </g> + <g + id="g898-3" + transform="translate(75.777779,38.888663)"> + <rect + style="fill:none;stroke:#000000;stroke-width:0.799999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833-7-6" + width="47.419891" + height="29.989157" + x="95.443573" + y="24.42766" /> + <rect + style="fill:none;stroke:#000000;stroke-width:0.799999;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="rect833-3-4-7" + width="47.419891" + height="21.608831" + x="95.443573" + y="32.807987" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="102.11134" + y="29.894743" + id="text852-4-5"><tspan + sodipodi:role="line" + id="tspan850-3-3" + x="102.11134" + y="29.894743" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">Data block</tspan></text> + <path + style="fill:#ff6600;fill-opacity:1;stroke:none;stroke-width:0.0337704;stroke-opacity:1" + d="m 102.90563,41.413279 c -0.14226,0.478709 -0.31308,0.745518 -0.65239,1.018956 -0.29019,0.233843 -0.59571,0.339489 -1.03301,0.357199 -0.33087,0.0134 -0.37381,0.0074 -0.64184,-0.09013 -0.50954,-0.185343 -0.914221,-0.594142 -1.082877,-1.093901 -0.163852,-0.485526 -0.07847,-1.108159 0.210335,-1.533803 0.111448,-0.164254 0.402172,-0.444591 0.534502,-0.515415 l 0.0681,-3.63921 0.73832,-0.64992 0.88727,0.787138 -0.40985,0.445484 0.40539,0.440982 -0.40539,0.435013 0.3816,0.41947 -0.41462,0.431781 0.57335,0.585078 0.007,0.726386 c 0.13641,0.08277 0.48753,0.413601 0.59931,0.58235 0.0577,0.0871 0.13636,0.257787 0.17481,0.379304 0.0803,0.253823 0.11239,0.738377 0.0604,0.913234 z m -1.28155,0.296888 c -0.11255,-0.405265 -0.62848,-0.483569 -0.86192,-0.130817 -0.0744,0.112498 -0.088,0.164461 -0.0745,0.2847 0.0338,0.299998 0.31326,0.504498 0.58822,0.43046 0.15271,-0.04112 0.3056,-0.184909 0.34828,-0.327542 0.0392,-0.130864 0.0392,-0.115447 -1e-4,-0.256801 z" + id="path1971-0-5" + sodipodi:nodetypes="ssscsscccccccccccssscsssscc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="104.99195" + y="41.008743" + id="text852-9-7-62"><tspan + sodipodi:role="line" + id="tspan850-4-8-9" + x="104.99195" + y="41.008743" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">hash </tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="104.99195" + y="49.168018" + id="text852-9-7-6-1"><tspan + sodipodi:role="line" + id="tspan850-4-8-8-2" + x="104.99195" + y="49.168018" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">data</tspan></text> + </g> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend)" + d="M 42.105292,69.455903 89.563703,69.317144" + id="path954" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker1262)" + d="m 134.32612,77.363197 38.12618,0.260865" + id="path1258" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="8.6727352" + y="16.687063" + id="text852-3"><tspan + sodipodi:role="line" + id="tspan850-67" + x="8.6727352" + y="16.687063" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">Objects table </tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="89.190445" + y="16.687063" + id="text852-3-5"><tspan + sodipodi:role="line" + id="tspan850-67-3" + x="89.190445" + y="16.687063" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">Versions table </tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-weight:normal;font-size:5.64444px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" + x="174.55702" + y="16.687063" + id="text852-3-56"><tspan + sodipodi:role="line" + id="tspan850-67-2" + x="174.55702" + y="16.687063" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:5.64444px;font-family:'Liberation Mono';-inkscape-font-specification:'Liberation Mono Bold';stroke-width:0.264583">Blocks table</tspan></text> + </g> +</svg> diff --git a/doc/20201202_talk/img/rustacean-flat-happy.png b/doc/20201202_talk/img/rustacean-flat-happy.png Binary files differnew file mode 100644 index 00000000..ebce1a14 --- /dev/null +++ b/doc/20201202_talk/img/rustacean-flat-happy.png diff --git a/doc/20201202_talk/img/shh.jpg b/doc/20201202_talk/img/shh.jpg Binary files differnew file mode 100644 index 00000000..ad4689ce --- /dev/null +++ b/doc/20201202_talk/img/shh.jpg diff --git a/doc/20201202_talk/img/sync.png b/doc/20201202_talk/img/sync.png Binary files differnew file mode 100644 index 00000000..d0404996 --- /dev/null +++ b/doc/20201202_talk/img/sync.png diff --git a/doc/20201202_talk/talk.pdf b/doc/20201202_talk/talk.pdf Binary files differnew file mode 100644 index 00000000..b27eca29 --- /dev/null +++ b/doc/20201202_talk/talk.pdf diff --git a/doc/20201202_talk/talk.tex b/doc/20201202_talk/talk.tex new file mode 100644 index 00000000..1acda842 --- /dev/null +++ b/doc/20201202_talk/talk.tex @@ -0,0 +1,247 @@ +%\nonstopmode +\documentclass[aspectratio=169]{beamer} +\usepackage[utf8]{inputenc} +% \usepackage[frenchb]{babel} +\usepackage{amsmath} +\usepackage{mathtools} +\usepackage{breqn} +\usepackage{multirow} +\usetheme{Luebeck} +\usepackage{graphicx} +%\useoutertheme[footline=authortitle,subsection=false]{miniframes} + +\beamertemplatenavigationsymbolsempty +\setbeamertemplate{footline} +{% + \leavevmode% + \hbox{\begin{beamercolorbox}[wd=.15\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fill]{author in head/foot}% + \usebeamerfont{author in head/foot} \insertframenumber{} / \inserttotalframenumber + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.2\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm plus1fill,rightskip=.3cm]{author in head/foot}% + \usebeamerfont{author in head/foot}\insertshortauthor + \end{beamercolorbox}% + \begin{beamercolorbox}[wd=.65\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% + \usebeamerfont{title in head/foot}\insertshorttitle~--~\insertshortdate + \end{beamercolorbox}}% + \vskip0pt% +} + +\usepackage{tabu} +\usepackage{multicol} +\usepackage{vwcol} +\usepackage{stmaryrd} +\usepackage{graphicx} + +\usepackage[normalem]{ulem} + +\title[Garage : jouer dans la cour des grands quand on est un hébergeur associatif]{Garage : jouer dans la cour des grands \\quand on est un hébergeur associatif} +\subtitle{(ou pourquoi on a décidé de réinventer la roue)} +\author[Q. Dufour \& A. Auvolat]{Quentin Dufour \& Alex Auvolat} +\date[02/12/2020]{Mercredi 2 décembre 2020} + +\begin{document} + +\begin{frame} + \titlepage +\end{frame} + +\begin{frame} + \frametitle{La question qui tue} + + \begin{center} + \includegraphics[scale=3]{img/sync.png} \\ + \Huge Pourquoi vous n'hébergez pas vos fichiers chez vous ? \\ + \end{center} + +\end{frame} + +\begin{frame}[t] + \frametitle{La cour des grands} + + \begin{columns}[t] + \begin{column}{0.5\textwidth} + {\huge Le modèle du cloud...} + + \begin{center} + \includegraphics[scale=0.08]{img/cloud.png} + \end{center} + + + \underline{intégrité} : plus de perte de données + + + \underline{disponibilité} : tout le temps accessible + + + \underline{service} : rien à gérer + + \vspace{0.15cm} + \textbf{changement des comportements} + \end{column} + \pause + \begin{column}{0.5\textwidth} + {\huge ...et son prix} + + \begin{center} + \includegraphics[scale=0.07]{img/dc.jpg} + \end{center} + + - matériel couteux et polluant + + - logiciels secrets + + - gestion opaque + + \vspace{0.2cm} + \textbf{prisonnier de l'écosystème} + \end{column} + \end{columns} +\end{frame} + +\begin{frame}[t] + \frametitle{Garage l'imposteur} + + \begin{columns}[t] + \begin{column}{0.5\textwidth} + {\huge Ressemble à du cloud...} + + \begin{center} + \includegraphics[scale=0.5]{img/shh.jpg} + \end{center} + + + \underline{compatible} avec les apps existantes + + + \underline{fonctionne} avec le mobile + + + \underline{s'adapte} aux habitudes prises + + + \end{column} + + \pause + \begin{column}{0.5\textwidth} + {\huge ...fait du P2P} + + \begin{center} + \includegraphics[scale=1]{img/death.jpg} + \end{center} + + \vspace{0.4cm} + + + \underline{contrôle} de l'infrastructure + + + \underline{transparent} code libre + + + \underline{sobre} fonctionne avec de vieilles machines à la maison + \end{column} + \end{columns} + +\end{frame} + + +\graphicspath{{img/}} + +\begin{frame} + \frametitle{Mais donc, c'est quoi Garage ?} + + \begin{columns}[t] + \begin{column}{0.5\textwidth} + \centering + \textbf{Un système de stockage distribué} + \vspace{1em} + + \includegraphics[width=.7\columnwidth]{img/garage_distributed.pdf} + \end{column} + \pause + + \begin{column}{0.5\textwidth} + \centering + \textbf{qui implémente l'API S3} + \vspace{2em} + + \includegraphics[width=.7\columnwidth]{img/Amazon-S3.jpg} + \end{column} + \end{columns} +\end{frame} + +\begin{frame} + \frametitle{Consistent Hashing (DynamoDB)} + \textbf{Comment répartir les fichiers sur les différentes machines ?} + \vspace{1em} + + \centering + + \only<1>{\includegraphics[width=.55\columnwidth]{img/consistent_hashing_1.pdf}}% + \only<2>{\includegraphics[width=.55\columnwidth]{img/consistent_hashing_2.pdf}}% + \only<3>{\includegraphics[width=.55\columnwidth]{img/consistent_hashing_3.pdf}}% + \only<4>{\includegraphics[width=.55\columnwidth]{img/consistent_hashing_4.pdf}}% +\end{frame} + +\begin{frame} + \frametitle{Garage Internals : 3 niveaux de consistent hashing} + \centering + \includegraphics[width=.85\columnwidth]{img/garage_tables.pdf} +\end{frame} + +\begin{frame} + \frametitle{Modèles de cohérence} + Garage utilise un modèle de cohérence relativement faible : + \vspace{1em} + + \begin{itemize} + \item Objets répliqués 3 fois, quorum de 2 pour les lectures et les écritures\\ + $\to$ cohérence \textbf{``read your writes''} + \vspace{1em} + \item<2-> Types de donnée CRDT + mécanisme d'anti-entropie\\ + $\to$ cohérence \textbf{à terme} (eventual consistency) + \vspace{1em} + \item<3-> Cela s'applique pour chaque fichier individuellement :\\ + pas de linéarisabilté ou de cohérence causale entre les opérations\\ + sur des fichiers différents + \vspace{1em} + \item<4-> \textbf{Avantage :} convient bien à un déploiement géodistribué (multi-datacenter) + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Rust : retour d'expérience} + + \begin{columns} + \begin{column}{0.55\textwidth} + Garage est entièrement écrit en Rust ! + \vspace{2em} + + \textbf{Points forts :} + \vspace{.5em} + \begin{itemize} + \item Langage compilé, très rapide + \vspace{.5em} + \item Typage fort, beaucoup de sécurités + \vspace{.5em} + \item Le meilleur de plusieurs paradigmes: + fonctionnel, orienté objet, impératif + \vspace{.5em} + \item Un écosytème de librairies très complet: + serialisation, async/await, http, ... + \end{itemize} + \end{column} + + \begin{column}{0.45\textwidth} + \begin{centering} + \hspace{2em}\includegraphics[width=0.55\columnwidth]{img/rustacean-flat-happy.png} + \end{centering} + + \vspace{2em} + \textbf{Points faibles :} + \vspace{.5em} + \begin{itemize} + \item Les temps de compilation... + \vspace{.5em} + \item Compliqué à apprendre + \end{itemize} + \vspace{2em} + \end{column} + \end{columns} + +\end{frame} + +\end{document} + +%% vim: set ts=4 sw=4 tw=0 noet spelllang=fr : diff --git a/script/dev-bucket.sh b/script/dev-bucket.sh index f07263f5..8c0ef4e4 100755 --- a/script/dev-bucket.sh +++ b/script/dev-bucket.sh @@ -6,11 +6,11 @@ GARAGE_DEBUG="${REPO_FOLDER}/target/debug/" GARAGE_RELEASE="${REPO_FOLDER}/target/release/" PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH" -garage bucket create éprouvette +garage bucket create eprouvette KEY_INFO=`garage key new --name opérateur` ACCESS_KEY=`echo $KEY_INFO|grep -Po 'GK[a-f0-9]+'` SECRET_KEY=`echo $KEY_INFO|grep -Po 'secret_key: "[a-f0-9]+'|grep -Po '[a-f0-9]+$'` -garage bucket allow éprouvette --read --write --key $ACCESS_KEY +garage bucket allow eprouvette --read --write --key $ACCESS_KEY echo "$ACCESS_KEY $SECRET_KEY" > /tmp/garage.s3 -echo "Bucket s3://éprouvette created. Credentials stored in /tmp/garage.s3." +echo "Bucket s3://eprouvette created. Credentials stored in /tmp/garage.s3." diff --git a/script/dev-clean.sh b/script/dev-clean.sh new file mode 100755 index 00000000..151c5547 --- /dev/null +++ b/script/dev-clean.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -ex + +killall -9 garage || echo "garage is not running" +rm -rf /tmp/garage* +rm -rf /tmp/config.*.toml diff --git a/script/dev-cluster.sh b/script/dev-cluster.sh index cfe9be0d..101a18bd 100755 --- a/script/dev-cluster.sh +++ b/script/dev-cluster.sh @@ -24,11 +24,11 @@ cat > $CONF_PATH <<EOF block_size = 1048576 # objects are split in blocks of maximum this number of bytes metadata_dir = "/tmp/garage-meta-$count" data_dir = "/tmp/garage-data-$count" -rpc_bind_addr = "127.0.0.$count:3901" # the port other Garage nodes will use to talk to this node +rpc_bind_addr = "[::]:$((3900+$count))" # the port other Garage nodes will use to talk to this node bootstrap_peers = [ - "127.0.0.1:3901", - "127.0.0.2:3901", - "127.0.0.3:3901" + "[::1]:3901", + "[::1]:3902", + "[::1]:3903" ] max_concurrent_rpc_requests = 12 data_replication_factor = 3 @@ -36,11 +36,11 @@ meta_replication_factor = 3 meta_epidemic_fanout = 3 [s3_api] -api_bind_addr = "127.0.0.$count:3900" # the S3 API port, HTTP without TLS. Add a reverse proxy for the TLS part. +api_bind_addr = "[::]:$((3910+$count))" # the S3 API port, HTTP without TLS. Add a reverse proxy for the TLS part. s3_region = "garage" # set this to anything. S3 API calls will fail if they are not made against the region set here. [s3_web] -bind_addr = "127.0.0.$count:3902" +bind_addr = "[::]:$((3920+$count))" EOF echo -en "$LABEL configuration written to $CONF_PATH\n" diff --git a/script/dev-configure.sh b/script/dev-configure.sh index 8b7392c6..698c7ed9 100755 --- a/script/dev-configure.sh +++ b/script/dev-configure.sh @@ -6,6 +6,11 @@ GARAGE_DEBUG="${REPO_FOLDER}/target/debug/" GARAGE_RELEASE="${REPO_FOLDER}/target/release/" PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH" +until garage status 2>&1|grep -q Healthy ; do + echo "cluster starting..." + sleep 1 +done + garage status \ | grep UNCONFIGURED \ | grep -Po '^[0-9a-f]+' \ diff --git a/script/dev-env-aws.sh b/script/dev-env-aws.sh new file mode 100644 index 00000000..c9a57660 --- /dev/null +++ b/script/dev-env-aws.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCRIPT_FOLDER="`dirname \"${BASH_SOURCE[0]}\"`" +REPO_FOLDER="${SCRIPT_FOLDER}/../" +GARAGE_DEBUG="${REPO_FOLDER}/target/debug/" +GARAGE_RELEASE="${REPO_FOLDER}/target/release/" +PATH="${GARAGE_DEBUG}:${GARAGE_RELEASE}:$PATH" + +export AWS_ACCESS_KEY_ID=`cat /tmp/garage.s3 |cut -d' ' -f1` +export AWS_SECRET_ACCESS_KEY=`cat /tmp/garage.s3 |cut -d' ' -f2` +export AWS_DEFAULT_REGION='garage' + +alias awsgrg="aws s3 \ + --endpoint-url http://127.0.0.1:3911" diff --git a/script/dev-env.sh b/script/dev-env-s3cmd.sh index 7e8ffc50..88d2941f 100755..100644 --- a/script/dev-env.sh +++ b/script/dev-env-s3cmd.sh @@ -10,7 +10,8 @@ ACCESS_KEY=`cat /tmp/garage.s3 |cut -d' ' -f1` SECRET_KEY=`cat /tmp/garage.s3 |cut -d' ' -f2` alias s3grg="s3cmd \ - --host 127.0.0.1:3900 \ + --host 127.0.0.1:3911 \ + --host-bucket 127.0.0.1:3911 \ --access_key=$ACCESS_KEY \ --secret_key=$SECRET_KEY \ --region=garage \ diff --git a/script/test-smoke.sh b/script/test-smoke.sh new file mode 100755 index 00000000..111afac9 --- /dev/null +++ b/script/test-smoke.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +set -ex +shopt -s expand_aliases + +SCRIPT_FOLDER="`dirname \"$0\"`" +REPO_FOLDER="${SCRIPT_FOLDER}/../" + +cargo build +${SCRIPT_FOLDER}/dev-clean.sh +${SCRIPT_FOLDER}/dev-cluster.sh > /tmp/garage.log 2>&1 & +${SCRIPT_FOLDER}/dev-configure.sh +${SCRIPT_FOLDER}/dev-bucket.sh +source ${SCRIPT_FOLDER}/dev-env-aws.sh +source ${SCRIPT_FOLDER}/dev-env-s3cmd.sh + +garage status +garage key list +garage bucket list + +dd if=/dev/urandom of=/tmp/garage.1.rnd bs=1k count=2 # < INLINE_THRESHOLD = 3072 bytes +dd if=/dev/urandom of=/tmp/garage.2.rnd bs=1M count=5 +dd if=/dev/urandom of=/tmp/garage.3.rnd bs=1M count=10 + +for idx in $(seq 1 3); do + # AWS sends + awsgrg cp /tmp/garage.$idx.rnd s3://eprouvette/garage.$idx.aws + + awsgrg ls s3://eprouvette + + awsgrg cp s3://eprouvette/garage.$idx.aws /tmp/garage.$idx.dl + diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl + rm /tmp/garage.$idx.dl + + s3grg get s3://eprouvette/garage.$idx.aws /tmp/garage.$idx.dl + diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl + rm /tmp/garage.$idx.dl + + awsgrg rm s3://eprouvette/garage.$idx.aws + + # S3CMD sends + s3grg put /tmp/garage.$idx.rnd s3://eprouvette/garage.$idx.s3cmd + + s3grg ls s3://eprouvette + + s3grg get s3://eprouvette/garage.$idx.s3cmd /tmp/garage.$idx.dl + diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl + rm /tmp/garage.$idx.dl + + awsgrg cp s3://eprouvette/garage.$idx.s3cmd /tmp/garage.$idx.dl + diff /tmp/garage.$idx.rnd /tmp/garage.$idx.dl + rm /tmp/garage.$idx.dl + + s3grg rm s3://eprouvette/garage.$idx.s3cmd +done +rm /tmp/garage.{1,2,3}.rnd + +garage bucket deny --read --write eprouvette --key $AWS_ACCESS_KEY_ID +garage bucket delete --yes eprouvette +garage key delete --yes $AWS_ACCESS_KEY_ID + +echo "success" diff --git a/src/api/Cargo.toml b/src/api/Cargo.toml index a366f9b8..079993c3 100644 --- a/src/api/Cargo.toml +++ b/src/api/Cargo.toml @@ -27,6 +27,7 @@ md-5 = "0.9.1" sha2 = "0.8" hmac = "0.7" crypto-mac = "0.7" +rand = "0.7" futures = "0.3" futures-util = "0.3" diff --git a/src/api/s3_get.rs b/src/api/s3_get.rs index a68c485b..1a23f476 100644 --- a/src/api/s3_get.rs +++ b/src/api/s3_get.rs @@ -24,11 +24,13 @@ fn object_headers( "Content-Type", version_meta.headers.content_type.to_string(), ) - .header("Content-Length", format!("{}", version_meta.size)) - .header("ETag", version_meta.etag.to_string()) .header("Last-Modified", date_str) .header("Accept-Ranges", format!("bytes")); + if !version_meta.etag.is_empty() { + resp = resp.header("ETag", format!("\"{}\"", version_meta.etag)); + } + for (k, v) in version_meta.headers.other.iter() { resp = resp.header(k, v.to_string()); } @@ -63,6 +65,7 @@ pub async fn handle_head( let body: Body = Body::from(vec![]); let response = object_headers(&version, version_meta) + .header("Content-Length", format!("{}", version_meta.size)) .status(StatusCode::OK) .body(body) .unwrap(); @@ -123,7 +126,9 @@ pub async fn handle_get( .await; } - let resp_builder = object_headers(&last_v, last_v_meta).status(StatusCode::OK); + let resp_builder = object_headers(&last_v, last_v_meta) + .header("Content-Length", format!("{}", last_v_meta.size)) + .status(StatusCode::OK); match &last_v_data { ObjectVersionData::DeleteMarker => unreachable!(), @@ -161,7 +166,7 @@ pub async fn handle_get( } }) .buffered(2); - //let body: Body = Box::new(StreamBody::new(Box::pin(body_stream))); + let body = hyper::body::Body::wrap_stream(body_stream); Ok(resp_builder.body(body)?) } @@ -181,9 +186,10 @@ pub async fn handle_get_range( } let resp_builder = object_headers(version, version_meta) + .header("Content-Length", format!("{}", end - begin)) .header( "Content-Range", - format!("bytes {}-{}/{}", begin, end, version_meta.size), + format!("bytes {}-{}/{}", begin, end - 1, version_meta.size), ) .status(StatusCode::PARTIAL_CONTENT); @@ -206,35 +212,49 @@ pub async fn handle_get_range( None => return Err(Error::NotFound), }; - let blocks = version - .blocks() - .iter() - .cloned() - .filter(|block| block.offset + block.size > begin && block.offset < end) - .collect::<Vec<_>>(); + // We will store here the list of blocks that have an intersection with the requested + // range, as well as their "true offset", which is their actual offset in the complete + // file (whereas block.offset designates the offset of the block WITHIN THE PART + // block.part_number, which is not the same in the case of a multipart upload) + let mut blocks = Vec::with_capacity(std::cmp::min( + version.blocks().len(), + 4 + ((end - begin) / std::cmp::max(version.blocks()[0].size as u64, 1024)) as usize, + )); + let mut true_offset = 0; + for b in version.blocks().iter() { + if true_offset >= end { + break; + } + // Keep only blocks that have an intersection with the requested range + if true_offset < end && true_offset + b.size > begin { + blocks.push((b.clone(), true_offset)); + } + true_offset += b.size; + } let body_stream = futures::stream::iter(blocks) - .map(move |block| { + .map(move |(block, true_offset)| { let garage = garage.clone(); async move { let data = garage.block_manager.rpc_get_block(&block.hash).await?; - let start_in_block = if block.offset > begin { + let data = Bytes::from(data); + let start_in_block = if true_offset > begin { 0 } else { - begin - block.offset + begin - true_offset }; - let end_in_block = if block.offset + block.size < end { + let end_in_block = if true_offset + block.size < end { block.size } else { - end - block.offset + end - true_offset }; Result::<Bytes, Error>::Ok(Bytes::from( - data[start_in_block as usize..end_in_block as usize].to_vec(), + data.slice(start_in_block as usize..end_in_block as usize), )) } }) .buffered(2); - //let body: Body = Box::new(StreamBody::new(Box::pin(body_stream))); + let body = hyper::body::Body::wrap_stream(body_stream); Ok(resp_builder.body(body)?) } diff --git a/src/api/s3_list.rs b/src/api/s3_list.rs index 3b739a8a..599d0d11 100644 --- a/src/api/s3_list.rs +++ b/src/api/s3_list.rs @@ -18,6 +18,7 @@ use crate::encoding::*; struct ListResultInfo { last_modified: u64, size: u64, + etag: String, } pub async fn handle_list( @@ -56,12 +57,12 @@ pub async fn handle_list( for object in objects.iter() { if !object.key.starts_with(prefix) { - truncated = false; + truncated = None; break 'query_loop; } if let Some(version) = object.versions().iter().find(|x| x.is_data()) { if result_keys.len() + result_common_prefixes.len() >= max_keys { - truncated = true; + truncated = Some(object.key.to_string()); break 'query_loop; } let common_prefix = if delimiter.len() > 0 { @@ -75,19 +76,18 @@ pub async fn handle_list( if let Some(pfx) = common_prefix { result_common_prefixes.insert(pfx.to_string()); } else { - let size = match &version.state { - ObjectVersionState::Complete(ObjectVersionData::Inline(meta, _)) => { - meta.size - } + let meta = match &version.state { + ObjectVersionState::Complete(ObjectVersionData::Inline(meta, _)) => meta, ObjectVersionState::Complete(ObjectVersionData::FirstBlock(meta, _)) => { - meta.size + meta } _ => unreachable!(), }; let info = match result_keys.get(&object.key) { None => ListResultInfo { last_modified: version.timestamp, - size, + size: meta.size, + etag: meta.etag.to_string(), }, Some(_lri) => { return Err(Error::Message(format!("Duplicate key?? {}", object.key))) @@ -98,7 +98,7 @@ pub async fn handle_list( } } if objects.len() < max_keys + 1 { - truncated = false; + truncated = None; break 'query_loop; } if objects.len() > 0 { @@ -113,11 +113,22 @@ pub async fn handle_list( r#"<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">"# ) .unwrap(); - writeln!(&mut xml, "\t<Bucket>{}</Bucket>", bucket).unwrap(); + writeln!(&mut xml, "\t<Name>{}</Name>", bucket).unwrap(); writeln!(&mut xml, "\t<Prefix>{}</Prefix>", prefix).unwrap(); + if let Some(mkr) = marker { + writeln!(&mut xml, "\t<Marker>{}</Marker>", mkr).unwrap(); + } writeln!(&mut xml, "\t<KeyCount>{}</KeyCount>", result_keys.len()).unwrap(); writeln!(&mut xml, "\t<MaxKeys>{}</MaxKeys>", max_keys).unwrap(); - writeln!(&mut xml, "\t<IsTruncated>{}</IsTruncated>", truncated).unwrap(); + writeln!( + &mut xml, + "\t<IsTruncated>{}</IsTruncated>", + truncated.is_some() + ) + .unwrap(); + if let Some(next_marker) = truncated { + writeln!(&mut xml, "\t<NextMarker>{}</NextMarker>", next_marker).unwrap(); + } for (key, info) in result_keys.iter() { let last_modif = NaiveDateTime::from_timestamp(info.last_modified as i64 / 1000, 0); let last_modif = DateTime::<Utc>::from_utc(last_modif, Utc); @@ -132,6 +143,9 @@ pub async fn handle_list( .unwrap(); writeln!(&mut xml, "\t\t<LastModified>{}</LastModified>", last_modif).unwrap(); writeln!(&mut xml, "\t\t<Size>{}</Size>", info.size).unwrap(); + if !info.etag.is_empty() { + writeln!(&mut xml, "\t\t<ETag>\"{}\"</ETag>", info.etag).unwrap(); + } writeln!(&mut xml, "\t\t<StorageClass>STANDARD</StorageClass>").unwrap(); writeln!(&mut xml, "\t</Contents>").unwrap(); } diff --git a/src/api/s3_put.rs b/src/api/s3_put.rs index a528720d..c42309b2 100644 --- a/src/api/s3_put.rs +++ b/src/api/s3_put.rs @@ -51,12 +51,7 @@ pub async fn handle_put( let md5sum_arr = md5sum.finalize(); let md5sum_hex = hex::encode(md5sum_arr); - let mut sha256sum = Sha256::new(); - sha256sum.input(&first_block[..]); - let sha256sum_arr = sha256sum.result(); - let mut hash = [0u8; 32]; - hash.copy_from_slice(&sha256sum_arr[..]); - let sha256sum_hash = Hash::from(hash); + let sha256sum_hash = hash(&first_block[..]); ensure_checksum_matches( md5sum_arr.as_slice(), @@ -253,7 +248,7 @@ impl BodyChunker { body, read_all: false, block_size, - buf: VecDeque::new(), + buf: VecDeque::with_capacity(2 * block_size), } } async fn next(&mut self) -> Result<Option<Vec<u8>>, GarageError> { @@ -278,11 +273,10 @@ impl BodyChunker { } } -pub fn put_response(version_uuid: UUID, etag: String) -> Response<Body> { +pub fn put_response(version_uuid: UUID, md5sum_hex: String) -> Response<Body> { Response::builder() .header("x-amz-version-id", hex::encode(version_uuid)) - .header("ETag", etag) - // TODO ETag + .header("ETag", format!("\"{}\"", md5sum_hex)) .body(Body::from(vec![])) .unwrap() } @@ -369,7 +363,7 @@ pub async fn handle_put_part( } // Copy block to store - let version = Version::new(version_uuid, bucket.into(), key.into(), false, vec![]); + let version = Version::new(version_uuid, bucket, key, false, vec![]); let first_block_hash = hash(&first_block[..]); let (_, md5sum_arr, sha256sum) = read_and_put_blocks( &garage, @@ -388,7 +382,11 @@ pub async fn handle_put_part( content_sha256, )?; - Ok(Response::new(Body::from(vec![]))) + let response = Response::builder() + .header("ETag", format!("\"{}\"", hex::encode(md5sum_arr))) + .body(Body::from(vec![])) + .unwrap(); + Ok(response) } pub async fn handle_complete_multipart_upload( @@ -430,6 +428,21 @@ pub async fn handle_complete_multipart_upload( _ => unreachable!(), }; + // ETag calculation: we produce ETags that have the same form as + // those of S3 multipart uploads, but we don't use their actual + // calculation for the first part (we use random bytes). This + // shouldn't impact compatibility as the S3 docs specify that + // the ETag is an opaque value in case of a multipart upload. + // See also: https://teppen.io/2018/06/23/aws_s3_etags/ + let num_parts = version.blocks().last().unwrap().part_number + - version.blocks().first().unwrap().part_number + + 1; + let etag = format!( + "{}-{}", + hex::encode(&rand::random::<[u8; 16]>()[..]), + num_parts + ); + // TODO: check that all the parts that they pretend they gave us are indeed there // TODO: when we read the XML from _req, remember to check the sha256 sum of the payload // against the signed x-amz-content-sha256 @@ -444,7 +457,7 @@ pub async fn handle_complete_multipart_upload( ObjectVersionMeta { headers, size: total_size, - etag: "".to_string(), // TODO + etag: etag, }, version.blocks()[0].hash, )); diff --git a/src/table/table.rs b/src/table/table.rs index 5dfee3c8..acb46325 100644 --- a/src/table/table.rs +++ b/src/table/table.rs @@ -391,7 +391,8 @@ where let (old_entry, new_entry) = self.store.transaction(|db| { let (old_entry, new_entry) = match db.get(&tree_key)? { Some(prev_bytes) => { - let old_entry = self.decode_entry(&prev_bytes) + let old_entry = self + .decode_entry(&prev_bytes) .map_err(sled::ConflictableTransactionError::Abort)?; let mut new_entry = old_entry.clone(); new_entry.merge(&update); |