Alibaba dağıtılmış veritabanı hizmeti DRDS geliştirme geçmişi

Yazar: Yi Leqiang, Alibaba ara katman yazılımı (Aliware) ürün yöneticisi, 2009 yılında şirkete katıldı, esas olarak oturum öncesi Taobao dağıtılmış çerçevesi ve sistem tasarımı Taobao dikey pazar araştırmasından sorumludur, dağıtılmış veritabanı hizmeti öncelikle ürün tasarımı ve DRDS'den sorumludur Araştırma ve Geliştirme.

Taobao TDDL geliştirme geçmişi ve geçmişi

Taobao DRDS / TDDL, Alibaba tarafından bağımsız olarak geliştirilen dağıtılmış bir veritabanı hizmetidir. DRDS, Alibaba'nın açık kaynaklı Cobar dağıtılmış veritabanı motorundan doğdu, Cobar'ın çekirdeğindeki Cobar-Proxy kaynak kodunu emdi ve MySQL-Proxy protokolüne benzer, gelen SQL'i ayrıştırıp işleyebilen bir dizi bağımsız ayrıştırma ucu uyguladı. Uygulama, çeşitli karmaşık temel DB topolojilerini korur ve bağımsız bir veritabanıyla aynı deneyimi elde eder.Aynı zamanda, Taobao TDDL'nin dağıtılmış veritabanlarındaki zengin pratik deneyiminden yararlanır ve dağıtılmış Join, SUM, MAX, COUNT, AVG vb. Bir araya getirme desteğini gerçekleştirir. İşlev desteği ve sıralama ve diğer işlev desteği, heterojen indeksler, küçük tablo yayını vb. Aracılığıyla, dağıtılmış veritabanı senaryolarının kullanımından türetilen bir dizi sorunu çözer ve son olarak eksiksiz bir dağıtılmış veritabanı çözümü oluşturur.

kullanılacak sahneler

Dağıtılmış veritabanının temel talebi, bağımsız veritabanının darboğazını çözmektir. Bağımsız veritabanını kullanma sürecinde, kaçınılmaz olarak veritabanı kapasitesi, bağlantı sayısı, işlem sayısı ve okuma performansında darboğazlarla karşılaşacaktır.Bu darboğazları aşmak için iki genel çözüm bağımsız dikey genişlemedir. Ölçek büyütme modeli ve yatay genişleme ölçek büyütme modeli.

Bağımsız genişletme modeli, güçlü bir şekilde donanım kaynaklarına bağlıdır ve bağımsız donanım yeteneklerini yükseltme yöntemi, veritabanı hizmet kapasitesini genişletmek için yaygın olarak kullanılır. Örneğin, orijinal MySQL bağımsız veritabanı kullanılır ve erişim darboğazı ile karşılaşıldığında disk değiştirilir. Trafik daha yüksek olduğunda, Oracle kullanmayı düşünmeniz gerekir Ticari çözümler, üst düzey depolama aygıtları, üst düzey mini bilgisayarlar, yani IOE mimarisi ve hatta daha yüksek genişletme ve hizmet yetenekleri karşılığında IOE aygıtlarını yükseltme Bu süreç, ekipman yükseltmeleri ve veri geçişinin maliyetini içerecektir.

Çok makineli yatay genişletme modeli, bir dizi aracılığıyla veritabanının yatay olarak genişletilmesini sağlamak için çok sayıda ucuz PC Sunucusu kullanır. Avantaj, daha düşük maliyette yatar, çünkü eski ekipman ve sistemleri ortadan kaldırmaya gerek yoktur ve verileri sık sık taşımaya gerek yoktur. Yalnızca gerektiğinde Hizmet kümesi boyutunun genişletilmesi gerekiyor.

Dağıtılmış çok makineli bir modelin kullanımı da belirli bir maliyet gerektirir.Dağıtılmış bir veritabanının mimarisi, bağımsız bir veritabanının mantıksal ve fiziksel dağıtımından oldukça farklıdır.Bu nedenle, bağımsız veritabanının verilerini Sharding'in dağıtık mimari modeline geçirmek gerekir. Veri parçalama süreci.Bu süreç, verilerin dağıtılmış mantık tasarımını, veritabanı geçişini ve SQL optimizasyonunu ve dönüşümünü içerir.Tabii ki, bu geçiş tek seferliktir. Mimari geçiş tamamlandıktan sonra, veri tabanı genişletme ve veri taşıma sorunları ile ilgilenmeye gerek yoktur, çünkü Veritabanının hizmet katmanı, kapasite genişletme işlevini entegre etmiştir ve mimari, yatay kapasite genişletmeyi desteklemektedir.

2006'dan önce, temel uygulamalarımız genel olarak Oracle veritabanını kullanıyordu, ancak işin hızla gelişmesiyle birlikte Taobao'nun veri hacmi ve erişim hacmi keskin bir şekilde arttı ve veritabanında ciddi erişim performansı sorunları oluştu, bu da Oracle zaten o sırada kullanılmış olsa bile sık veritabanı kesintilerine ve iş durgunluğuna neden oldu Asya'daki en büyük RAC kümesi, bağımsız bir veritabanının ölçeklenebilirliği sınırına ulaştı ve çok büyük sermaye ve işletme ve bakım maliyetleri gerekiyor.Bu nedenle, mevcut durumumuza göre kademeli olarak IOE'ye gitmeye, dağıtılmış ilişkisel veritabanı hizmetleri geliştirmeye ve veritabanı geliştirmeyi gerçekleştirmeye başladık. Yüksek genişleme ve kontrol edilebilir maliyetlerle DRDS, artık dahili dağıtılmış veritabanımızın standardı haline geldi ve finans, üretim, devlet kurumları, e-ticaret ve sosyal ağ gibi çeşitli sektörlere hizmet veriyor.

DRDS'nin genel mimarisi

DRDS / TDDL, geleneksel tek sunuculu veritabanı herhangi bir şeyi paylaşma mimarisinden farklı, tipik bir yatay olarak genişletilmiş dağıtılmış veritabanı modelidir. DRDS / TDDL, hiçbir şeyi paylaşma mimarisini benimser. Hiçbir şeyi paylaşma mimarisinin temel fikri, tek makineli verileri birden çok temel katmana bölmek için sıradan sunucular kullanır. Veritabanı örneğinde, SQL analizi optimizasyonu, yönlendirme ve sonuç toplama, birleşik bir Proxy kümesi aracılığıyla gerçekleştirilir ve dışarıya basit ve benzersiz bir veritabanı bağlantısı sunar. DRDS servis modülü, DRDS yönetimi ve kontrol modülü, konfigürasyon merkezi, izleme operasyonu ve bakımı, veritabanı servis kümesi ve alan adı servis modülü dahil olmak üzere genel mimari Şekil 1'de gösterilmektedir.

Şekil 1

Dağıtılmış küme yönetimi modülü aracılığıyla küme düğümlerinin yönetimini ve kontrolünü gerçekleştirin. Veri güvenliği ve hizmet kullanılabilirliği açısından, verimli bir veri senkronizasyon sistemi aracılığıyla, veri tabanının genişletilmesi ve veri tabanı örneğinin ana ve yedek verilerinin senkronizasyonu gerçekleştirilir. Aynı zamanda, etkin ve yedek ve otomatik felaket toleransı anahtarlamasının izlenmesini gerçekleştirmek için örnek izleme modülüne ve HA modülüne güvenir. Olgunlaşmış bir dağıtılmış veritabanı ürünü olan TDDL ayrıca, konfigürasyon yönetimini gerçekleştirebilen ve dağıtılmış veritabanlarının birden çok örneği arasında değişiklik yapabilen ve çeşitli veri senkronizasyonu ve kapasite artırımı gibi görev yönetimini gerçekleştirebilen ve işletme ve bakım maliyetlerini düşüren eksiksiz bir işletim ve bakım yönetimi ve kontrol sistemine sahiptir.

DRDS / TDDL'nin Özellikleri

Veri parçalama

DRDS'nin temel ilkesi, veri parçalama olan Sharding'dir. Harici olarak mantıksal tutarlılığı korumak için bağımsız bir veritabanının verilerini birden çok bağımsız veritabanına bölün. Arka uçtaki veritabanı bölünmüş bir alt veritabanıdır ve karşılık gelen tablo bir alt tablo olarak adlandırılır Her bir alt veritabanı, genel erişim baskısını dağıtmak için bir veri parçasını okumaktan ve yazmaktan sorumludur. Sistem genişletildiğinde, DRDS sisteminin genel kapasitesi, sadece yatay olarak alt veri tabanlarının sayısı artırılarak ve ilgili verilerin taşınmasıyla artırılabilir.

şekil 2

şekil 2

Veri parçalama, veri dağıtımının temeli olan bir parçalama enlemi seçmelidir. Örneğin, bir kullanıcı sipariş bilgisi tablosunda, veriler sipariş kimliğine göre bölünmüşse, aynı sipariş kimliğine ait veriler aynı veri tabanı depolama düğümüne bölünecektir, eğer veriler kullanıcı kimliğine göre bölünmüşse, o zaman aynı kullanıcının sırası Aynı veritabanı depolama örneğinin depolama düğümlerine dağıtılacaktır.

Bölünmüş enlem seçimi çok önemlidir.Genel olarak, bölünmüş anahtar gerçek iş senaryosuna göre seçilmelidir. Genel yol gösterici ilke, her bir veritabanı düğümünün veri hacminin ve yükünün daha dengeli olmasını ve tek bir SQL işleminin mümkün olduğunca tek bir veritabanı düğümü üzerinde yürütülmesini sağlamaktır. , Farklı SQL sorguları farklı veritabanı düğümlerine düşer. Bu, birden çok düğüm arasındaki ağ iletimini azaltabilir, dağıtılmış sorguların verimliliğini koruyabilir ve genişlemeyi kolaylaştırırken yükü dengeleyebilir.

Düzgün genişleme

Veritabanı genişletme, veritabanı çalıştırma ve bakımının ortak bir işlemidir. Veritabanının veri depolama kapasitesi yetersiz olduğunda, geleneksel bağımsız veritabanının daha büyük miktarda veri yazmayı desteklemek için bağımsız veritabanının depolama alanını artırması gerekir ve veri hacmi genişledikçe aynı SQL Sorgu ifadeleri için, sorgulanan temel veri miktarındaki artış kaçınılmaz olarak sorgu verimliliğini azaltacaktır; veri miktarı arttıkça, veritabanının erişim baskısı da genellikle katlanarak artarak tek makineli veritabanı bağlantılarının sınıra ulaşmasına neden olur.Bu sırada, tek makineli veritabanının donanımı yükseltmesi gerekir. Veri hacmindeki ve erişim hacmindeki artışı taşımak için teknik özellikler, disk dizileri kullanın, üst düzey depolama ortamı ekipmanı ve üst düzey mini bilgisayar sunucuları kullanın. Bu sürece büyük miktarda veri geçişi eşlik edecektir. Veri tutarlılığını sağlamak için, veri geçişinin genellikle durdurulması gerekir. İş üzerinde büyük etki.

resim 3

resim 3

DRDS'nin dağıtılmış mimarisi, yukarıdaki sorunları çözmek için sorunsuz bir genişletme yöntemi kullanır ve daha fazla temel veritabanı örneği ekleyerek genel küme genişletmeyi tamamlar.

Düzgün genişlemenin öncülü, kullanıcının mantıksal veritabanını yukarıda belirtilen alt veritabanı alt tablo mantığına göre birden çok fiziksel alt veritabanına bölmesi gerektiğidir ve farklı alt veritabanları, farklı temel fiziksel veritabanı makinelerine düşer. Alt veri tabanlarının ve alt tabloların sayısı, genellikle kullanıcıların önümüzdeki 3-5 yıl içinde veri hacminin büyümesini tahmin etmeleri için önerilir.Bu veri hacmine göre, tek bir alt veri tabanının veri hacminin genellikle bir önerisi olduğundan, toplam veriye göre kaç tane alt veri tabanının bölünmesi gerektiğini hesaplayın. Değer, bu eşiğin aşılması, tek bir düğüm performansının düşmesine neden olacaktır. Belirli sayıda alt veri tabanı ile alt veri tabanlarının mantığına göre veriler farklı depolama örnek düğümlerine bölünebilir.Alt veri tabanlarını taşıyan fiziksel veri tabanı makinesi yetersiz kapasite ve bağlantı sayısı gibi darboğazlara sahip olduğunda yenilenebilir. Fiziksel veritabanı düğümleri ekleyin, orijinal alt veritabanını yeni fiziksel veritabanı düğümüne geçirin ve genel mantıksal veritabanının genişlemesini gerçekleştirin.

Genişletme süreci aslında fiziksel veri geçişi sürecidir.Motor katmanı ilk olarak alt veritabanı geçişinin mantığına göre fiziksel düğüm üzerinde yeni bir alt veritabanı kurar ve ardından tam veri geçişi için bir zaman noktası ayırır. Tam geçişi tamamladıktan sonra, önceden tutulan zaman noktasına göre artımlı veri yakalama işlemini başlatın. Artımlı veriler her iki tarafta da aynı veriyi yakaladığında, veritabanı geçici olarak durdurulur ve nihai veriler bağlanır.Motor katmanı, alt veritabanı mantığının yönlendirme anahtarını gerçekleştirir.Yönlendirme kuralı anahtarı tamamlandıktan sonra, çekirdek genişletme mantığı tamamlanır. Tüm anahtarlama süreci milisaniyeler içinde tamamlanır.

Verilerin kendisinin güvenliğini sağlamak ve genişletme ve geri almayı kolaylaştırmak için, yönlendirme belirtim anahtarı tamamlandıktan sonra, geçişten önceki ve sonraki mantıksal alt veritabanı verileri gerçek zamanlı olarak senkronize edilecek ve orijinal alt veritabanı verileri iş onaylanana kadar temizlenemeyecektir.

Genişletme sürecinin tamamında neredeyse hiçbir üst katman iş erişimi algısı yoktur ve tamamen sorunsuz bir genişlemedir, ancak geçiş sırasında aşırı veri yakalama süresinden kaçınmak için özellikle düşük yazma döneminde veritabanı erişimini seçmek için genişletme işlemine mümkün olduğunca dikkat etmek gerekir.

Dağıtılmış MySQL yürütme motoru

Dağıtılmış veritabanı verileri düzenli olarak birden çok temel depolama örneğinde depolanır. Verilerin fiziksel depolanmasındaki değişiklikler yerel veritabanı motoruyla uyumsuzluğa neden olur. Bağımsız bir veritabanının tüm veri okuma, yazma ve hesaplamaları tek bir fiziksel makinede yapılır. Yürütme, veri durumu tek bir makinede tutulur ve ana performans tüketimi diskin veri okumasında yatar ve dağıtılmış mimari altında, veri ve durumun birden çok veritabanı örneği arasında ve temel örnek ile Proxy arasında iletilmesi gerekir, bu da Ağ G / Ç tüketimi ve ağ G / Ç'nin performans tüketimi, yerel disk G / Ç ve yerel hesaplamanın performans ek yükünden çok daha fazladır.

Bu nedenle, dağıtılmış SQL motorunun ana amacı, bağımsız veritabanı SQL motoru ile tam uyumluluk sağlamak ve SQL'in akıllı aşağı itmesini gerçekleştirmektir. SQL'i akıllıca analiz edebilme, hangi SQL'in doğrudan verilebileceğini, hangi SQL'in optimize edilmesi ve dönüştürülmesi gerektiğini, ne tür optimizasyon ve hangi örnek düğümlerinin yürütülecek şekilde yönlendirildiğini analiz edebilme, veritabanı örneklerinin tüm özelliklerini tam olarak kullanabilme ve ağlar arasındaki veri aktarımını azaltabilme Son olarak, farklı örnekler tarafından işlenen az miktarda sonuç verisi toplanır ve uygulama arayıcısına geri gönderilir. Bu, dağıtılmış SQL motorunun akıllı aşağı itme işlevidir.

Dağıtılmış motorun sorumlulukları, Şekil 4'te gösterildiği gibi dört SQL ayrıştırma, optimizasyon, yürütme ve birleştirme sürecini içerir.

Şekil 4

Şekil 4

Zekanın temel ilkeleri aşağıdaki gibidir:

  • Ağ iletimini azaltın;

  • Hesaplama miktarını azaltın, hesaplamayı mümkün olduğunca alt veri düğümüne itin ve hesaplamanın verilerin bulunduğu makinede yürütülmesine izin verin;

  • Temel depolamanın tüm yeteneklerine tam oyun verin.

  • Yukarıdaki ilkelere dayalı olarak uygulanan SQL motoru, hizmet yeteneklerinin doğrusal genişlemesini sağlayabilir. Örneğin, basit bir AVG işlemi için, bazı nispeten ilkel dağıtılmış veritabanı modelleri için yaygın bir uygulama, AVG'yi doğrudan tüm depolama düğümlerine dağıtmaktır.Sonuç, dilbilgisi uyumluluğu, anlamsal uyumsuzluk ve nihai sonuç şudur: Yanlış sonuç. DRDS'nin akıllı aşağı itme motoru, SQL sözdizimine tam anlamsal uyumluluk uyarlaması yapar. AVG işlemleri için, motor yalnızca mantıksal AVG SQL'i SUM ve COUNT SQL olarak ayrıştırıp optimize edebilir ve ardından aşağı itebilir. Örnek düğümü SUM ve COUNT hesaplamasını tamamlar, temeldeki düğümün hesaplama gücünü tam olarak kullanır, motor katmanındaki her depolama düğümünün SUM ve COUNT sonuçlarını toplar ve son olarak AVG'yi hesaplar. Bu sadece çok tipik bir durumdur.Dağıtık veritabanı modeli altında, çoklu veri tablolarının birleştirme işlemi ve birleştirme sıralamanın uyumluluğu çok karmaşıktır.Aşağıda, TDDL / DRDS'nin tipik senaryolar için dağıtılmış senaryolarda belirli sorunları nasıl çözdüğü analiz edilecektir.

    Esnek genişleme

    TDDL / DRDS, hizmetleri ve depolamayı ayıran bir mimariyi benimser. DRDS örneği hizmet katmanı, kümeler halinde dağıtılır. Birden çok hizmet düğümü, bir hizmet örneğini oluşturur. Hizmetler, yük dengeleme ve alan adı hizmetleri aracılığıyla harici olarak sağlanır. Birden çok hizmet düğümü arasında durum senkronizasyonu yoktur. Ortalama yük, kullanıcı isteklerini ele alır. Hizmet kümesinin işleme kapasitesi yetersiz olduğunda, hizmet işleme kapasitesini artırmak için hizmet düğümü herhangi bir zamanda genişletilebilir. Benzer şekilde, düşük iş dönemlerinde, esnek hizmet kapasitesi genişletmesi elde etmek için küme boyutu uygun şekilde azaltılabilir.

    Bazı büyük veri hacimli OLAP senaryoları için, tek bir sunucu düğümünün bellek kaynağı gereksinimleri yüksek olduğunda, dikey kapasite genişletmesi, tek bir sunucu düğümünün belirtimlerinin yükseltilmesiyle de sağlanabilir.

    Şekil 5

    Şekil 5

    Dağıtılmış Birleştirme ve küçük masa yayını

    Dağıtılmış bir senaryodaki Birleştirme işlemi, bağımsız bir makineden farklıdır Bağımsız verilerin Jion işlemi, tek bir makinede gerçekleşir ve dahili ağ veri iletimi yoktur.

    Dağıtılmış bir mimari altındaki çoklu veri tablolarında Jion, Join'e katılan birden çok tablonun verileri farklı bölünmüş enlemlere sahipse, veriler farklı bölünmüş enlemlere göre farklı veritabanı örneklerine dağılacaktır ve Join işlemi birden çok fiziksel alt veritabanını kapsayabilir. Birleştirme, birden fazla temel örnekten büyük miktarda veri iletimini gerektirir ve SQL'in yürütme verimliliği garanti edilemez.Bu nedenle, Birleştirme işleminin mümkün olduğunca tek bir makinede gerçekleşmesi için Birleştirme işlemine katılması gereken veri tabloları mümkün olduğunca tek tip olmalıdır. Veritabanları arası Katılmayı azaltın. Bölünmüş enlemin birliği korunamıyorsa ve veri tabanları arası birleştirme işlemi varsa, o zaman ilke Birleştirme işleminin çıkış iletimini en aza indirmektir.

    Resim 6

    Resim 6

    DRDS'de genellikle kullanılan Birleştirme algoritması, Yuvalanmış Döngüye dayanır. Join'in sol ve sağ tabloları için, önce Join'in sol tablosundaki (sürücü tablosu) verileri alın ve ardından alınan verilerdeki Join sütununun değerini sağ tabloya koyun ve IN sorgusu gerçekleştirin. Bu, Katılma işlemini tamamlar. Bu nedenle, Join'in sol tablosundaki veri miktarı ne kadar azsa, DRDS, sağ tabloda daha az IN sorguları gerçekleştirecektir Sağ tablodaki veri miktarı da küçükse veya bir indeks oluşturulmuşsa, Join hızı daha hızlı olacaktır. Bu nedenle DRDS'de Join sürücü tablosunun seçimi Join optimizasyonu için çok önemlidir.

    Gerçek veritabanı senaryolarında, genellikle bazı kaynak bilgi tabloları vardır, veri hacmi küçüktür, güncelleme sıklığı da çok düşüktür, bu tabloların bölünmesine gerek yoktur, bu kaynak bilgi tablolarına benzer şekilde genellikle tek tablo modu, mantıksal bir tablo altında tek tablo modu kullanılır. Verileri bir alt veritabanında, genellikle "0" veritabanında saklanır. Bu tablolar "küçük tablolar" olarak tanımlanırken, büyük iş verileri ve yüksek güncelleme sıklığına sahip diğer tablolar, alt veritabanı ve alt tablonun bölme modunu benimsemeye devam eder. . Bu "küçük tablolar" ile alt veri tabanları ve alt tabloları, İç İçe Döngü algoritması prensibine dayalı olarak birleştirirken, Join'in sürüş tablosu olarak küçük tablo, sağ tablonun IN sorgularının sayısını büyük ölçüde azaltacaktır.Aynı zamanda, DRDS tarafından sağlanan küçük tablo yayın fonksiyonu veri aktarabilir. Gerçek zamanlı replikasyon, tüm veri miktarının gerçek zamanlı replikasyonu ve "küçük tabloların" alt veritabanlarına ve alt tablolara artan değişiklikleri, çapraz veritabanı Birleştirmeyi bağımsız bir Birleştirme işlemine dönüştürerek sunucu düğümü hesaplamalarını azaltır ve birden çok temel örnek arasındaki verileri azaltır Jion'un verimlilik artışı çok açık olacaktır.

    Heterojen indeks

    Heterojen indeksleme, DRDS'nin dağıtılmış sorguların verimliliğini artırmaya yönelik çözümlerinden biridir.Dağıtık senaryolarda veri bölme enleminin ve veri sorgu enleminin tutarsızlığından kaynaklanan verimsizlik sorununu çözebilir.

    Şekil 7

    Şekil 7

    Veri tablosu birden çok alt veri tabanına ve alt tabloya bölündüğünde, alt veri tabanları ve alt tablolardaki verilerin dağıtım kuralları sabitlenir. Ancak genellikle verilerin iş kullanım senaryoları çok karmaşıktır.Verilerin sorgu enlemi, veri bölme ve dağıtma kurallarıyla tutarlıysa, bir alt veritabanı ve alt tabloda tek bir SQL çalıştırılacaktır; enlem kullanan veri sorgusu, veri bölme ve dağıtma belirtimiyle tutarsızsa , Tek bir SQL büyük olasılıkla birden çok alt veritabanı ve alt tablo üzerinde yürütülecektir ve veritabanları arası sorgular ortaya çıkacaktır.Veritabanı arası sorgular ağ G / Ç maliyetini artıracak ve sorgu verimliliği kaçınılmaz olarak azalacaktır.

    Bu sorunu çözme fikri, dağıtılmış veritabanlarının tutarlı ilkesidir.SQL yürütmesinin tek bir veritabanında tamamlanmasına izin verin. Kullanılan asıl yöntem, aynı veri tablosunun birden çok kopyasını yedekli olarak depolamak olan "verimlilik için alan" çözümünü kullanmaktır. Veri tutarlılığı sorununu çözmek için farklı iş kullanım senaryolarına göre bölünmüş, aynı bölme ve kullanım enlemini sürdürme ve birden çok veri parçası arasında gerçek zamanlı veri çoğaltma, bu "heterojen indeksleme" çözümüdür. Elbette heterojen indeks tabloları sonsuza kadar suistimal edilemez.Çok fazla heterojen indeks tablosu senkronizasyon verimini etkileyecek ve kaynak veri tablolarında senkronizasyon baskısına neden olacaktır.

    En İyi Uygulamalar

    Dağıtılmış SQL optimizasyonu

    SQL optimizasyonu, veritabanı kullanımının ve işletiminin ve bakımının günlük işlemidir.SQL için dağıtılmış veritabanı optimizasyonu, yalnızca disk G / Ç maliyetini değil, aynı zamanda ağ G / Ç maliyetini de dikkate almalıdır. SQL yürütmeyi optimize etmek için, temel optimizasyon fikri ağ G / Ç'sini azaltmaktır. Bu amaçla DRDS, orijinal DRDS katmanının çalışmasını dengelemeye ve onu temeldeki alt kitaplıklara (RDS, vb.) Dağıtmaya çalışacaktır. Bu şekilde, başlangıçta ağ üzerinden geçmesi gereken G / Ç ek yükü, bağımsız bir makinenin disk G / Ç ek yüküne dönüştürülebilir ve böylece sorgu yürütme verimliliği iyileştirilebilir. Bu nedenle, DRDS kullanırken yavaş SQL ile karşılaşırsak, SQL'i DRDS'nin özelliklerine göre uygun şekilde uyarlamamız gerekir.

    İlki koşullu sorgu optimizasyonudur DRDS verileri yatay olarak bölünmüş anahtara göre bölünür.Sorguya split anahtar dahil edilmişse, DRDS'de SQL yürütme süresinin azaltılması büyük önem taşır. Sorgu koşulları, alt veritabanı anahtarını mümkün olduğunca içermelidir, böylece DRDS, sorguyu alt veritabanı anahtarının değerine göre belirli bir alt veritabanına doğrudan yönlendirebilir, bu da DRDS'nin tam veritabanı taraması yapmasını önlemeye yardımcı olur. Alt veritabanı anahtarını içeren koşulun doğruluğu ne kadar yüksekse, sorgu hızını artırmak o kadar yararlı olur.Sadece bu tür bir optimizasyon, dağıtılmış mimari sorgusunun avantajlarına tam anlamıyla etki edebilir ve sonraki sorgu yeteneklerinin genişletilmesini kolaylaştırabilir.

    İkinci olarak, Join optimizasyonu için, sağ tablodaki IN sorgularının sayısını azaltmak için sol tablo (sürüş tablosu) olarak az miktarda sorgu verisi içeren Join tablosunu seçin; Daha az veri ve daha az değişiklikle "yayın tablosu" na katılan Jion işlemleri "Yayın tablosu" sürüş tablosu görevi görür.

    LIMIT OFFSET ve COUNT ifadeleri için, DRDS'nin gerçek SQL yürütmesi, OFFSET'ten önce kayıt verilerini sıralı olarak okumak ve atmak ve yalnızca OFFSET'ten sonra verileri saklamaktır.Bu şekilde, OFFSET çok büyük olduğunda, okunan veri kaydı sayısı çok azdır ve bu verimlidir Ayrıca çok düşüktür, çünkü OFFSET'ten önce okunan veriler çok sayıda disk G / Ç okuma işlemi gerektirir. Optimizasyon yöntemi, SQL'i OFFSET okuma ve anahtarın IN işleminin iki adımına optimize etmektir.Öncelikle kayıt anahtarını OFFSET'ten sonra okuyun, bu anahtarları bellekte önbelleğe alın ve ardından IN sorgusu aracılığıyla eksiksiz kayıt bilgilerini elde edin, bu büyük ölçüde azalacaktır. Disk I / O, verimlilik artışı çok açık.

    Dağıtılmış işlem optimizasyonu

    Dağıtılmış veritabanı işlemleri ve SQL sorgu optimizasyon mantığı aynı ilkelerdir İşlemleri tek bir veritabanında gerçekleştirmeye çalışın Yalnızca tek bir veritabanında yürütüldüğünde, işlemin ACID özelliklerini korurken işlem yeteneği doğrusal olarak genişletilebilir. Bu tek veritabanı işlemine genellikle "güçlü işlem" adı verilir.

    Fiili işler de sıklıkla dağıtılmış veritabanı mimarisiyle karşı karşıyadır ve veritabanı işlemlerinin çapraz veritabanı yürütülmesi kaçınılmazdır. Veritabanları arası işlemler, kaçınılmaz olarak, bir işlemin işlem dallarının birden çok alt veritabanında yürütülmesini ve durum senkronizasyonunu içerir.Tek makineli işlemlerle karşılaştırıldığında, dağıtılmış veritabanları arası işlemlerin iş hacmi ve gecikmesi büyük ölçüde artacaktır. Ve bir işleme ne kadar çok alt veritabanı dahil edilirse, işlem sınırı o kadar büyük olur, işlem gecikmesi de buna bağlı olarak artar ve performans doğrusal bir düşüşe neden olur.

    Veritabanları arası işlemler söz konusu olduğunda, genel uygulama optimizasyon yöntemi, "nihai olarak tutarlı" işlemler aracılığıyla işlem yürütme veriminin sağlanmasıdır. "Nihayet tutarlı" işlemlerin ilkesi, temel işlem dalının pozitif yürütülmesine öncelik vermek ve ardından işlemin ara durumunu kaydetmek ve diğer işlem dalları eşzamansız olarak yürütülür ve nihai işlem tutarlılığı, yürütme tamamlandıktan sonra sağlanır, böylece veri tabanları arası işlem zaman dizisi yürütmesini engelleme ve işlemleri iyileştirme Çıktı. Şekil 8'de görüldüğü gibi işlem 3 ve işlem 5 veri tabanları arası işlemlerdir.İşlem şubesi önce sol bankada, asenkron işlem şubesi ise sağ bankada gerçekleştirilir ve sırayla kendi bankasında gerçekleştirilir ve son olarak işlem tutarlılığı sağlanır.

    Bağımsız bir veritabanını DRDS'ye taşıma işlemi

    Bağımsız bir veritabanını dağıtılmış bir veritabanına geçirirken, sağlanması gereken, normal iş operasyonu, sorunsuz geçiş ve azaltılmış operasyon ve bakımdır.Tüm geçiş üç adıma bölünmüştür.

    İlk adımda, okuma ve yazma orijinal veri tabanında tutulur ve dağıtılmış hedef veri tabanı tablosunun oluşturulması şartıyla veri, çoğaltma mekanizması aracılığıyla dağıtılmış veri tabanına yazılır;

    İkinci adım, bulut üzerindeki verilerin doğru olup olmadığını doğrulamak ve çevrimiçi basınç doğrulamasını okumak için okuma trafiğinin bir kısmını hedef dağıtılmış veritabanına kesmek (test ortamı önceden doğrulanabilir);

    Üçüncü adım, birkaç dakikalığına iş dikte etmektir, okuma ve yazma trafiği hedef veritabanına geçirilir ve veriler, herhangi bir zamanda bağımsız veritabanına geri döndürülebilmesini sağlamak için kaynak bağımsız veritabanına tersine kopyalanır ve bulut altında veri yedeklemesi de yapılabilir.

    Figür 8

    Figür 8

    gelecekteki gelişme

    Dağıtılmış veri sistemindeki veritabanı hizmetlerinin orta katmanı olan DRDS, gelecekte daha fazla temel depolama motoruna adapte olacaktır.Alt depolama düğümlerinin bilgi işlem gücünü tam olarak kullanırken DRDS, kendi hizmetlerinin bilgi işlem gücünü optimize eder, OLAP senaryolarını çözer ve tam bir kapsam haline gelir OLTP, OLAP ve diğer veritabanı hizmeti senaryoları için eksiksiz bir dağıtılmış veritabanı hizmet sistemi Aynı zamanda, dağıtılmış veritabanının mantıksal katmanının işletim ve bakım desteği ve dağıtılmış güçlü tutarlı işlem desteği tamamlanmıştır.

    Baojun 530 satın almaya değer mi? 3000 kilometre sürdükten sonra, sahibi gerçek itirafta bulundu!
    önceki
    Norveç binası, dünyanın en yüksek ahşap yapısı olarak adlandırıldı. Daha fazla benzer yüksek binalar olacak mı?
    Sonraki
    Atmasız ve tuzlu balık arasındaki fark nedir, Tuon 380 amiral gemisi arabadan bahsedin
    Yıl sonu planlama maratonu "Gök gürültüsüne basmaktan" kaçınmak ister misiniz Bu on maraton kesinlikle katılımınıza değer
    Irak 3-0 Yemen grubu erken elemeye, 00'dan sonra genç gol attı
    Yeni Venus T90 casus fotoğrafları ortaya çıktı ve bu yaz satışta olan 6 ileri manuel şanzımanın yerini aldı
    React Native'deki iş parçacıklarının iOS perspektifinden şifresini çözme
    hatırlatmak! Kaiping Yolu ile Jiujiang Yolu ile Pingxiang Yolu ve Pingxiang Şubesi Yolu'nun kesişme noktasındaki trafik değişti. Bu konuda iyimsersiniz ~
    Gerçek ortaya çıktı! Wenzhou, temas halinde olan çocuğu kaybetti ama annesi yüzünden "mutlu değil"
    4 yaşında bir kız yolun karşısına geçerken ezildi ve beklenmedik bir şekilde, bu son kez büyükleriyle el ele tutuştu!
    Odak noktası | Huobian Weibo'nun "kızarmış tavuk pantolonları" burada. Bu ilginç ürünler sadece göz alıcı eserler!
    BMW ve Alibaba, yapılandırma listesine girmek için Tmall Genie akıllı ses asistanı ile işbirliği yapıyor
    İOS Geliştirici Hesabı Özeti
    Geely Binyue, radikal bir stille başlayarak 78.800'ü listeledi, gençlerde uzmanlaşmış, Civic'ten sıfır hız daha hızlı
    To Top