SORU
29 NİSAN 2011, Cuma


Tasarımı bir web tarayıcısı

Röportaj bir soru karşısında, "Eğer bir web tarayıcısı tasarımı olsaydın, nasıl önleyeceğini sana sonsuz döngü" ve ben de cevaplamaya çalışıyorum. içine? almaya geldim

Nasıl baştan başlıyor. Google bazı hub sayfaları yüzlerce (bu hub sayfaları başta bulunan bir farklı alt-soru) ile başladığını söylüyorlar. Google bağlantılar sayfasından ve aşağıdaki gibi, karma bir tablo daha önce ziyaret edilen sayfaları takip etmediğine emin olmak için çıkarıp duruyor.

URL shorteners olduğumuz zaman aynı sayfa 2 adları (URL) demek bu gün ne vb

Örnek olarak Google almış. Google web tarayıcısı, algoritmalar ve sayfa sıralaması vs. işini nasıl sızıntı yok gerçi, ama bir fikriniz var mı?

CEVAP
29 NİSAN 2011, Cuma


Eğer ayrıntılı bir cevap modern bir kazıyıcı URL görülen test açıklayan section 3.8 this paper, bir göz atın almak isterseniz:

Ayıklama bağlantılar, herhangi bir Web tarayıcısı, çoklu karşılaşacak aynı belgeye bağlar. Önlemek için indirme ve işleme belgesi birden çok kez, URL-görülen bir test gerekir her çıkarılan bağlantı yapılabilir URL sınır eklemeden önce. (Alternatif bir tasarım olacaktır URL-görülen zaman test gerçekleştirmek yerine URL sınır kaldırıldı. ama bu yaklaşım bir neden olacaktır çok daha büyük bir sınır.)

Gerçekleştirmek için URL-görülen test deposu tüm Kurallı içinde Mercator tarafından görülen url büyük bir tablo, form URL aradı ayarlayın. Yine, çok fazla giriş var onları bellekte sığacak gibi yani belgede parmak izi set, URL set çoğunlukla disk üzerinde depolanır.

Kaydetmek için boşluk, metin saklanmamaktadır URL her URL gösterimi ama bunun yerine bir sabit boyutlu set sağlama toplamı. Parmak izleri farklı içerik-görülen test için sunulan belgede parmak izi, akış ayarlayın URL URL kümesi karşı test var yerellik önemsiz bir miktar. İçin bu işlemleri sayısını azaltmak disk dosya yedekleme, bu nedenle devam et popüler URL bellek içi önbellek. Bu önbellek için sezgi bu bazı adresler, bağlantılar oldukça yaygındır, bellekte popüler olanlar önbellekleme yani yüksek bellek vurmak için neden olacaktır oranı.

Aslında, bir bellek kullanarak 2^18 girişler ve LRU-önbellek yedek ilkesi saat, biz elde -bellek üzerinde genel isabet oranı 66.2% ve 9.5%isabet oranı önbellek son eklenen URL masada, 75.7% net bir isabet oranı için. Ayrıca, Bayan istek 24.3% popüler URL önbelleği ve her iki tablo en son eklenen URL hakkında 1=3 bizim tampon asılır üretmek random access uygulama dosyası, ayrıca Kullanıcı uzayında yer alır. Bu tüm bu tamponlama net sonuç. her üyelik gerçekleştiriyoruz test URL ortalama sonuçlar kümesi 0, 16 ' sı alın ve okuyun 0.17 çekirdek (bazı kısmını hangi aramalar çekirdeğin dosya sistemi sunulan tamponlar). Yani, her bir URL üyelik test altıda biri kadar çok çekirdek ikna bu üyeliği bir test olarak çağırır belgede parmak izi ayarlayın. Bu tasarruf miktarı tamamen nedeniyle URL konum (yani, tekrarı popüler URL) doğal akışında URL gezinme sırasında karşılaştı.

Temelde, her bir URL için benzersiz sağlamalarının garanti bir karma işlevi ile adreslerin hepsi karma ve URL konum nedeniyle, çok kolay bir URL bulmak için olur. Açık kaynaklı Google bile karma işlevi: CityHash

UYARI!
Ayrıca bot tuzakları hakkında konuşmuyor olabilirler!!! Bir bot tuzağı bir bölüm bir sayfa tutar üreten yeni bağlantılar ile benzersiz bir URL ve aslında kapana kısılmış bir "sonsuz döngü", aşağıdaki bağlantılar ediliyor servis tarafından o sayfa. Bu döngü aynı URL ziyaret sonucu olur çünkü tam bir döngü değil, ama sürünerek kaçınmalısınız URL sonsuz bir zincir.

Güncelleme 12/13/2012- dünya bir gün sonra sona :) gerekiyordu

Fr0zenFyr yorum başına: eğer bir seçme sayfaları için AOPIC algoritma kullanıyorsa, o zaman oldukça kolay sonsuz döngü bir çeşit bot-tuzaklar önlemek için. Burada AOPİC nasıl çalıştığı hakkında bir özet:

  1. N tohum sayfaları bul.
  2. X gezinmeye başladı önce her sayfa X/N kredi (kredi eşit miktarda yani) böyle her sayfa için kredi miktarı, tahsis edilecek.
  3. P kredi yüksek miktarda (ya da eğer tüm sayfaları kredi aynı miktarda varsa, o zaman rastgele bir sayfayı tarama) bulunduğu bir sayfa P, seçin.
  4. Sayfa P (hadi O P sürünerek geldiğinde 100 Kredi söylediler) sürün.
  5. Sayfa P tüm bağlantılar (hadi 10 tanesi var ki) ayıklayın.
  6. 0 P kredi ayarlayın.
  7.  "" ve Lambda sayfa. bunu ayırmak vergi al
  8. Tahsis bir eşit miktarda kredi her bağlantı buldu sayfasında P P orijinal kredi - vergi: (100 (P kredi) - 10 ( vergi))/10 (bağlantılar) = 9 kredi başına her bağlantı.
  9. Adım 3 tekrarlayın.

Lambda sayfa sürekli vergi toplayan beri, sonunda kredi büyük miktarda sayfası ve gerekecek "taramak". "Aslında Lambda sayfa için bir HTTP isteği yapmak değil, çünkü bu" tırnak içinde, biz sadece kredi almak ve onları eşit olarak dağıtmak sürün derim ^strong>tümveri tabanımızda sayfaları.

Bot tuzakları sadece iç bağlantılar için kredi vermek ve nadiren dışarıdan kredi almak beri, sürekli Lambda sayfaya kredisi (vergi) sızıntısı. Lambda sayfa dağıtan kredi için tüm sayfalarında veritabanı eşit ve üzerine her devir bot trap sayfası kaybedecek daha fazla ve daha fazla kredi kadar var bu kadar az kredi o hemen hemen hiçbir zaman alır sürünerek tekrar. Bu genellikle geri bağlantıları kredileri diğer sayfalarda buldum çünkü iyi sayfaları ile gerçekleşebilir. Bu da sonuç olarak bir dinamik sayfa rütbe ve ne olur dikkat edin, herhangi bir zaman bir anlık görüntü veritabanı, sipariş sayfaları miktarı kredisi var, o zaman onlar-ecek büyük olasılıkla olacak emretti kabaca göregerçek page rank.

Bu sadece sonsuz döngü bir çeşit bot tuzakları önlemek, ama dikkat etmen gereken many other bot traps var ve etrafında çok yolu vardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • Qmusic Romania

    Qmusic Roman

    8 Temmuz 2011
  • Samantha Crain

    Samantha Cra

    30 EKİM 2008