In computing, Chord is a protocol and algorithm for a peer-to-peer dis การแปล - In computing, Chord is a protocol and algorithm for a peer-to-peer dis ไทย วิธีการพูด

In computing, Chord is a protocol a

In computing, Chord is a protocol and algorithm for a peer-to-peer distributed hash table. A distributed hash table stores key-value pairs by assigning keys to different computers (known as "nodes"); a node will store the values for all the keys for which it is responsible. Chord specifies how keys are assigned to nodes, and how a node can discover the value for a given key by first locating the node responsible for that key.

Chord is one of the four original distributed hash table protocols, along with CAN, Tapestry, and Pastry. It was introduced in 2001 by Ion Stoica, Robert Morris, David Karger, Frans Kaashoek, and Hari Balakrishnan, and was developed at MIT.[1]

Overview
Nodes and keys are assigned an {displaystyle m} m-bit identifier using consistent hashing. The SHA-1 algorithm is the base hashing function for consistent hashing. Consistent hashing is integral to the robustness and performance of Chord because both keys and nodes (in fact, their IP addresses) are uniformly distributed in the same identifier space with a negligible possibility of collision. Thus, it also allows nodes to join and leave the network without disruption. In the protocol, the term node is used to refer to both a node itself and its identifier (ID) without ambiguity. So is the term key.

Using the Chord lookup protocol, nodes and keys are arranged in an identifier circle that has at most {displaystyle 2^{m}} 2^{m} nodes, ranging from {displaystyle 0} {displaystyle 0} to {displaystyle 2^{m}-1} 2^m - 1. ( {displaystyle m} m should be large enough to avoid collision.)

Each node has a successor and a predecessor. The successor to a node is the next node in the identifier circle in a clockwise direction. The predecessor is counter-clockwise. If there is a node for each possible ID, the successor of node 0 is node 1, and the predecessor of node 0 is node {displaystyle 2^{m}-1} 2^m - 1; however, normally there are "holes" in the sequence. For example, the successor of node 153 may be node 167 (and nodes from 154 to 166 do not exist); in this case, the predecessor of node 167 will be node 153.

The concept of successor can be used for keys as well. The successor node of a key {displaystyle k} k is the first node whose ID equals to {displaystyle k} k or follows {displaystyle k} k in the identifier circle, denoted by {displaystyle successor(k)} successor(k). Every key is assigned to (stored at) its successor node, so looking up a key {displaystyle k} k is to query {displaystyle successor(k)} successor(k).

Since the successor (or predecessor) of a node may disappear from the network (because of failure or departure), each node records a whole segment of the circle adjacent to it, i.e., the {displaystyle r} r nodes preceding it and the {displaystyle r} r nodes following it. This list results in a high probability that a node is able to correctly locate its successor or predecessor, even if the network in question suffers from a high failure rate.

Protocol details
Basic query[edit]
The core usage of the Chord protocol is to query a key from a client (generally a node as well), i.e. to find {displaystyle successor(k)} successor(k). The basic approach is to pass the query to a node's successor, if it cannot find the key locally. This will lead to a {displaystyle O(N)} O(N) query time.

Finger table[edit]
To avoid the linear search above, Chord implements a faster search method by requiring each node to keep a finger table containing up to {displaystyle m} m entries. The {displaystyle i^{th}} i^{th} entry of node {displaystyle n} n will contain {displaystyle successor((n+2^{i-1}),{mod {,}}2^{m})} successor((n+2^{i-1}),mod,2^m). The first entry of finger table is actually the node's immediate successor (and therefore an extra successor field is not needed). Every time a node wants to look up a key {displaystyle k} k, it will pass the query to the closest successor or predecessor (depending on the finger table) of {displaystyle k} k in its finger table (the "largest" one on the circle whose ID is smaller than {displaystyle k} k), until a node finds out the key is stored in its immediate successor.

With such a finger table, the number of nodes that must be contacted to find a successor in an N-node network is {displaystyle O(log N)} O(log N). (See proof below.)

Node join[edit]
Whenever a new node joins, three invariants should be maintained (the first two ensure correctness and the last one keeps querying fast):

Each node's successor points to its immediate successor correctly.
Each key is stored in {displaystyle successor(k)} successor(k).
Each node's finger table should be correct.
To satisfy these invariants, a predecessor field is maintained for each node. As the successor is the first entry of the finger table, we do not need to maintain this field separately any more. The following tasks should be done for a newly joined node {displaystyle n} n:

Initialize node
0/5000
จาก: -
เป็น: -
ผลลัพธ์ (ไทย) 1: [สำเนา]
คัดลอก!
ในการใช้คอมพิวเตอร์ คอร์ดเป็นโพรโทคอลและอัลกอริทึมสำหรับตารางแฮกระจายเพียร์ทูเพียร์ ตารางแฮกระจายเก็บคู่ค่าคีย์ โดยกำหนดคีย์ไปยังคอมพิวเตอร์เครื่องอื่น (เรียกว่า "โหน"); โหนดจะเก็บค่าของคีย์ทั้งหมดที่รับผิดชอบ คอร์ดระบุวิธีกำหนดคีย์การโหน และวิธีโหนสามารถค้นพบค่าของคีย์ที่กำหนด โดยการค้นหาแรกโหนรับผิดชอบที่สำคัญคอร์ดเป็นหนึ่งในสี่ฉบับกระจายแฮตารางโพรโทคอ สามารถ พรม และขนม มันเป็นที่รู้จักในปี 2001 โดย Stoica ไอออน โรเบิร์ตมอร์ริส ดาวิด Karger ผู้ Kaashoek และคอร์ นิฮาริ และถูกพัฒนาขึ้นที่ MIT [1]ภาพรวมโหนและคีย์จะถูกกำหนดรหัส m บิต {displaystyle m } โดยใช้สอดคล้องกัน อัลกอริทึม SHA 1 เป็นฐาน hashing ฟังก์ชันสำหรับ hashing สอดคล้องกัน แปลงแป้นพิมพ์ที่สอดคล้องกันเป็นส่วนสำคัญเพื่อความทนทานและประสิทธิภาพของคอร์ดเพราะคีย์และโหน (ในความเป็นจริง อยู่ IP) มีกระจายในพื้นที่ระบุมีความเป็นไปได้น้อยมากของชน ดังนั้น มันยังช่วยให้โหนดที่เข้าร่วม และออกจากเครือข่ายโดยไม่หยุดชะงัก ในโพรโทคอล โหนระยะถูกใช้เพื่ออ้างอิงถึงโหนตัวเองและตัวระบุ (ID) โดยไม่มีความคลุมเครือ ดัง นั้นคีย์ระยะโดยใช้โพรโทคอลในการค้นหาคอร์ด โหนและคีย์จะจัดในวงการตัวระบุที่มีมากที่สุด { displaystyle 2 ^ {m } } 2 ^ {m } โหน ตั้งแต่ {displaystyle 0 } {displaystyle 0 } กับ { displaystyle 2 ^ {m } -1 } 2 ^ m - 1 ({displaystyle } มควรจะใหญ่พอที่จะหลีกเลี่ยงการชน)แต่ละโหนมีทายาทและรุ่นก่อน สืบต่อไปยังโหนโหนถัดไปในวงกลมตัวระบุในทิศทางตามเข็มนาฬิกาได้ บรรพบุรุษคือทวนเข็มนาฬิกา ถ้ามีโหนสำหรับแต่ละ ID ได้ สืบต่อจากโหนด 0 เป็นโหนด 1 และบรรพบุรุษของโหน 0 โหน { displaystyle 2 ^ {m } -1 } 2 ^ m - 1 อย่างไรก็ตาม โดยปกติมี "หลุม" ตามลำดับ ตัวอย่างเช่น ทายาทของโหน 153 อาจโหน 167 (และไม่มีโหนจาก 154 166); ในกรณีนี้ บรรพบุรุษของโหน 167 จะโหน 153แนวคิดของทายาทสามารถใช้ได้สำหรับคีย์ด้วย โหนทายาทของคีย์ {displaystyle k } k เป็นโหนแรกที่มีหมายเลขเท่ากับ k {displaystyle k } หรือ {displaystyle k } k ในวงระบุ เขียนแทน ด้วย {displaystyle successor(k) } successor(k) ดังต่อไปนี้ ทุกคีย์กำหนดให้ (ฝาก) โหนของสืบ ค้นหาคีย์ {displaystyle k } k เป็นการ สอบถาม successor(k) {displaystyle successor(k) }เนื่องจากทายาท (หรือรุ่นก่อนหน้า) ของโหนอาจหายไปจากเครือข่าย (เนื่องจากความล้มเหลวหรือออกเดินทาง), แต่ละโหนระเบียนเซ็กเมนต์ทั้งหมดของวงติดกันไป เช่น โหน r {displaystyle r } ก่อนหน้ามันและโหน r {displaystyle r } ต่อไปนี้มัน รายการนี้ส่งผลในความน่าเป็นสูงว่า โหนเป็นสามารถค้นหาการสืบหรือบรรพบุรุษ อย่างถูกต้องแม้ว่าเครือข่ายในคำถามที่ทนทุกข์ทรมานจากอัตราความล้มเหลวสูงรายละเอียดของโพรโทคอลสอบถามพื้นฐาน [แก้]การใช้งานหลักของโพรโทคอคอร์ดเป็น การสอบถามจากไคลเอนต์ (โดยทั่วไปโหนดเช่น) เช่น การค้นหา successor(k) {displaystyle successor(k) } วิธีพื้นฐานคือการ ผ่านแบบสอบถามไปยังโหนสืบ หากไม่พบคีย์ในท้องถิ่น นี้จะนำไปสู่เวลาสอบถาม O(N) {displaystyle O(N) }ตารางนิ้ว [แก้]เพื่อหลีกเลี่ยงการค้นหาเชิงเส้นข้าง คอร์ดใช้วิธีการค้นหาได้เร็วขึ้น โดยให้แต่ละโหนเก็บตารางนิ้วที่ประกอบด้วยถึงรายการ m {displaystyle m } ของ { displaystyle ฉัน ^ {th } } ผม ^ {th } รายการของโหน {displaystyle n } n จะประกอบด้วย {สืบ displaystyle ((n + 2 ^ { i-1 }) , {mod {,}}2^{m }) } successor((n+2^{i-1}),mod,2^m) รายการแรกของตารางนิ้วเป็นจริงของโหนดที่ทำต่อทันที (และดังนั้น ฟิลด์สืบพิเศษไม่จำเป็นต้อง) ทุกครั้งที่โหนดที่ต้องการค้นหาคีย์ {displaystyle k } k จะส่งแบบสอบถามสืบที่ใกล้เคียงหรือรุ่นก่อนหน้า (ขึ้นอยู่กับตารางนิ้ว) ของ k {displaystyle k } ในตารางนิ้ว (หนึ่ง "ที่ใหญ่ที่สุด" ในวงกลมที่มีหมายเลขที่มีขนาดเล็กกว่า k {displaystyle k }) จนกว่าจะพบโหน คีย์ถูกเก็บไว้ในทำการต่อได้ทันทีเช่นนิ้วตาราง หมายเลขของโหนที่ต้องติดต่อเพื่อค้นหาทายาทในเครือข่ายที่มี N โหน เป็น {displaystyle O(log N) } O (log N) (ดูหลักฐานด้านล่าง)เข้าร่วมโหน [แก้]เมื่อโหนใหม่รวม ควรรักษาสาม invariants (สองคนแรกตรวจความถูกต้อง และสุดท้ายช่วยทำแบบสอบถามอย่างรวดเร็ว):แต่ละโหนสืบไปทดทันทีอย่างถูกต้องแต่ละคีย์ถูกเก็บไว้ใน successor(k) {displaystyle successor(k) }แต่ละโหนตารางนิ้วควรถูกต้องการตอบสนองเหล่านี้ invariants เขตข้อมูลก่อนหน้าถูกรักษาไว้สำหรับแต่ละโหน สืบต่อเป็น รายการแรกของตารางนิ้ว เราไม่จำเป็นต้องรักษาฟิลด์นี้แยกต่างหากใด ๆ เพิ่มเติม ควรทำงานต่อไป n:โหนใหม่รวม {displaystyle n }เริ่มต้นโหน
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 2:[สำเนา]
คัดลอก!
ในการใช้คอมพิวเตอร์, คอร์ดเป็นโปรโตคอลและอัลกอริทึมสำหรับตารางแฮชแบบ peer-to-peer กระจาย กัญชากระจายร้านค้าตารางคู่ค่าคีย์โดยการกำหนดปุ่มไปยังคอมพิวเตอร์ที่แตกต่างกัน (เรียกว่า "โหนด"); โหนดจะเก็บค่าสำหรับคีย์ทั้งหมดที่มันเป็นความรับผิดชอบ คอร์ดระบุว่ากุญแจที่ได้รับมอบหมายไปยังต่อมน้ำและวิธีโหนดสามารถค้นพบค่าสำหรับคีย์ได้รับเป็นครั้งแรกโดยตำแหน่งโหนดที่รับผิดชอบในการที่สำคัญที่.

คอร์ดเป็นหนึ่งในโปรโตคอลตารางแฮชกระจายเดิมสี่พร้อมกับสามารถ Tapestry และ ขนมปิ้ง มันถูกนำมาใช้ในปี 2001 โดยไอออน Stoica, โรเบิร์ตมอร์ริส, เดวิด Karger ฟรานส์ Kaashoek และฮาริบาลาคและได้รับการพัฒนาที่ MIT. [1]

ภาพรวม
โหนดและคีย์จะกำหนด { displaystyle m} ระบุ M-bit ใช้คร่ำเครียดที่สอดคล้องกัน . อัลกอริทึม SHA-1 เป็นฟังก์ชั่นฐานคร่ำเครียดสำหรับคร่ำเครียดที่สอดคล้องกัน คร่ำเครียดอย่างสม่ำเสมอเป็นส่วนที่สำคัญของความทนทานและประสิทธิภาพของคอร์ดเพราะทั้งสองปุ่มและโหนด (ในความเป็นจริงที่อยู่ IP ของพวกเขา) จะกระจายอย่างสม่ำเสมอในพื้นที่ระบุเช่นเดียวกันกับความเป็นไปได้เล็กน้อยจากการปะทะกัน ดังนั้นจึงยังช่วยให้ต่อมน้ำจะเข้าร่วมและออกจากเครือข่ายได้โดยไม่ต้องหยุดชะงัก ในโปรโตคอลโหนดเป็นคำที่ใช้ในการอ้างถึงทั้งสองโหนดตัวเองและตัวระบุ (ID) โดยไม่คลุมเครือ ดังนั้นเป็นกุญแจสำคัญในคำว่า.

โดยใช้โปรโตคอลค้นหาคอร์ดโหนดและคีย์จะจัดในวงกลมระบุว่ามีมากที่สุด { displaystyle 2 ^ {m}} 2 ^ {m} โหนดตั้งแต่ { displaystyle 0} { displaystyle 0} เป็น { displaystyle 2 ^ {m}} -1 2 ^ M - 1 ({ displaystyle m} เมตรควรมีขนาดใหญ่พอที่จะหลีกเลี่ยงการปะทะ.)

แต่ละโหนดมีทายาทและผู้บุกเบิก ผู้สืบทอดไปยังโหนดเป็นโหนดต่อไปในวงกลมระบุในทิศทางตามเข็มนาฬิกา บรรพบุรุษเป็นทวนเข็มนาฬิกา หากมีโหนดสำหรับแต่ละ ID ที่เป็นไปได้สืบต่อจากโหนด 0 คือโหนดที่ 1 และบรรพบุรุษของโหนด 0 คือโหนด { displaystyle 2 ^ {m}} -1 2 ^ M - 1; แต่ตามปกติมี "หลุม" ในลำดับ ยกตัวอย่างเช่นทายาทของโหนด 153 อาจจะเป็นโหนด 167 (และต่อมน้ำ 154-166 ไม่อยู่); ในกรณีนี้บรรพบุรุษของโหนด 167 จะ 153 โหนด

แนวคิดของทายาทสามารถนำมาใช้สำหรับคีย์เช่นกัน โหนดตัวตายตัวแทนของคีย์ { displaystyle K} k เป็นโหนดแรกที่มี ID เท่ากับ { displaystyle K} K or ดังนี้ { displaystyle K} K ในวงกลมระบุ, แสดงโดย { displaystyle ทายาท (k)} ทายาท (k) ที่สำคัญทุกคนจะได้รับมอบหมายให้ (เก็บไว้ที่) โหนทายาทของตนเพื่อให้มองขึ้นไปคีย์ { displaystyle K} k คือการค้นหา { displaystyle ทายาท (k)} ทายาท (k).

ตั้งแต่ทายาท (หรือบรรพบุรุษ) ของโหนด อาจหายไปจากเครือข่าย (เพราะความล้มเหลวหรือการเดินทาง) ที่แต่ละโหนดบันทึกทั้งส่วนของวงกลมที่อยู่ติดกับมันกล่าวคือ { displaystyle r} โหนด R ก่อนหน้านั้นและ { displaystyle r} โหนด R ต่อไปนี้มัน ผลการค้นหารายการนี้ในโอกาสสูงที่โหนดสามารถที่จะถูกต้องค้นหาทายาทหรือบรรพบุรุษของมันแม้ว่าเครือข่ายในคำถามที่ทนทุกข์ทรมานจากอัตราความล้มเหลวสูง.

พิธีสารรายละเอียด
แบบสอบถามพื้นฐาน [แก้ไข]
การใช้งานหลักของโพรโทคอคอร์ดคือการค้นหา ที่สำคัญจากลูกค้า (โดยทั่วไปโหนดเช่นกัน) คือเพื่อค้นหา { displaystyle ทายาท (k)} ทายาท (k) วิธีการขั้นพื้นฐานคือการผ่านแบบสอบถามไปยังทายาทของโหนดถ้ามันไม่สามารถหาที่สำคัญในประเทศ นี้จะนำไปสู่การ { displaystyle O (n)} O (n) แบบสอบถามเวลา.

ตารางนิ้ว [แก้ไข]
เพื่อหลีกเลี่ยงการค้นหาเชิงเส้นข้างต้นคอร์ดดำเนินวิธีการค้นหาได้เร็วขึ้นโดยกำหนดให้แต่ละโหนดเพื่อให้ตารางนิ้วที่มีถึง { displaystyle m} รายการ M ว่า { displaystyle ฉัน ^ {TH}} ฉัน ^ {TH} รายการของโหนด { displaystyle n} n จะมี { displaystyle ทายาท ((N + 2 ^ {i-1}) { BMOD {, }} 2 ^ {m})} ทายาท ((n + 2 ^ {i-1}) , BMOD , ^ 2 เมตร) รายการแรกของตารางนิ้วเป็นจริงทายาททันทีโหนด (และดังนั้นจึงสนามทายาทพิเศษไม่จำเป็น) เวลาโหนดต้องการที่จะมองขึ้นคีย์ { displaystyle K} K ทุกคนก็จะผ่านแบบสอบถามไปยังผู้สืบทอดที่อยู่ใกล้หรือบรรพบุรุษ (ขึ้นอยู่กับตารางนิ้ว) ของ { displaystyle K} K ในตารางนิ้วของตน (ที่ "ใหญ่ที่สุด "หนึ่งในวงกลมที่มีหมายเลขมีขนาดเล็กกว่า { displaystyle K} k) จนกว่าโหนดพบที่สำคัญคือการเก็บไว้ในทายาทของมันทันที.

ด้วยเช่นตารางนิ้วจำนวนโหนดที่จะต้องได้รับการติดต่อเพื่อหาผู้สืบทอด ในเครือข่าย N-โหนด { displaystyle O ( log n)} O ( log n) (ดูหลักฐานด้านล่าง.)

โหนดเข้าร่วม [แก้ไข]
เมื่อใดก็ตามที่โหนดใหม่เข้าร่วมสามคงที่ควรได้รับการเก็บรักษาไว้ (สองคนแรกให้แน่ใจว่าถูกต้องและคนสุดท้ายที่ช่วยให้การสอบถามเร็ว):

น. ของแต่ละโหนดจุดทายาทผู้สืบทอดของมันทันทีอย่างถูกต้อง
ที่สำคัญแต่ละคนเป็น เก็บไว้ใน { displaystyle ทายาท (k)} ทายาท (k).
ตารางนิ้วของแต่ละโหนดควรถูกต้อง.
เพื่อตอบสนองความคงที่เหล่าฟิลด์บรรพบุรุษจะถูกเก็บไว้สำหรับแต่ละโหนด เป็นผู้สืบทอดเป็นรายการแรกของตารางนิ้วที่เราไม่จำเป็นต้องรักษาข้อมูลนี้แยกใด ๆ เพิ่มเติม งานต่อไปนี้ควรจะทำสำหรับโหนดใหม่เข้าร่วม { displaystyle n} N:

เริ่มต้นโหนด
การแปล กรุณารอสักครู่..
ผลลัพธ์ (ไทย) 3:[สำเนา]
คัดลอก!
ในการคำนวณ คอร์ดคือโปรโตคอลและขั้นตอนวิธีแบบกระจายสำหรับตารางแฮช . ตารางแฮชกระจายเก็บค่าคีย์คู่ โดยการกำหนดคีย์คอมพิวเตอร์เครื่องอื่น ( เรียกว่า " จุด " ) ; ปมจะเก็บค่าของคีย์ทั้งหมดที่เป็นผู้รับผิดชอบ คอร์ดระบุวิธีการคีย์ให้กับโหนดและโหนดสามารถค้นพบคุณค่าเพื่อให้คีย์โดยก่อนติดตั้งโหนดต้องรับผิดชอบกุญแจนั่นคอร์ดเป็นหนึ่งในสี่เดิมกระจายตารางแฮชโปรโตคอลพร้อมกับสามารถ , พรม , และขนมอบ มันได้รับการแนะนำในปี 2001 โดยไอออน stoica โรเบิร์ตมอร์ริส , เดวิด คาร์เกอร์ , ภาษาฝรั่ง kaashoek และ Hari Balakrishnan , และพัฒนา [ 1 ] ที่ MITรายละเอียดโหนดและคีย์จะกำหนด { M } displaystyle m-bit ระบุใช้ที่สอดคล้องกันการ hashing . ขั้นตอนวิธีการแฮชฟังก์ชัน sha-1 เป็นฐานให้สอดคล้องการ hashing . ที่สอดคล้องการ hashing เป็นหนึ่งเพื่อความทนทานและประสิทธิภาพของคอร์ด เพราะทั้งคีย์และโหนด ( ในความเป็นจริงของพวกเขาที่อยู่ IP ) เป็นจุดกระจายในแบบระบุพื้นที่ที่มีความเป็นไปได้เล็กน้อยจากการปะทะกัน ดังนั้น , มันยังช่วยให้โหนดเข้าและออกจากเครือข่าย โดยไม่มีการหยุดชะงัก ในขั้นตอน ระยะเวลา โหนดถูกใช้เพื่ออ้างถึงทั้งสองโหนดตัวเองและระบุ ( ID ) โดยไม่มีความคลุมเครือ ดังนั้นคำว่ากุญแจการใช้คอร์ดค้นหาโปรโตคอล , โหนดและปุ่มเรียงกันเป็นวงกลม ที่ระบุมีเวลามากที่สุด { displaystyle 2 ^ { M } } 2 ^ { M } { displaystyle โหนดตั้งแต่ 0 } { 0 } { displaystyle displaystyle 2 ^ { M } 1 } 2 ^ - M - 1 ( displaystyle { M } M ควรมีขนาดใหญ่เพียงพอที่จะหลีกเลี่ยงการปะทะกัน )แต่ละโหนดมีผู้สืบทอดและบรรพบุรุษ . ทายาทของโหนดเป็นโหนดถัดไปในพิกัดวงกลมในทิศทางตามเข็มนาฬิกา บรรพบุรุษเป็นเคาน์เตอร์ตามเข็มนาฬิกา หากมีโหนดแต่ละเป็นไปได้ ID , ทายาทของโหนดเป็นโหนด 0 1 และบรรพบุรุษของโหนดเป็นโหนด 0 { displaystyle 2 ^ { M } 1 } 2 ^ - M - 1 ; อย่างไรก็ตาม โดยปกติมี " รู " ในลำดับ ตัวอย่างเช่น ผู้สืบทอดตำแหน่งของโหนดที่โหนดและโหนดจะ 167 จาก 154 ใน 166 ไม่อยู่ ) ; ในกรณีนี้ บรรพบุรุษของโหนดเป็นโหนด 167 153แนวคิดของทายาทสามารถใช้กุญแจเช่นกัน ผู้สืบทอดโหนดของคีย์ { K } K เป็นครั้งแรก displaystyle โหนดที่มี ID เท่ากับ { K } { displaystyle K หรือตาม displaystyle K } K ในตัววงกลม แทน โดย displaystyle ( K ) } { ทายาทผู้สืบทอด ( K ) ทุกคีย์ที่มอบหมายให้ ( อุณหภูมิ ) ของทายาทโหนดเพื่อหากุญแจ { displaystyle K } K คือแบบสอบถาม { displaystyle ทายาทผู้สืบทอด ( K ) } ( K )เพราะผู้สืบทอด ( หรือบรรพบุรุษ ) ของโหนดอาจหายไปจากเครือข่าย ( เนื่องจากความล้มเหลวหรือออกเดินทาง ) , แต่ละโหนดประวัติส่วนทั้งหมดของเวทย์ที่อยู่ติดกันนั้น เช่น displaystyle R } { R โหนดก่อนหน้านี้และ displaystyle R } { R โหนดดังนี้ครับ รายการนี้ผลในความเป็นไปได้สูงที่โหนดสามารถถูกค้นหาของทายาท หรือบรรพบุรุษ แม้ว่าคำถามเครือข่ายในทนทุกข์ทรมานจากอัตราความล้มเหลวสูงรายละเอียด โปรโตคอล[ แก้ไข ] แบบสอบถามเบื้องต้นหลักการใช้งานของคอร์ด ( แบบสอบถามคีย์จากลูกค้า ( โดยทั่วไปโหนดเช่นกัน ) นั่นคือ หา displaystyle ( K ) } { ทายาทผู้สืบทอด ( K ) แนวคิดพื้นฐานคือการส่งแบบสอบถามไปยังทายาทของโหนด หากไม่สามารถหากุญแจสำคัญในประเทศ นี้จะนำไปสู่ { displaystyle O ( n ) } O ( n ) เวลาสอบถามนิ้วโต๊ะ [ แก้ไข ]หลีกเลี่ยงเส้นตรงค้นหาข้างบน คอร์ด ใช้วิธีค้นหาได้เร็วขึ้น โดยให้แต่ละโหนดเก็บตารางนิ้วที่มีถึง { M } M displaystyle รายการ { displaystyle ผม ^ ^ { { th } } ฉันรายการของโหนด TH } { n } n displaystyle จะประกอบด้วย displaystyle ผู้สืบทอด ( N + { 2 ^ { i-1 } ) { mod { } } 2 ^ , { M } ) } ผู้สืบทอด ( ( n + 2 ^ { } mod i-1 ) 2 ^ m ) รายการแรกของตารางนิ้วจริงๆ ของโหนดทันที ( และดังนั้นจึงเป็นทายาทผู้สืบทอดด้านเสริมไม่ต้องการ ) เวลาที่ทุกโหนดที่ต้องการหา คีย์ displaystyle K } { K ก็จะส่งแบบสอบถามไปยังทายาทใกล้หรือบรรพบุรุษ ( ขึ้นอยู่กับนิ้วโต๊ะ ) { displaystyle K } K ในนิ้วโต๊ะ ( " ใหญ่ที่สุด " หนึ่งบนวงกลมซึ่งมีขนาดเล็กกว่า displaystyle ID { K } K ) จนกว่าโหนดพบว่าคีย์จะถูกเก็บไว้ในตำแหน่งของมันทันทีด้วยเช่นนิ้วตาราง จำนวนของจุดที่ต้องมีการติดต่อหาผู้สืบทอดใน n-node เครือข่าย { displaystyle O ( log n ) } O ( log n ) ( ดูหลักฐานด้านล่าง )โหนดร่วม [ แก้ไข ]เมื่อใดก็ตามที่โหนดใหม่รวม 3 ผลยืนยงควรจะรักษา ( สองคนแรกตรวจสอบความถูกต้องและสุดท้ายเก็บข้อมูลได้อย่างรวดเร็ว )ของโหนดในแต่ละจุดของผู้สืบทอดทายาททันทีได้อย่างถูกต้องแต่ละคีย์จะถูกเก็บไว้ใน displaystyle ( K ) } { ทายาทผู้สืบทอด ( K )ของโหนดแต่ละนิ้วโต๊ะควรจะถูกต้องเพื่อตอบสนองผลยืนยงเหล่านี้ บรรพบุรุษเขตมีการรักษาสำหรับแต่ละโหนด ในฐานะทายาท คือ รายการแรกของนิ้วตาราง เราไม่ต้องการการรักษาด้านนี้แยกต่างหากอีก งานต่อไปนี้ควรทำสำหรับโหนดใหม่เข้าร่วม { displaystyle n } N :เริ่มการทำงานของปม
การแปล กรุณารอสักครู่..
 
ภาษาอื่น ๆ
การสนับสนุนเครื่องมือแปลภาษา: กรีก, กันนาดา, กาลิเชียน, คลิงออน, คอร์สิกา, คาซัค, คาตาลัน, คินยารวันดา, คีร์กิซ, คุชราต, จอร์เจีย, จีน, จีนดั้งเดิม, ชวา, ชิเชวา, ซามัว, ซีบัวโน, ซุนดา, ซูลู, ญี่ปุ่น, ดัตช์, ตรวจหาภาษา, ตุรกี, ทมิฬ, ทาจิก, ทาทาร์, นอร์เวย์, บอสเนีย, บัลแกเรีย, บาสก์, ปัญจาป, ฝรั่งเศส, พาชตู, ฟริเชียน, ฟินแลนด์, ฟิลิปปินส์, ภาษาอินโดนีเซี, มองโกเลีย, มัลทีส, มาซีโดเนีย, มาราฐี, มาลากาซี, มาลายาลัม, มาเลย์, ม้ง, ยิดดิช, ยูเครน, รัสเซีย, ละติน, ลักเซมเบิร์ก, ลัตเวีย, ลาว, ลิทัวเนีย, สวาฮิลี, สวีเดน, สิงหล, สินธี, สเปน, สโลวัก, สโลวีเนีย, อังกฤษ, อัมฮาริก, อาร์เซอร์ไบจัน, อาร์เมเนีย, อาหรับ, อิกโบ, อิตาลี, อุยกูร์, อุสเบกิสถาน, อูรดู, ฮังการี, ฮัวซา, ฮาวาย, ฮินดี, ฮีบรู, เกลิกสกอต, เกาหลี, เขมร, เคิร์ด, เช็ก, เซอร์เบียน, เซโซโท, เดนมาร์ก, เตลูกู, เติร์กเมน, เนปาล, เบงกอล, เบลารุส, เปอร์เซีย, เมารี, เมียนมา (พม่า), เยอรมัน, เวลส์, เวียดนาม, เอสเปอแรนโต, เอสโทเนีย, เฮติครีโอล, แอฟริกา, แอลเบเนีย, โคซา, โครเอเชีย, โชนา, โซมาลี, โปรตุเกส, โปแลนด์, โยรูบา, โรมาเนีย, โอเดีย (โอริยา), ไทย, ไอซ์แลนด์, ไอร์แลนด์, การแปลภาษา.

Copyright ©2025 I Love Translation. All reserved.

E-mail: