İşlem Havuzu: Bir Kuyruk ve Bir Özet Kümesi, ki Önceliklendirilecek Hiçbir Şey Yokken Doğru Cevap Budur
Bir havuz ne işe yarar
Bir işlem, onu koyacak bir blok olmadan önce geliyor. Bir şeyin onu tutması gerekiyor.
Ve çoğu zincirde politikayı o şey taşıyor: hangi işlem önce gider, havuz dolduğunda ne olur, bir gönderen zaten bekleyen bir tanesinin yerine yenisini koyabilir mi. Havuz, bir zincirin iktisadının kod olarak göründüğü yerdir.
Bizimki ne
Bir kuyruk ve bir özet kümesi, yaklaşık iki yüz satırda.
ilk giren ilk çıkar, hiçbir türden yeniden sıralama olmadan işlem özetiyle yinelemesizleştirilmiş, dolayısıyla aynı işlem iki kez kuyruğa alınamaz kapasite on bin, ve dolu bir havuz tahliye etmek yerine reddediyor önden boşaltılıyor, ve boşaltılan bir işlem unutuluyor, böylece yeniden gönderilebiliyor
İmza kapıda kontrol ediliyor. İmzası doğrulanmayan bir işlem, gönderim işleyicisi tarafından geri çevriliyor ve havuza hiç girmiyor.
İlk giren ilk çıkar neden burada tembel değil doğru cevap
Ücret piyasası olan bir zincirde ücrete göre sıralamak havuzun bütün amacıdır. Gönderenler teklif verir, havuz sıralar, blok en üsttekini alır.
Bu zincirde ücret piyasası yok. Her işlem türünün tek bir düz fiyatı var, dolayısıyla aynı türden bekleyen iki işlem birbirinden ayırt edilemez ve farklı türden iki işlem birbiriyle yarışmıyor.
Önceliklendirilecek hiçbir şey olmayan bir öncelik kuyruğu, bir kuyruktan kötüdür: sıralama düzeneği ve onu oyunlamak için bir saldırı yüzeyi eklerdi, karşılığında hiçbir fayda vermeden. Havuz ücret tasarımıyla eşleşiyor ve ikisi de varsayılana düşülerek değil seçilerek geldi.
Sayaçlardan haberi yok ve bunun görünür bir sonucu var
Pek çok zincirde bir havuz, sırası henüz gelmemiş bir işlemi kendinden öncekini bekleyerek tutar.
Bu havuz sayaçlara hiç bakmıyor. Yani tek bir hesaptan iki işlemi yanlış sırada göndermek ikincisini birincinin arkasına kuyruğa almıyor: sonraki bloğa giriyor ve sayaç kontrolünde orada başarısız oluyor.
O başarısızlık bedavadır, çünkü sayaç kontrolü ücret alınmadan önce oluyor. Ama işlem gitmiştir ve yeniden gönderilmelidir ve havuzun bekleyeceğini varsayan bir çağıran şaşıracaktır.
Dolu, reddedildi demek; yalnızca bellekte, unutuldu demek
Havuz doluyken yeni işlem reddediliyor, yer açmak için bir şey tahliye edilmesi yerine. Sıraya konacak hiçbir şey yokken dürüst politika budur: tahliye etmek, hiçbir dayanağı olmadan bir kurban seçmek demek olurdu.
Ve havuz yalnızca bellekte. Düğümün yeniden başlatılması onu boşaltıyor ve gönderilmiş ama henüz dahil edilmemiş her şey yeniden oynatılmak yerine kayboluyor.
Ve göndermek zinciri uyandırıyor, ki bunu işler kılan kısım odur
Bu zincir bir saate göre değil olaylara göre öneriyor ve hiçbir şey olmadığında on dakikada bir blok yayıyor.
Dolayısıyla gönderim işleyicisi mutabakat döngüsünü açıkça uyandırıyor ve yorum sebebini tam olarak söylüyor: önerme olay güdümlüdür ve işlemi alacak serbest çalışan bir çevrim yoktur.
Kaybolan bir uyandırma sınırlıdır. Her döngü yineleme ortasındaysa bildirim düşürülüyor ve her döngü bir sonraki geçişinde havuzu yeniden kontrol ediyor, ki bu on dakikalık kalp atışı değil kısa ve sabit bir aralıktır.
Ve bunun hâlâ çözmediği şey
Daha önceki bir sayfa, bir makbuz için yaklaşık on saniye bekleyen bir istemcinin boştaki bir zincirde yeterince bekleyip beklemediğini sormuştu.
Bunun yarısı artık yanıtlanmış durumda: işlemin kendi bloğu hemen öneriliyor, çünkü gönderim önericiyi uyandırıyor.
Diğer yarısı değil. Kesinleşme iki tur daha gerektiriyor ve tek bir uyandırmanın onları hemen üretip üretmediği, yoksa bloğu sonraki kalp atışlarını bekler hâlde bırakıp bırakmadığı uçtan uca test edilmemiştir, çünkü onu test etmek zinciri okumak yerine ona yazmak demektir. Dosyalanmıştır ve hâlâ açıktır.
Kendiniz neyi kontrol edebilirsiniz
aynı işlemi iki kez gönderin
İkincisi yineleme olarak geri çevriliyor, ki bu yinelemesizleştirme kümesinin işini yapmasıdır. Sonra tek bir hesaptan sayaçları yer değiştirmiş iki işlem gönderin ve ikincisinin geri tutulmadığına dikkat edin.
Okumaya devam edin
- Durum Kökü: Durum Kıpırdadığında Kıpırdar, Kıpırdamadığında Durur ve Onu Açamazsınız
- Sayaç: Başarısız Bir İşlemin Ona Yaptığı ve Bu Dağıtımın Kendisinden Nasıl Korunması Gerektiği
- Gas, Sabit Ücretler ve 70/20/10 Bölüşümü
- Demirleme İşlemi: Neyi Kanıtladığı ve Buradaki 'Yönetişim'in Neden Asgariyi Teminata Yatıran Herkes Demek Olduğu