1.
dağıtık sistemlerin (bkz: distributed systems) "abi ben veriyi yazdım da, ne zaman yansır... valla allah kerim" felsefesidir. (bkz: nosql) dünyasının "aman tadımız kaçmasın ali rıza bey" diyerek (bkz: strong consistency) 'den (yani alman disiplininden) feragat edip, (bkz: availability) 'ye (yani 'dükkan hep açık olsun'culuğa) oynamasıdır.
olayı (bkz: dedikodu) metaforuyla anlatalım:
(bkz: strong consistency) (bankacılık modeli): ahmet (database) mehmet'ten (user) borç alır. bu bilgi herkese (tüm replikalara) aynı anda, atomik olarak (bkz: acid) gider. "ahmet borçlu" bilgisi teyit edilmeden kimse yeni işlem yapamaz. sıkıcıdır, yavaştır ama (bkz: güven) verir.
(bkz: eventual consistency) (dedikodu modeli): merve (server 1), "ayşe (veri) saçını kızıla boyatmış" bilgisini alır ve hemen "tamam aldım bilgiyi" (write success) der. ama bu dedikodunun (yeni veri) diğer sunuculara (zeynep, fatma, hayriye replikaları) ulaşması (bkz: zaman alır).
bu sırada (o eventual an gelene kadar):
ali, zeynep'e (server 2) sorar: "ayşe'nin saçı ne renk?"
zeynep (haberi henüz almamış): "valla en son sarıydı" (eski veri / stale data) der.
ali, 10 saniye sonra fatma'ya (server 3) sorar: "ayşe'nin saçı ne renk?"
fatma (dedikoduyu yeni almış): "kızıl olmuş ya!" (yeni veri) der.
ali'nin kafası: (bkz: noluyo amk).
işte eventual consistency, "sakin ol ali, eninde sonunda (eventually) herkes ayşe'nin saçının kızıl olduğunu öğrenecek" garantisidir. "ne zaman?" sorusunun cevabı ise (bkz: muamma) 'dır.
güzellikleri (neden katlanıyoruz?):
hız (performance): sistem (merve) dedikoduyu alır almaz (yazma işlemi) "ok" der, diğerlerine yaymakla (replikasyon) uğraşıp kullanıcıyı bekletmez. (bkz: write performance) tavan yapar.
dükkan hep açık (high availability): sunuculardan biri (zeynep) tatile çıksa (çökse) bile, diğerleri (merve, fatma) dedikoduyu almaya/yaymaya (okuma/yazma) devam eder. sistem durmaz. (bkz: cap teoremi) 'nin 'a' ve 'p' harflerini seçmektir bu.
zorlukları (saç baş yolduran kısım):
(bkz: sepetin boş görünmesi): kullanıcı (bkz: e-ticaret) sitesinde ürünü sepete ekler (server 1'e yazar), ödeme sayfasına gider (server 2'den okur). server 2'ye o "sepet bilgisi" henüz ulaşmadığı için (bkz: sepet boş) görünür. kullanıcı (bkz: tilt).
(bkz: o like'ı geri al): (bkz: instagram) 'da bir fotoğrafta 50 like görürsün. sayfayı yenilersin (f5), like sayısı 45'e düşer. bir daha f5, 52 olur. (bkz: borsa mı takip ediyoruz). o sırada replikalar kendi arasında "abi son durum ne?" diye anlaşmaya çalışmaktadır.
(bkz: conflict resolution): asıl cehennem. sen ve eski sevgilin, aynı anda (bkz: netflix) profilindeki "hesap sahibi" adını değiştirmeye çalışırsanız ne olacak? (bkz: last write wins) (son yazan kazanır) kuralı devreye girer ve kimin yazdığı şansa kalır. (bkz: kavga).
özetle: "abi benim için veri (bkz: anında) doğru olmak zorunda değil, sistem (bkz: hızlı) ve (bkz: ayakta) olsun yeter" dediğin işlerde (sosyal medya like'ı, "kullanıcı en son neye baktı" bilgisi, (bkz: iot) sensör verisi) candır.
ama "o para o hesaba şimdi geçecek" dediğin (bkz: bankacılık), (bkz: stok yönetimi) gibi yerlerde (bkz: aman diyim) uzak durulması gereken "bir ara hallederiz" felsefesidir.
olayı (bkz: dedikodu) metaforuyla anlatalım:
(bkz: strong consistency) (bankacılık modeli): ahmet (database) mehmet'ten (user) borç alır. bu bilgi herkese (tüm replikalara) aynı anda, atomik olarak (bkz: acid) gider. "ahmet borçlu" bilgisi teyit edilmeden kimse yeni işlem yapamaz. sıkıcıdır, yavaştır ama (bkz: güven) verir.
(bkz: eventual consistency) (dedikodu modeli): merve (server 1), "ayşe (veri) saçını kızıla boyatmış" bilgisini alır ve hemen "tamam aldım bilgiyi" (write success) der. ama bu dedikodunun (yeni veri) diğer sunuculara (zeynep, fatma, hayriye replikaları) ulaşması (bkz: zaman alır).
bu sırada (o eventual an gelene kadar):
ali, zeynep'e (server 2) sorar: "ayşe'nin saçı ne renk?"
zeynep (haberi henüz almamış): "valla en son sarıydı" (eski veri / stale data) der.
ali, 10 saniye sonra fatma'ya (server 3) sorar: "ayşe'nin saçı ne renk?"
fatma (dedikoduyu yeni almış): "kızıl olmuş ya!" (yeni veri) der.
ali'nin kafası: (bkz: noluyo amk).
işte eventual consistency, "sakin ol ali, eninde sonunda (eventually) herkes ayşe'nin saçının kızıl olduğunu öğrenecek" garantisidir. "ne zaman?" sorusunun cevabı ise (bkz: muamma) 'dır.
güzellikleri (neden katlanıyoruz?):
hız (performance): sistem (merve) dedikoduyu alır almaz (yazma işlemi) "ok" der, diğerlerine yaymakla (replikasyon) uğraşıp kullanıcıyı bekletmez. (bkz: write performance) tavan yapar.
dükkan hep açık (high availability): sunuculardan biri (zeynep) tatile çıksa (çökse) bile, diğerleri (merve, fatma) dedikoduyu almaya/yaymaya (okuma/yazma) devam eder. sistem durmaz. (bkz: cap teoremi) 'nin 'a' ve 'p' harflerini seçmektir bu.
zorlukları (saç baş yolduran kısım):
(bkz: sepetin boş görünmesi): kullanıcı (bkz: e-ticaret) sitesinde ürünü sepete ekler (server 1'e yazar), ödeme sayfasına gider (server 2'den okur). server 2'ye o "sepet bilgisi" henüz ulaşmadığı için (bkz: sepet boş) görünür. kullanıcı (bkz: tilt).
(bkz: o like'ı geri al): (bkz: instagram) 'da bir fotoğrafta 50 like görürsün. sayfayı yenilersin (f5), like sayısı 45'e düşer. bir daha f5, 52 olur. (bkz: borsa mı takip ediyoruz). o sırada replikalar kendi arasında "abi son durum ne?" diye anlaşmaya çalışmaktadır.
(bkz: conflict resolution): asıl cehennem. sen ve eski sevgilin, aynı anda (bkz: netflix) profilindeki "hesap sahibi" adını değiştirmeye çalışırsanız ne olacak? (bkz: last write wins) (son yazan kazanır) kuralı devreye girer ve kimin yazdığı şansa kalır. (bkz: kavga).
özetle: "abi benim için veri (bkz: anında) doğru olmak zorunda değil, sistem (bkz: hızlı) ve (bkz: ayakta) olsun yeter" dediğin işlerde (sosyal medya like'ı, "kullanıcı en son neye baktı" bilgisi, (bkz: iot) sensör verisi) candır.
ama "o para o hesaba şimdi geçecek" dediğin (bkz: bankacılık), (bkz: stok yönetimi) gibi yerlerde (bkz: aman diyim) uzak durulması gereken "bir ara hallederiz" felsefesidir.
devamını gör...