Doldurma Pastacılık Yönlendirme Tablosu Nasıl Çalışır?


23

Pasta Dağıtılmış Hash Tablosunu uygulamaya çalışıyorum, ancak bazı şeyler anlayışımdan kaçıyor. Birinin netleşebileceğini umuyordum.

Yasal Uyarı : Ben bir bilgisayar bilimi öğrencisi değilim. Hayatımda tam olarak iki bilgisayar bilimi dersi aldım ve hiçbiri uzaktan karmaşık bir şeyle ilgilenmedim. Yıllarca yazılımla çalıştım, bu yüzden kafamı fikirlerin etrafına sarabilirsem, uygulama görevinde olduğumu hissediyorum. Bu yüzden bariz bir şeyi kaçırmış olabilirim.

Yazarların yayınladığı makaleyi okudum [1] ve iyi bir ilerleme kaydettim, ancak yönlendirme tablosunun nasıl çalıştığıyla ilgili belirli bir noktaya takılmaya devam ediyorum:

Kağıt, iddia ediyor

Bir düğümün yönlendirme tablosu, R , halinde düzenlenmiştir log2bN , satırlar 2b1 girişleri her. 2b1 satırdaki girişleri n yönlendirme tablosunda her birinin, nodeID payları, mevcut düğümün nodeID fi ilk N rakam, ama diğer yandan da bir düğümün bakınız n+1 inci basamak birine sahip 2b1 den olası değerler diğer n+1 , mevcut düğümün id inci basamaklı.

uygulamaya özel bir değişkeni, genellikle açılımı 4 . Sadelik uğruna b = 4'ü kullanalım . Yani yukarıdakib4b=4

Bir düğümün yönlendirme tablosu, , halinde düzenlenmiştir log 16 N satırları 15 girişlerinin her biri. 15 satırdaki girişleri n yönlendirme tablosunda her birinin, nodeID ilk fi paylar, mevcut düğümün nodeID rakam, ama diğer yandan da, n, bir düğüm bakınız , n + 1 inci basamak birine sahip 2 b - 1 olası değerler dışında n + Mevcut düğümün kimliğinde 1. basamak.Rlog16N1515nn+12b1n+1

Bunu çok anlıyorum. Ayrıca, kümedeki sunucu sayısıdır. Onu da anlıyorum.N

Sorum şu ki, bir girişin yerleştirildiği satır, anahtarın paylaşılan uzunluğuna bağlıysa, neden satır sayısı üzerindeki görünüşte rastgele bir sınır? Her düğümNd'nin 32 basamağı vardır, b=4 (128 bit düğüm kimliği, bitlerin basamağına bölünmüştür). Ne olur yüksek yeterince alır log 16 N > 32 ? Bu senaryoyu vurmanın 340,282,366,920,938,463,463,374,607,431,768,211,457 (matematiğim doğruysa) sunucularını alacağını fark ettim, ancak garip bir katılım gibi görünüyor ve korelasyon asla açıklanmıyor.Nlog16N>32

Ayrıca, az sayıda sunucunuz varsa ne olur? 16'dan az sunucum varsa, tabloda yalnızca bir satırım var. Ayrıca, hiçbir koşulda, satırdaki her giriş karşılık gelen bir sunucuya sahip olmaz. Girişler boş bırakılmalı mı? Ne olursa olsun yaprak setindeki sunucuyu bulabileceğimin farkındayım, az sayıda sunucuya rağmen, ikinci satır için aynı quandary yükseltilir - ya nodeId'si olan bir sunucum yoksa n. basamaktaki her olası tahliyeyi doldurabilir miyim? Son olarak, eğer dört sunucum varsa ve 32 basamağın 20'sini paylaşan iki düğümüm var, rastgele bir şansa göre ... Bu düğüm için tablonun 20 satırını doldurmalı mıyım? doldurmaya yaklaşabileceğimden çok daha fazla satır var mı?

İşte karşınıza çıkan, şu şekilde atılmaya çalışıyorum:

  1. Bu önekle tam olarak eşleşen bir düğüm yoksa, girişler boş bir değere ayarlanır.
  2. NodeIds öğesinin paylaşılan uzunluğu ile eşleşecek kadar satır bulunana kadar boş satırlar eklenmelidir.
  3. İstenilen bir mesaj kimliği için eşleşen bir giriş yoksa ve yalnızca, eğer paylaşılan uzunluğu geçerli düğüm kimliğine eşit veya ondan daha büyük olan ve girişi matematiksel olarak akımdan daha yakın olan bir nodeId için yönlendirme tablosu aramasına geri döner. nodeId, istenen ID'ye.
  4. # 3'te uygun bir düğüm bulunamazsa, bunun hedef olduğunu varsayalım ve iletiyi iletin.

Bu varsayımların dördü de dayanıyor mu? Bu konuda bilgi aramam gereken başka bir yer var mı?


  1. Pasta: Büyük ölçekli eşler arası sistemler için ölçeklenebilir, merkezi olmayan nesne konumu ve yönlendirmesi A. Rowstrong ve P. Druschel (2001) - buradan indirin

Çok az programlama olduğunu söyledin. Makale gerçekten programlama (doğrudan) ile ilgili değil, iki düğüm arasında en kısa yol ağıyla ilgilidir. Bundan sonraki soru şudur: Ne miktarda ağ altyapısına sahip oldunuz? Bu tamamen ağ üzerinden yönlendirme ile ilgili.

Aslında yeterli programlama deneyimine sahip olduğuma inandığımı söyledim. Bilgisayar bilimi deneyimim eksik hissediyorum. Ne olursa olsun, ağ deneyimim yanındayım. Bunun öncelikle ağ kurma ile ilgili olduğu iddiasına katılıyorumdan emin değilim, ama düşüncelerinizi duymayı çok isterim.

Yanıtlar:


5

Pastacılıkta (ve tüm yapılandırılmış P2P ağlarında) bir yönlendirme tablosu fikri, daha hızlı bir yönlendirmeyi garanti ederken boyutunu küçültmektir.

Pastanın yönlendirme algoritması aşağıdaki gibidir:

Aşama A. Bir düğüm, bir nesneyi önce yaprak setine bakarak A nesnesini arar. Adım B. Eğer mevcut değilse, sorgu " en azından A düğümünde paylaştığınız düğümden daha büyük olan ile bir takım ön ekler" paylaşan bilinen bir düğüme iletilir . Adım C. Eğer böyle bir kayıt bulunmazsa, sorgu, yaprak kümesinde A'ya sayısal olarak en yakın olan bir düğüme iletilir .AA

u aşağıdaki gibi düğüm adreslerini depolayan onun tablosunu düzenler:

iuiu .

(i+1)thi{0,,2b1}

A 4324 tanımlayıcısına sahipse: işte bunun olacağı şudur: (bunun 4 tabanının olduğunu varsayıyoruz (örneğin, adresler [1-4] [1- 4] [1-4] [1-4]).

uAuAuu1u1

u1A olan 43XX. - Bu 4331 ise, o zaman ona doğru ileri olacaktır.

log2bb2bb = 4'ün iyi bir denge olduğunu söyledi!

Pratik senaryolar genellikle bu şekilde tipik değildir. Ağda çok fazla düğüm bulunmadığı durumlar olabilir. bu yüzden yukarıdaki C adımını takip ediyoruz. - Bununla birlikte, bu algoritmayı doğru yapmak için garanti etmeniz gereken, her bir düğümün kendisine en yakın iki düğüme (tanımlayıcılar açısından) bağlı olmasıdır. Bu, sipariş edilen düğümlerin bir halkasını oluşturacaktır [örneğin 1-> 3-> 4-> 9-> 10-> 11-> 1]


Tamamen ne sorduğumu değil, algoritmaya çok iyi bir genel bakış size yine de olumlu ve olumlu cevap veriyor. :)
Paddy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.