DHTs and Sharding
Aurojit Panda
DHTs and Sharding Aurojit Panda Announcements Announcements Fill - - PowerPoint PPT Presentation
DHTs and Sharding Aurojit Panda Announcements Announcements Fill out the Github consent form. Announcements Fill out the Github consent form. Fill out the Github account association form. Announcements Fill out the Github
Aurojit Panda
Yogi Huckelberry Snuffles Penelope Track 1 Track 2 Track 1: Snuffles Track 2: Penelope
Yogi Huckelberry Snuffles Penelope Track 1 Track 2 Track 1: Snuffles Track 2: Penelope
Yogi Huckelberry Snuffles Penelope Track 1 Track 2
Yogi Huckelberry Snuffles Penelope Track 1 Track 2 ... ... ... ... ...
Yogi Huckelberry Snuffles Penelope Track 1 Track 2 ... ... ... ... ...
h: 16 buckets
h: h[k] = v 16 buckets
h: h[k] = v 16 buckets h[hash(k) % len(h)] = v
h: h[k] = v 16 buckets h[hash(k) % len(h)] = v h[hash(k) % 16] = v
h: h[k] = v 16 buckets h[hash(k) % len(h)] = v h[hash(k) % 16] = v
v
h: h[k] = v 16 buckets h[hash(k) % len(h)] = v h[hash(k) % 16] = v x = h[k]
v
h: h[k] = v 16 buckets h[hash(k) % len(h)] = v h[hash(k) % 16] = v x = h[k] x = h[hash(k) % len(h)]
v
h: h[k] = v 16 buckets h[hash(k) % len(h)] = v h[hash(k) % 16] = v x = h[k] x = h[hash(k) % len(h)] x = h[hash(k) % 16]
v
h: 20 buckets x = h[k] x = h[hash(k) % len(h)] x = h[hash(k) % 16] Added 4 buckets x = h[k] x = h[hash(k) % len(h)] x = h[hash(k) % 20]
v
h: 20 buckets x = h[k] x = h[hash(k) % len(h)] x = h[hash(k) % 16] Added 4 buckets x = h[k] x = h[hash(k) % len(h)] x = h[hash(k) % 20]
v
2 35 1
Successor pointer
2 35 1
Successor pointer lookup(k) hash(k) = 7
2 35 1
Successor pointer lookup(k) hash(k) = 7
2 35 1
Successor pointer 2: ... 3: ... 4: ... 27: ... 37: ... 42: ... 0: ...
2 35 1
Successor pointer
8
2: ... 3: ... 4: ... 27: ... 37: ... 42: ... 0: ...
2 35 1
Successor pointer
8
2: ... 3: ... 4: ... 27: ... 37: ... 42: ... 0: ... Predecessor pointer
2 35 1
Successor pointer
8
2: ... 3: ... 4: ... 27: ... 37: ... 42: ... 0: ... Predecessor pointer
2 35 1
Successor pointer
8
2: ... 27: ... 37: ... 42: ... 0: ... Predecessor pointer 3: ... 4: ...
2 35 1
Successor pointer
8
2: ... 27: ... 37: ... 42: ... 0: ... Predecessor pointer 3: ... 4: ...
2 35 1
Successor pointer 2: ... 27: ... 37: ... 42: ... 0: ... Predecessor pointer
2 35 1
Successor pointer 2: ... 27: ... 37: ... 42: ... 0: ... Predecessor pointer Oops: Need successor list to fix this problem
2 35 1
Successor pointer 2: ... 27: ... 37: ... 42: ... 0: ... Predecessor pointer
2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
finger[k] = succ(n + 2k−1) mod 2m)
<latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit>2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
finger[k] = succ(n + 2k−1) mod 2m)
<latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit>Finger
2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
finger[k] = succ(n + 2k−1) mod 2m)
<latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit>Finger
1
2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
finger[k] = succ(n + 2k−1) mod 2m)
<latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit>Finger
1 2
2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
finger[k] = succ(n + 2k−1) mod 2m)
<latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit>Finger
1 2 3
2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
finger[k] = succ(n + 2k−1) mod 2m)
<latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit>Finger
1 2 3 4
2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
finger[k] = succ(n + 2k−1) mod 2m)
<latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit>Finger
1 2 3 4 5
2 3 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 38
3.lookup(k) hash(k) = 42 m=6 (2m = 64)
finger[k] = succ(n + 2k−1) mod 2m)
<latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit><latexit sha1_base64="o0lJPfhPEwESip2b8DuHRmlkxGM=">ACHnicbVDLSgMxFM34tr6qLt0Ei6CIZUYU3QiG5cKVoV2LJn0Tg1NMkNyRyzDfIkbf8WNC0UEV/o3po+FrwMXTs65l9x7olQKi7/6Y2Mjo1PTE5Nl2Zm5+YXyotLFzbJDIcaT2RiriJmQoNRQo4So1wFQk4TLqHPf8y1swViT6HLsphIq1tYgFZ+ikZnm3gXCHeSx0G0xR74T0gA4km3FerGu6Sbev85WUGzQhkpa7qU2muWKX/X7oH9JMCQVMsRps/zeaCU8U6CRS2ZtPfBTDHNmUHAJRamRWUgZ7A21B3VTIEN8/5BV1zSovGiXGlkfbV7xM5U9Z2VeQ6FcMb+9vrif959Qzj/TAXOs0QNB98FGeSYkJ7WdGWMBRdh1h3Ai3K+U3zDCOLtGSCyH4fJfcrFdDfxqcLZTOTwaxjFVsgqWScB2SOH5ISckhrh5J48kmfy4j14T96r9zZoHfGM8vkB7yPLztQoTU=</latexit>Finger
1 2 3 4 5 6
x = 1 x = 1
x = 1 x = 1 set x = 2
x = 2 x = 1 set x = 2 set x = 2
x = 2 x = 1 set x = 2 get x set x = 2
x = 2 x = 1 set x = 2 set x = 2
x = 2 x = 1 set x = 2 get x set x = 2
x = 2 x = 1 set x = 2 get x set x = 2 When are requests/data related?
x = 1 x = 1