Alibaba dağıtılmış önbellek hizmeti Tair'in sıcak veri hashing mekanizması

Yazar Liu Huan (Shallow Yi)

Sorun arka planı

Dağıtılmış önbellek, genellikle verileri herhangi bir sayıda küme düğümüne dağıtan (veya bölümlere ayıran) bir veri toplama olarak tanımlanır. Kümedeki belirli bir düğüm, önbellekteki verilerin bir kısmından sorumludur ve bir bütün olarak dışarıya birleşik bir erişim arabirimi sağlar. Dağıtılmış önbellek genellikle yüksek veri kullanılabilirliği sağlamak için yedekli bir yedekleme mekanizmasına dayanır ve aynı zamanda bellek içi veri ızgarası (IMDG) olarak da bilinir. Bulut platformlarının hızla gelişmesiyle birlikte, uygulama performansını iyileştirmenin önemli bir yolu olan dağıtılmış önbellekleme teknolojisi, sektörde giderek daha fazla ilgi ve Ar-Ge yatırımı aldı. Esnek önbellek platformu, bulut bilişim senaryosunda, kümenin dinamik ölçeklenebilirliğini ve yüksek kullanılabilirliğini vurgulayan yeni bir dağıtılmış önbellek kümesi biçimidir. Dinamik ölçeklenebilirlik, önbelleğe alma platformunun şeffaf hizmet genişletmesi sağlama yeteneğini ifade eder ve yüksek kullanılabilirlik, önbelleğe alma platformunun düğüm arızasını tolere edebileceğini ifade eder.

Tair, Alibaba Group tarafından geliştirilmiş, çok sayıda dahili dağıtım ve kullanıma sahip, kendi geliştirdiği bir elastik önbellek / depolama platformudur. Tair'in temel bileşeni, yüksek performanslı, ölçeklenebilir ve oldukça güvenilir bir NoSQL depolama sistemidir. Şu anda, MDB, LDB ve RDB gibi depolama motorları desteklenmektedir. Bunların arasında, MDB, Memcached'e benzer bir bellek depolama motorudur, LDB, LSM Ağacı kullanan kalıcı bir disk KV depolama motorudur ve RDB, Kuyruk, Ayar ve Haritalar gibi veri yapılarını destekleyen bir bellek ve kalıcı depolama motorudur.

Tair'in veri parçalama ve yönlendirme algoritması, 2007'de Amazon tarafından önerilen geliştirilmiş bir tutarlı karma algoritma kullanır. Bu algoritma, tüm karma alanını eşit büyüklükteki Q veri bölümlerine böler (sanal düğümler, Q > > N, N, önbellek düğümlerinin sayısıdır), her önbellek düğümü, işleme kapasitesine göre farklı sayıda veri bölümü tahsis eder. İstemci tarafından talep edilen verilerin anahtar değeri, karma işlevi tarafından karma halka üzerindeki konuma eşlenir ve belirteç olarak kaydedilir ve belirteç değeri yeniden belirli bir bölüm tanımlayıcısına karma hale getirilir. Bölüm tanımlayıcısını aldıktan sonra, istemci bölüm sunucusu eşleme tablosundan veri bölümünü depolayan önbellek düğümünü sorgular ve ardından veri erişimini gerçekleştirir. Aynı veri Anahtarını hesaplamak için bu algoritmanın kullanılması, şekilde gösterildiği gibi kaçınılmaz olarak sabit bir DataServer ile eşleştirilecektir:

Şu anda, tek bir DataServer düğümünün okuma ve yazma performansı, tek bir veri anahtarının okuma ve yazma performansının darboğazı haline gelir ve düğümü yatay olarak genişleterek çözülemez. Alibaba Group'un dahili e-ticaret departmanının promosyon faaliyetleri doğal olarak sıcak verilere sahip olduğundan, tüm elastik önbellek / depolama platformunun kararlılığını ve hizmet yeteneklerini geliştirmek için, yatay genişlemeyi sağlamak için sıcak verilerin okuma ve yazma yeteneklerini iyileştirmek gerekir. .

Tair'in depolama ve erişim ilkelerine dayanan bu makale, okuma ve yazma önbellekleri ile ilgili güncel konuları tartışıyor ve mevcut ihtiyaçları karşılayan sıcak veri okuma ve yazma sorunlarına bir çözüm sunuyor.

çözüm

Çözüm üç bölüme ayrılmıştır: sıcak nokta tanımlama, sıcak nokta şemasını okuma ve sıcak nokta şeması yazma. Okuma-yazma etkin nokta çözümleri, sunucunun etkin nokta erişimini doğru bir şekilde tanımlayabileceği öncülüne dayanır. Ek olarak, kısayol tuşunun önceden tahmin edilebildiği durum için, karşılık gelen istemci API, belirli bir veri anahtarının veya belirli bir Ad alanının tüm veri anahtarlarını bir kısayol tuşu olarak önceden işaretleme yeteneğini desteklemek için sağlanır.

DataServer'da Hotspot istatistiksel süreci

DataServer istemcinin isteğini aldıktan sonra, isteği işleyen her bir belirli çalışan iş parçacığı (İş Parçacığı) istek istatistiklerini gerçekleştirir. Sıcak noktaları saymak için çalışan iş parçacıkları tarafından kullanılan veri yapıları, tamamen kilitsiz olan ThreadLocal modundaki tüm veri yapılarıdır. Sıcak nokta tanıma algoritması, sunucu istek işleme verimliliğini sağlama öncülüğünde isteklerle ilgili tam istatistikler gerçekleştirmek için dikkatlice tasarlanmış çok seviyeli ağırlıklı LRU zinciri ve HashMap birleşik veri yapısı kullanır ve QPS etkin noktalarını ve trafik etkin noktalarını destekler (yani, istenen QPS büyük değil, verilerdir. Çok büyük olmasının neden olduğu büyük trafiğin oluşturduğu sıcak noktaların doğru tanımlanması. Her örnekleme döneminin sonunda, çalışan iş parçacığı istatistiksel veri yapısını analiz ve işleme için arka plan istatistiksel iş parçacığı havuzuna aktarır. İstatistiksel çalışma arka planda eşzamansız olarak gerçekleştirilir ve normal veri talepleri için kaynakların işlenmesine öncelik vermez.

Hotspot programını okuyun

Sunucu tasarımı

Orijinal Tair veri erişim yöntemi, belirli bir veri deposu olan Bucket'i elde etmek için önce Hash (Key)% BucketCount'u hesaplamak ve ardından Bucket'ın bulunduğu DataServer'ı bulmak için veri yönlendirme tablosunda arama yapmak ve ona okuma ve yazma istekleri yapmaktır. Bu nedenle, aynı Anahtar için okuma ve yazma istekleri sabit bir DataServer'a düşmelidir ve DataServer sayısının yatay olarak artırılmasıyla çözülemez.

Bu çözüm, DataServer'da bir HotZone depolama alanını bölerek sıcak verilere erişimi çözer. Bu alan, okuma etkin noktalarının mevcut olarak oluşturulmuş tüm verilerini depolar ve istemci tarafından yapılandırılan önbellek erişim mantığı tüm önbellek erişim düzeylerini yönetir. Çok seviyeli önbellek mimarisi aşağıdaki gibidir:

Tüm DataServer'ların HotZone depolama alanları arasında ağırlık ilişkisi yoktur ve her HotZone aynı okuma hotspot verilerini depolar. Müşterinin sıcak nokta veri Anahtarı talebi, herhangi bir DataServer'ın HotZone alanına rastgele gidecek, böylece tek bir etkin nokta isteği birden çok düğüme veya hatta tüm kümeye karma hale getirilecek.

Müşteri tasarımı

İstemci mantığı

İstemci ilk talepten önce başlatıldığında, tüm Tair kümesinin düğüm bilgisini ve tüm veri yönlendirme tablosunu ve ayrıca yapılandırılmış sayıda etkin nokta karma makinelerini (yani, istemci tarafından erişilen HotZone düğümleri aralığını) alır. Ardından istemci, sabit okuma-yazma HotZone bölgesi olarak rastgele bir HotZone bölgesini seçer. DataServer sayısının konfigürasyonu ve karma makinelerin sayısı değişmediyse, seçim değiştirilmeyecektir. Yani, her müşteri yalnızca benzersiz bir HotZone bölgesine erişir.

İstemci, etkin nokta Anahtar bilgisini sunucudan aldıktan sonra, istemcide en az N saniye boyunca etkili olacaktır. Hotspot Anahtarının etkin olduğu süre boyunca, istemci anahtara eriştiğinde, sıcak nokta verileri ilk olarak HotZone düğümünden erişmeyi deneyecektir.Bu sırada, HotZone düğümü ve kaynak veri DataServer düğümü ikinci düzey bir Önbellek modeli oluşturur. İstemci, iki seviyeli Önbellek işleme mantığını içerir Sıcak veriler için, istemci ilk olarak HotZone düğümünü ister.Veri mevcut değilse, kaynak veri düğümünü istemeye devam eder.Veri alındıktan sonra, veriler eşzamansız olarak HotZone düğümünde depolanır. Veri toplama arayüzünü rutin olarak çağırmak için Tair istemci uygulamasını kullanın ve geri bildirim, tüm sıcak noktanın tanımlanması ve çok seviyeli önbelleğe erişim dışarıdan tamamen şeffaftır. HotZone önbelleğe alınan verilerin tutarlılığı, istemci başlatıldığında belirlenen sona erme süresi ile garanti edilir ve belirli süre, belirli işin tutarsız önbelleğe alınmış verilere maksimum tolerans süresi tarafından belirlenir.

İstemcinin yerel etkin nokta geri bildiriminin süresi dolduktan sonra, veri anahtarı kaynak DataServer düğümüne okunacaktır. Anahtar hala sunucudaki etkin noktadaysa, istemci yeniden sıcak nokta geri bildirim paketini alacaktır. Tüm istemciler tarafından yerel olarak depolanan sıcak nokta geri bildirim bilgilerinin hata ritmi farklı olduğundan, tüm isteklerin aynı anda kaynağa dönmesi olmayacaktır. Tüm istekler kaynağa geri dönse bile, kaynağa yalnızca bir kez okunması gerekir ve maksimum okuma sayısı yalnızca uygulama makinelerinin sayısıdır. Kaynağa döndükten sonra Anahtarın artık bir sıcak nokta olmadığı tespit edilirse, istemci normal erişim moduna dönecektir.

Karma oranı ve QPS sapması arasındaki ilişki

Hotspot çözümleri yazın

Sunucu tasarımı

İşleme metodu

Sıcak noktalar yazmak için, tutarlılık sorununu çözmek için çok seviyeli önbelleğe almayı kullanmak zordur. Yerel Önbellek yazılırsa, kaynak DataServer zaman uyumsuz olarak güncellenir. Daha sonra Önbellek yazıldığında ancak henüz güncellenmediğinde, iş makinesi arızalanırsa, veri kaybı sorunu yaşanacaktır. Aynı zamanda, yerel Önbellek, veri güncellemelerini gerçekleştiren bir uygulama makinesinin mevcut güncelleme döngüsündeki değişikliğin diğer uygulama makinelerine görünmez olmasına neden olarak veri tutarsızlığının süresinin uzamasına neden olacaktır. Bu nedenle, çok seviyeli Önbellek çözümü, sıcak noktaların yazılmasını destekleyemez. Son olarak, yazma noktaları, sunucu tarafında istek birleştirme ile işlenir.

Sıcak nokta Anahtar yazma isteği, işlenmek üzere IO iş parçacığındaki özel bir sıcak nokta birleştirme iş parçacığına dağıtılır.İş parçacığı, anahtara göre belirli bir süre yazma isteğini birleştirir ve ardından zamanlama iş parçacığı, önceden ayarlanmış birleştirme döngüsüne göre birleştirilmiş isteği motora gönderir. Zemin. Birleştirme işlemi sırasında, istek sonucu şimdilik istemciye iade edilmeyecek ve birleştirme ve motora yazma isteği başarılı olduktan sonra tek tip olarak iade edilecektir. Böylelikle tutarlılık sorunları olmayacak, yazma başarılı olduktan sonra eski veriler okunmayacağı gibi LDB kümesinin başarılı bir şekilde geri dönmesi ve verilerin diske yerleştirilmemesi (yanlış yazma) durumunun da önüne geçecektir. Spesifik birleştirme döngüsü sunucuda yapılandırılabilir ve etkili olması için dinamik değişikliği destekler.

Müşteri tasarımı

Sıcak noktalar yazma planı, müşteri için tamamen şeffaftır ve müşteri tarafından herhangi bir değişiklik gerektirmez.

Verim

LDB kümesinin gerçek basınç testi etkisi, tek anahtarlı birleşmenin tek anahtarlı bir milyon QPS'ye (1 ms birleşme, birleşme sayısında sınır yok) ulaşabilmesidir. Gerçek zamanlı performansı olabildiğince sağlamak için, gerçek çevrimiçi küme maksimum 0,1 ms ve tek bir maksimum Birleştirme sayısı 100 kez ile sınırlıdır. Bu şekilde, motor katmanındaki tek bir anahtarın maksimum QPS'si 10000'in altında kontrol edilebilir (ve birleşik QPS, uygulamanın erişim frekansına bağlıdır). Tair sunucusundaki paket işleme tamamen eşzamansızdır ve sıcak nokta isteklerinin birleştirilmesi diğer isteklerin işlenmesini engellemez. Tek etki, istemcinin kısayol tuşuna yazma isteğinin RT'sini artırmaktır Mevcut yapılandırmaya göre, en kötü durumda, istemcinin kısayol tuşunun yazma işlemi 0.1 ms artacaktır ve bu etki minimumdur.

Referanslar

  • Oracle Coherence,

  • Qin XL, Zhang WB, Wei J, Wang W, Zhong H, Huang T. Bulut bilişimde dağıtılmış önbelleğe alma tekniklerinin ilerlemesi ve zorlukları. Ruanjian Xuebao / Journal of Software, 2013,24 (1): 50-66 (Çince) .

  • Gualtieri M, Rymer JR. Forrester dalgası: Elastik önbelleğe alma platformları. Q2, 2010. ftp://ftp.software.ibm.com/software/solutions/soa/pdfs/wave_elastic_caching_platforms_q2_2010.pdf

  • Hastorun D, Jampani M, Kakulapati G, Pilchin A, Sivasubramanian S, Vosshall P, Vogels W. Dynamo: Amazon'un yüksek kullanılabilirliğe sahip anahtar-değer mağazası. İçinde: İşletim Sistemleri İlkeleri Üzerine ACM Sempozyumu (SOSP 2007). 2007205-220.

Lake District, beni üç kez görmeye değer
önceki
İlkokul öğrencilerinin kış tatili ödevlerine "Gezen Dünya" da dahil mi? Ebeveynler alay ediyor: öğretmenler gişeyi çekiyor
Sonraki
"Masaüstü" Masaüstümün ikinci sürümü
Su Huanın özür mektubundan bahsetmişken, Kuaishou ve onun tarafından kaydedilen gerçek dünya hakkında konuşalım.
En güçlü tuzlu balık kralı doğar, Japon oyuncu seviyeyi temizlemek için sazan kralı kullanır
Wang Kainin yeni dizisi geliyor. Kahraman bir usta ve iyi bir görünüme sahip. İkinci adam ünlü bir yıldız ikinci nesildir.
6x6cm, Rolleiflex sevgilim: Geçmişi sayın
Dong Xuan, Bahar Şenliği sırasında yeni bir kariyer zirvesine başladı, takım elbise ve kısa saç giydi, imzaladığında bir iş kadını gibiydi
Uykuya dalan, gitgide daha da güzelleşen bu güzellik yastık kılıfı, kullandıktan sonra ayrılmaz bir parça haline gelerek modern bir uyuyan güzele dönüşüyor~~Yaşam Tarzı
Bi Ying'in öğrenci günlerindeki eski fotoğrafları ortaya çıktı ve görünüşü saf ve acınacak haldeydi, bir zamanlar dans kulübüne katıldı ve büyüleyici görünüyordu.
190325 Yang Yangsheng'in resimlerinden oluşan bir koleksiyon, arıtmayı terk etmek hala bir peri
PSN Hong Kong hizmeti siyah beş indirimi başlıyor, birçok başyapıt çılgınca indirimli
"Bilgi" nin finali heyecan verici: Manniang, Kardeş Tuan'a suikast düzenlemeye gitti, kız kardeşi Rong, Minglan'ın annesi.
"Cats and Peach Blossom Spring" bir kez daha gişede paramparça oldu ... Waterloo tarafından Pixar'dan ne kadar takip edilecek?
To Top