Kripto Para

Sharding Nedir?

sharding nedir 6250a8d47027f

Sharding, parçalama sürecine nazaran sistemin dataları değişik kaynaklarda tutmasına destek olan oldukça kıymetli bir kavramdır.

“Shard”kelimesi” bir bütünün minik bir kesimi manasına gelir. Münasebetiyle Sharding, daha büyük bir parçayı daha minik kesimlere bölmek manasına gelir.

DBMS’de, Sharding, büyük bir data tabanın bölündüğü veya daha minik bilgilere bölündüğü, ayrıyeten modül olarak da malum bir Data Tabanı bölümleme cinsidir. Bu kesimler yalnız daha minik değil, birebir vakitte daha süratli ve münasebetiyle kolaylıkla yönetilebilir.

Sharding İhtiyacı

Sharding yapılmamış oldukça büyük bir veritabanı düşünün. Mesela, tüm kolejdeki tüm talebe kayıtlarının (şimdiki ve geçmiş) tek bir veritabanında tutulduğu bir kolejin veritabanını alalım. Bu nedenle, oldukça oldukça sayıda informasyon, diyelim ki 100.000 kayıt içerecektir.

Artık bu veritabanından bir talebe bulmamız gerektiğinde, öğrenciyi bulmak için her seferinde 100.000 civarında süreç yapılması gerekiyor ki bu oldukça oldukça maliyetli.

Artık tıpkı üniversite öğrencilerinin yıllara nazaran daha minik data modüllerine ayrılmış kayıtlarını düşünün. Artık her data modülünde sırf ortalama 1000-5000 talebe kaydı olacaktır. Böylelikle yalnızca veritabanı oldukça daha yönetilebilir hale gelmekle kalmadı, tıpkı vakitte her seferinde süreç maliyeti de Sharding ile elde edilmiş büyük bir unsur tarafınca azaltıldı.

Bu nedenle Sharding’e gereksinim duyulur.

Sharding’in Özellikleri:

  • Sharding, veritabanını küçültür
  • Sharding, veritabanını daha süratli hale getirir
  • Sharding, veritabanını oldukça daha kolay yönetilebilir hale getirir
  • Sharding, kimi zaman karmaşık bir süreç olabilir
  • Sharding, veritabanının süreç maliyetini azaltır

Sharding’in Yararları

Bir veritabanını Shardingin ana cazibesi, yatay ölçeklendirmeyi kolaylaştırmaya destek olabilmesidir, buna ölçeklendirme de denir. Yatay ölçeklendirme, yükü dağıtmak ve daha çok trafiğe ve daha süratli işlemeye müsaade vermek için mevcut bir yığına daha çok makine ekleme uygulamasıdır. Bu ekseriyetle, ekseriyetle daha çok RAM veya CPU ilave ederek mevcut bir sunucunun donanımını yükseltmeyi içeren, ölçeklendirme olarak da malum dikey ölçeklendirme ile karşılaştırılır.

Tek bir makinede çalışan bir ilişkisel veritabanına haiz olmak ve informasyon süreç kaynaklarını yükselterek gerektiği suretiyle ölçeklendirmek nispeten kolaydır. Nihayetinde, dağıtılmamış rastgele bir veritabanı, depolama ve hesaplama gücü açısından hudutlu olacaktır, bundan dolayı yatay olarak ölçekleme özgürlüğüne haiz olmak kurulumunuzu oldukça daha esnek hale getirir.

Kimilerinin parçalanmış bir veritabanı mimarisi seçmesinin bir diğeri sebebi de sorgu karşılık müddetlerini hızlandırmaktır. Parçalanmamış bir veritabanında sorgu gönderdiğinizde, aradığınız netice kümesini bulabilmesi için sorguladığınız tablodaki her satırı araması gerekebilir. Büyük, yekpare bir veritabanına haiz bir uygulama için sorgular oldukça derecede yavaşlayabilir. Lakin bir tabloyu birden oldukça tabloya bölerek, sorguların daha azca satırı aşması gerekir ve netice kümeleri oldukça daha süratli döndürülür.

Sharding, kesintilerin tesirini azaltarak bir uygulamayı daha sağlam hale getirmeye de destek olabilir. Uygulamanız veya web siteniz paylaşılmamış bir veritabanına dayanıyorsa, bir kesinti tüm uygulamayı kullanılamaz hale getirme potansiyeline haizdir. Bununla beraber, parçalanmış bir veritabanıyla, bir kesintinin sırf tek bir parçayı etkilemesi mümkündür. Bu, uygulamanın veya web sitesinin kimi kısımlarının bazı kullanıcılar tarafınca kullanılamamasına niçin olsa da, genel etki, tüm veritabanının çökmesinden daha azca olacaktır.

Sharding’in Dezavantajları

Bir veritabanını parçalamak, ölçeklendirmeyi kolaylaştırabilir ve performansı iyileştirebilirken, belli sınırlamalar da getirebilir. Burada, bunlardan bazılarını ve niçin büsbütün parçalamayı önlemek için nedenler olabileceğini tartışacağız.

İnsanların parçalama ile karşılaşmış olduğu birinci güçlük, parçalanmış bir veritabanı mimarisini muntazam bir halde uygulamanın katıksız karmaşıklığıdır. Yanlış yapılırsa, parçalama sürecinin data yitirilmesine veya tabloların bozulmasına yol açması suretiyle kıymetli bir risk vardır. Gerçek yapıldığında bile, parçalamanın takımınızın iş akışları üstünde büyük bir tesiri olması mümkündür. Bir kişinin datalarına tek bir giriş noktasından erişmek ve bu tarz şeyleri yönetmek yerine, kullananların, kimi takımlar için potansiyel olarak kesintiye yol açabilecek birden oldukça modül pozisyonunda detayları yönetmesi gerekir.

Kullanıcıların bir veritabanını parçaladıktan sonrasında kimi zaman karşılaştıkları bir problem, modüllerin sonunda istikrarsız hale gelmesidir. Örnek olarak, iki başka kesime haiz bir veritabanınız bulunduğunu varsayalım, biri soyadı A ile M ortası harflerle başlamış olan müşteriler için, başkası ise adları N ile Z ortasındaki harflerle başlayanlar için. Fakat, uygulamanız oldukça seviyede hizmet veriyor. Soyadı G harfi ile başlamış olan bireylerin oranı. Buna nazaran, AM kesimi kademeli olarak NZ’den daha çok informasyon biriktirerek, kullanıcılarınızın kıymetli bir kısmı için uygulamanın yavaşlamasına ve durmasına niçin olur. AM modülü, bir veritabanı etken noktası olarak malum hale geldi. Bu durumda, veritabanını parçalamanın tüm yararları, yavaşlamalar ve çökmeler tarafınca iptal edilir. Daha eşit bir informasyon dağıtımına müsaade vermek için veritabanının büyük olasılıkla onarılması ve gene paylaşılması gerekir.

Başka bir kıymetli dezavantaj ise, bir data tabanı parçalandıktan sonrasında, onu parçalanmamış mimarisine döndürmenin oldukça sorun olabilmesidir. Veritabanının parçalanmadan evvel meydana getirilen yedekleri, bölümlemeden sonrasında yazılan detayları içermez. Sonuç olarak, orjinal paylaşılmamış mimarinin gene oluşturulması, yeni bölümlenmiş bilgilerin eski yedeklerle birleştirilmesini veya alternatif olarak, bölümlenmiş DB’yi yine tek bir DB’ye dönüştürmeyi gerektirir; bunların her ikisi de maliyetli ve zaman alıcı uğraşlar olacaktır.

Dikkate alınması ihtiyaç duyulan son bir dezavantaj, parçalamanın her veritabanı motoru tarafınca mahallî olarak desteklenmemesidir. Mesela, PostgreSQL veritabanını manuel olarak parçalamak mümkün olsa da, PostgreSQL otomatik parçalamayı bir özellik olarak içermez. Otomatik parçalamayı içeren bir takım Postgres çatalı vardır, lakin bunlar çoklukla son olarak PostgreSQL sürümünün peşinde kalır ve diğer bazı özelliklerden mahrumdur. MySQL Cluster veya MongoDB Atlas suretiyle belli bir hizmet olarak veritabanı eserleri suretiyle kimi hususi veritabanı teknolojileri, bir özellik olarak otomatik parçalamayı ihtiva eder, lakin bu veritabanı yönetim sistemlerinin vanilya sürümleri içermez. Bu nedenle, parçalama çoklukla “kendi yuvarlanma” yaklaşımını gerektirir. Bu, parçalama evraklarının veya problem yok etme problemlerine ilişkin ipuçlarının bulunmasının ekseriyetle sorun olduğu manasına gelir.

Bunlar, normal olarak, parçalamadan evvel dikkate alınması ihtiyaç duyulan bazı genel hususlardır. Kullanım durumuna bağlı olarak bir veritabanını parçalamanın daha birçok olası dezavantajı olabilir.

İlgili Makaleler

Başa dön tuşu
toptan çakmak
Pusulabet Betoffice Giriş ataşehir escort pendik escort sitene canlı tv ekle bonus veren siteler deneme bonusu veren siteler madridbet meritking kingroyal madridbet yeni giriş kingroyal giriş