Alibaba çift 11 milyon gerçek zamanlı izleme sistemi teknolojisi ortaya çıktı

Bu paylaşım, esas olarak aşağıdaki dört hususu tanıtır:

  • Zaman serisi iş panoraması
  • TSDB tanıtımı
  • Çekirdek teknolojisi
  • Özet görünüm

Zaman serisi iş panoraması

Düşük seviyeli makine izlemeden kullanıcıya yönelik uygulamalara kadar, zaman serisi iş senaryoları ayrılmaz ve zaman serisi verileri genellikle profesyonel zaman serisi veritabanları tarafından saklanır ve analiz edilir.Aşağıda, TSDB'nin kapsadığı iş senaryoları ve karşılaştığı zorluklar açıklanmaktadır.

1.1 Zaman serisi veritabanı kapsama senaryoları

Altyapı katmanı: kabin, fiziksel makine, işletim sistemi izleme günlüğü

Temel işletim ve bakım: sunfire (grup birleşik izleme, toplama ve alarm sistemi), Alibaba Cloud Monitoring, GOC (Ali Global Emergency Dispatching Command System)

Kaynak planlama: Grup dahili planlama sistemi, Kubernetes

Küme yönetimi: DBPaas (Ali'deki tüm veritabanı örneklerinin izlenmesi ve planlanması)

Uygulama katmanı: APM senaryosundaki çeşitli uygulamalar

1.2 Zaman serisi veri tabanlarının karşılaştığı zorluklar

Çeşitli seviyelerdeki farklı senaryolar nedeniyle, zaman serisi veritabanları da farklı zorluklarla karşı karşıyadır:

  • Uygulama katmanı zorluğu: müşterilerle doğrudan yüz yüze geldiğinden, yüksek frekanslı, düşük gecikmeli sorgular sağlamak gerekir
  • Olap veritabanının kendisinin özellikleri: büyük verilerin toplanması
  • Zaman serisi veritabanına özgü: farklı zaman çizelgesi
  • Double Eleven Promosyonu: Trafikte on kattan fazla ani artış

TSDB tanıtımı

2.1 TSDB'nin geliştirilmesi ve performansı

TSDB, 2016 yılında hizmete başladı ve şimdiye kadar üç Double Eleven promosyonuna katıldı. 2017 ile karşılaştırıldığında, okuma ve yazma işlem hacmi iki katına çıktı, TPS4000w'ye yazıldı ve grubun 130'dan fazla iş kolunu kapsayan 2wQPS sorgulama ve 10 milyar depolama zaman çizelgesi .

2.2 TSDB Mimarisine Giriş

Yukarıdaki şekilde gösterildiği gibi, soldan sağa veri toplama işleminin görüntülenmesi:

Edge bilişim : Temelde veri toplamadan sorumlu olan hafif ve güvenilir bilgi işlem çözümü, bulutta TSDB ile bağlantı kurar ve stabil olmayan kaynaklarla OLAP senaryolarında veya senaryolarında kararlı veri toplama ve temizlemeyi gerçekleştirir.

Zamanlama motoru :

Zaman serisi indeksi: zaman çizelgesi sorgusu;

Depolama motoru: zaman serisi verileri ve büyük veri depolaması için çözümler;

Akış veri toplama: zaman serisi veritabanının büyük verilerinde verimli toplama analizi gerçekleştirin;

Kararlılık yönetimi: bulut üzerinde kararlı ve güvenli çalışma;

Hesaplama motoru, sql motoru, akıllı motor : Zamanlama motorunun yeteneklerini genişletebilen ve kullanım eşiğini düşürebilen veri hesaplama, sql analizi, model algoritması vb. Gibi işlevleri gerçekleştirmek için temel olarak zamanlama motoruyla etkileşim kurun;

Protokol desteği : Temelde kullanıcılar için, kullanıcılara bazı görsel sorgulama ve analiz desteği sağlar.

Çekirdek teknolojisi

3.1 Büyük zaman serisi veri depolama

3.1.1 Veri Sıkıştırma

Depolamadan bahsetmişken, sıkıştırma kaçınılmazdır.Veri sıkıştırma yöntemlerinin ve sıkıştırma algoritmalarının seçimi, büyük miktarda verinin depolanmasını büyük ölçüde destekler.

Yukarıdaki şekil, bir saatlik bir zaman aralığına sahip verileri temsil eder; 0-3600, anahtar olarak ikinci değer ve değer depolaması olarak saniye başına veri ile anahtar-değer depolama biçimini kullanarak son bir saatteki verileri temsil eder.

Burada facebook grada fikrine istinaden bir zamanlama sıkıştırma algoritması tanıtılmıştır.Tüm zaman damgaları ve bunlara karşılık gelen değerler sütun birleştirilerek iki büyük veri bloğunda toplanır ve daha sonra bu iki büyük blok üzerinde zamanlama sıkıştırma algoritması gerçekleştirilir ve daha sonra genel amaç kullanılır. Sıkıştırma için blok sıkıştırma algoritması.

Ayrıca, farklı veri türleri farklı veri sıkıştırma formatları kullanır, örneğin:

Zaman damgası: delta-delta

Kayan nokta: XOR kodlaması

Tamsayı: değişken uzunluklu kodlama

Dize: Sıkıştırılmış verilerin doğruluğunu sağlamak için depolama katmanında sıra dışı veri sıkıştırmasını gerçekleştiren LZ4 ve sıralama için sıkıştırma oranı 15: 1'dir.

3.1.2 Veri sıkıştırma etkisi

Neden zamanlama sıkıştırması + blok sıkıştırması kullanılıyor, bu resme bakabiliriz.

İlk olarak, zaman serisi sıkıştırma, farklı veri türleri için farklı sıkıştırma formatları kullanır, bu nedenle genel etki, blok sıkıştırma algoritmasından daha iyidir.Zaman serisi sıkıştırma algoritması verileri sıkıştırdıktan sonra, genel blok sıkıştırması kullanılır ve bu, blok sıkıştırmanın sıkıştırma verimliliğini etkilemez. , Zaman serisi sıkıştırma + blok sıkıştırmanın kullanılması, büyük verilerin depolanması için güçlü bir yardım sağlayan tek blok sıkıştırmaya kıyasla sıkıştırma oranını% 40 artırabilir.

3.2 Yüksek frekans ve düşük gecikmeli sorgu

Taobao Motu, kablosuz veri analizi ve izleme kullanan bir Alibaba ürünüdür.Grup içindeki 500'den fazla uygulamayı destekler.Çift Eleven promosyonu sırasında, en yüksek sorgu normal sorgu hacminden 10 kat daha yüksek olan 4000QPS'ye ulaşabilir. , Okuma ve yazma hızının% 99'unun 20 ms içinde olması gerekir, peki TSDB kullanıcı tarafında yüksek frekanslı ve düşük gecikmeli sorguları nasıl gerçekleştirir?

3.2.1 Dağıtılmış önbellek depolama uyarlaması

Java tabanlı Facebook Gorilla belgesine bakın, dinamik genişleme ve daralmayı gerçekleştirebilen ve tüm Double 11 boyunca 1000wTPS yazmayı ve 4000'i destekleyen, parçalama ve kapasite ayarlamasını gerçekleştirmek için zookeeper'a dayalı bir dizi dağıtılmış bellek önbellek depolaması yaptı. QPS sorgusu.

3.2.2 TsMem tasarımı

Şekilde gösterildiği gibi, TsMem, Disruptor'a dayalı bir RingBuffer oluşturur ve tüm kullanıcı okuma ve yazma isteklerini RingBuffer'da geçici olarak saklar.Birden çok üretici ve bir tüketici modu ile, bir tüketicinin talebi birden çok çalışan iş parçacığına gönderilecektir. Bir işçi iş parçacığı bir parçadır, bu nedenle aslında RingBuffer'a dayalı bir bellek parçacığıdır.Bu şekilde, bir iş parçacığı bir parçaya karşılık gelir, böylece hiçbir paylaşılan kaynak üretilmez ve kilitlerin uygulanmasını dikkate almaya gerek yoktur.

Hem yazmayı hem de okumayı tek bir bağlantıya dağıtın ve bir işçi aynı anda okuma ve yazma işlemlerini gerçekleştirerek okuma ve yazma performansını artırın

Aynı zamanda, RingBuffer'ın gruplama özelliği, kullanıcının okuma ve yazma isteklerini geçici olarak bir kesimde saklamak için de kullanılır ve daha sonra belirli bir eşik veya zamana ulaşıldığında, işçi doğrudan bir parti gönderecektir.Bu, istekte belirli bir gecikmeye neden olur, ancak büyük ölçüde iyileşecektir. İşçinin verimi.

Peki verimli bellek yönetimi ve son derece düşük aksaklık gecikmesi nasıl sağlanır?

Veri bloklarının referans sayımına dayalı yığın havuzu yönetimi için, tüm zaman serisi veri blokları bellekte toplanır, bu da verileri okurken geçici nesnelerin oluşturulmasını azaltabilir ve aynı zamanda titremeyi ve gecikme.

3.3 Yüksek enlem toplama analizi

3.3.1 TSDB motor çekirdek modülü

TSDB ve çekirdek modül esas olarak iki bölümden oluşur, yani zaman serisi indeksi ve akış toplama motoru.Kullanıcıdan bir sorgu talebi geldiğinde, zaman serisi sorgu motoru, bir ardışık düzen zaman çizelgesi seti oluşturmak için karşılık gelen zaman serisi dizinini ve ardından akış toplama Motor, ilgili toplama sonuçlarını hesaplar.

3.3.2 Zamanlama Dizini

Zamanlama indeksi nedir?

Esas, zaman damgası olan tersine çevrilmiş bir dizindir, veriler ters çevrilir ve ardından zaman damgası eklenir, böylece kullanıcı isteği geldiğinde, verilerin konumu kullanıcının filtreleme koşullarına ve ardından zaman çizelgesine göre elde edilebilir. Zaman damgası iki kez filtrelenir, bu da dizinin isabet oranını artırır ve ayrıca zaman çizelgesinin TTL'sini destekler.

Nasıl saklanır?

Zaman serisi dizini kv'ye göre saklanır ve yatay genişlemeyi destekleyebilen durumsuz bir düğümdür.

3.3.3 Zamanlama Dizini Optimize Edici

Zamanlama dizini optimize edici, temel olarak ters çevrilmiş dizini sorgularken kullanıcıların verimliliği artırmasına yardımcı olmak içindir. Burada optimize edici, kullanıcı isteklerini üç şekilde ele alacaktır:

  • HLL sayacı: kullanıcının sorgu kurallarına göre eşleşen geçmiş zaman çizelgelerinin sayısı veya belirli bir etiket altındaki zaman çizelgelerinin sayısı;
  • BloomFilter: Bloom filtresine göre belirli bir zaman çizelgesinin olup olmadığını belirleyin;
  • Zamanlama dizini önbelleği: aynı zaman çizelgesi içeriğinin önbellekte zaten mevcut olup olmadığını doğrudan sorgulayın.

Optimize edici, kullanıcı sorguları için optimizasyonu nasıl değerlendirir?

İlk olarak, kullanıcının sorgu koşullarına göre hesaplama için en küçük kümeyi seçecek ve ardından sorgu zaman çizelgesinin var olup olmadığını belirleyecektir.Eğer yoksa, doğrudan dönün, bazı açıkça tanımlanmış koşullar bulanık koşullara göre önceliklidir, örneğin, belirli önceliklerin dahil edilmesine eşittir.

3.3.4 Akış Toplama Motoru

Akış toplama motoru, kullanıcı sorguladığında kullanıcının karmaşık sorgusunu bir toplama operatörleri kombinasyonuna dönüştüren hafif bir tek işlemli uygulama kullanır. Akış toplama motoru, 10'dan fazla çekirdek toplama operatörü, 20'den fazla doldurma stratejisi ve 10'dan fazla enterpolasyon içerir algoritması.

Karmaşık sorgular operatör birleştirme işlemlerine dönüştürüldüğünden, uygulamada gevşek bağlı bir yapıdır, güçlü ölçeklenebilirliğe sahiptir ve her operatörün yürütülmesi çok verimli ve hızlıdır, bellek ek yükünü ve temeldeki depolamayı azaltır. Ek olarak, toplanan veriler, önceden toplanmış ve hassasiyeti azaltılmış toplanmış verilerle sorunsuz bir şekilde bağlanabilir, bu da sorgu sonuçlarının yeniden kullanım oranını artırır.

3.4 Kararlılık garantisi

3.4.1 TSBD stabilite garanti mekanizması

TSDB sadece tescilli bulutu değil, aynı zamanda müşterilere genel bulut üzerinde de hizmet veriyor, bu nedenle kararlılık, çekirdek ile aynı seviyede bahsedilebilecek bir konudur.TSDB, üç yönden kararlılığı garanti eder.

Kaynak izolasyonu

Okuma ve yazma konularının ayrılması: Sorgu hatalı olduğunda yazmanın etkilenmemesini ve yazma hatalı olduğunda sorgunun etkilenmemesini sağlar;

Yavaş sorgu ve büyük sorgunun izolasyonu: Kullanıcının sorgu koşullarına göre bir parmak izi oluşturun ve parmak izinin yavaş bir sorgu mu yoksa geçmiş kayıtlara dayalı büyük bir sorgu mu olduğuna karar verin. Öyleyse, sorgu ayrı bir sıraya yerleştirilecektir. Kaynaklar sınırlıdır ve normal sorgular normal kuyruğa girer, bu da genel sorguyu bir dereceye kadar hızlandırır;

Sorgu durumu yönetimi ve zamanlama: Sorgu görevlerinin durum yönetimi ve izlenmesi, görev planlamasından ayrılmıştır, bu da görev yönetimi ile zamanlama arasındaki bağlantıyı azaltır ve görev operasyonunun kararlılığını artırır.

Zaman çizelgesi ve zaman serisi verilerine dayalı ince taneli akış kontrolü

Her bir veri parçası, kullanıcının sorgu koşullarının verilere daha ayrıntılı bir şekilde ulaşmasını ve gereksiz kaynak tüketimini azaltmasını sağlamak için tersine çevrilmiş dizin + zaman damgası endeksi yöntemiyle konumlandırılır.

Kapsamlı izleme göstergeleri

TSDB, TSDB'de hangi sorunların meydana geldiğini gerçek zamanlı olarak anlayabilmesini ve ardından sorunları hızla bulup çözebilmesini sağlamak için genel verim, sorgu yanıt süresi, IO katmanının temel göstergeleri ve her bir çekirdek modülün ayrıntılı ve kapsamlı bir şekilde izlenmesine sahiptir.

3.4.2 TSDB iş yükü yönetimi

Uçtan uca akış kontrolü: Kullanıcının yazma arayüzü kaynak IO kontrolü yapacak, iki çekirdek modül zamanlama indeksi yapacak ve toplama motorunun giriş katmanı, taraf kullanıcının daha fazla yazmasını veya sorgulamasını sağlamak için bir IO akış kontrolü de yapacaktır. Miktar çok büyük olduğunda, iki çekirdek modül etkilenmeyecektir;

Çok boyutlu kontrol: Sorgu zaman çizelgesinin çok uzun olması, çok fazla veri noktasına erişilmesi, okunan bayt sayısının çok büyük olması, tüm sorgunun çok uzun sürmesi gibi farklı boyutlardan TSDB okuma ve yazma konusunda bazı kısıtlamalar vardır. .

Özet görünüm

TSDB'nin geliştirme geçmişini ve çözdüğü sorunları zaten tanıttım.Aşağıdakiler, TSDB'nin gelecekteki gelişme yönünü ve özelliklerini tanıtacaktır:

  • Sıcak ve soğuk verilerin heterojen depolanması
  • Zaman geçtikçe, veri miktarı daha da artacaktır.Kullanıcı maliyetlerini azaltmak için bazı gereksiz veya düşük ısılı verilerin mevcut veri depolama yöntemine göre depolanması gerekmez ve daha düşük maliyetli bir depolama yöntemi ile değiştirilebilir.

  • Sunucusuz okuryazarlığı geliştirin
    • Yüksek frekanslı, düşük gecikmeli sorgular sağlayın
    • OLAP sistemi uzun vadeli yüksek enlem analizi
    • Geçmiş veri analizi veya soğuk veri analizi için
    • Hesaplama ve sorgulama maliyetini azaltın
  • Zamansal ekolojiyi kucaklayın
  • Kullanıcılar için daha iyi çözümler sağlamak için mevcut zamanlama motorunu ve hesaplama motorunu, endüstrideki prometheus, kubernetes, openTSDB vb. Gibi birçok olgun zamanlama ekolojisi ile birleştirin.

  • Zaman serisi akıllı analiz
  • Kullanıcılara daha istikrarlı ve güvenilir akıllı analiz modelleri sağlayın, sektördeki bazı kullanıcıların sıkıntılarını anlayın ve bazı acil sorunları çözün.

    yazar hakkında

    Zhang Xiaoguang Alibaba'da kıdemli geliştirme mühendisi olan Hua Ming Chai Wu, APM SaaS ürün geliştirme konusunda uzun yıllara dayanan deneyime sahip ve endüstride Druid, ClickHouse, InfluxDB vb. Dahil olmak üzere birçok ana akım zaman serisi veritabanı ürününü kullanmış, zaman serisi veritabanları alanında uzun yıllara dayanan deneyime sahip ve şu anda Alibaba'dan sorumludur. Baba TSDB çekirdek motor geliştirme.

    Bu makale, Zhang Xiaoguangın DataFun tarafından düzenlenen DataFun topluluğundaki konuşmasından gelmektedir.

    Joey Yung sefildi, dar bir etek giyiyordu ama rötuşlanmamış fotoğraflara maruz kaldı, bacaklar ve göbek göremeyecek kadar kalın
    önceki
    GIF-Büyük Geri Dönüş mü? Açılışta "Red Dot Paketi" cezasına çarptırılan 10 kişilik Greentown devre arasında skoru geride bıraktı!
    Sonraki
    Barcelona iki yıl üst üste utançtan çıktı! 25 dakikada 3 gol kaybeden Liverpool, Messi'yi çaresizliğe sürükledi
    Zhao Yazhi, gümüş pullu kolsuz bir yelek ile donatılmıştır.
    Komik büyük veri platformunun model düşünme ve kullanıcı büyütme uygulamalarına bakın
    GIF - Herkes sihrini gösterir! Renhe ilk golü kırdıktan sonra, Jianye ders kitabındaki karşı saldırı skoru eşitledi!
    Çılgın! Liverpool Jones, Barcelona'yı eşitlemek için 2 dakikada 2 gol attı, Messisu öfkeyle başını salladı
    HTTP protokolü: haberleri izlemek çok zahmetli oluyor
    Premier Lig 1 Nolu Tanrı Takımı! 18 yılda bir mucize yaratmak için sezonda 57 sayı attı, ancak devler bile alt ekip tarafından iki kez öldürüldü.
    Barcelona açılışta 6 dakika hücum etti! Messi'nin en iyi partnerinin Liverpool golünü bedavaya göndermesi ölümcül hatası
    E-ticaret araştırmasının yorumlanması-hızlı ve iyi satın almanızı nasıl sağlar
    CCTV muhabiri, bilmediğiniz "Kuzey Kore'de Üretildi" yi ortaya çıkarmak için Kuzey Kore kozmetik fabrikasını ziyaret etti
    Real Madrid'in tuhaf bir yanı daha var: Zidane aynı şehirde rakiplerine katılacak, Lafayette karşısında ciddi şekilde dövüldü
    Alibaba, mimari algoritmanın yorumlanması olan büyük ölçekli grafik sinir ağı platformu AliGraph'ı yayınladı
    To Top