2011-06-12 19 views
8

TabloA'nın tüm okuma sorgularının bir dizi satır anahtarı için tek bölümlerde yürütüldüğü bir Windows Azure uygulaması var. Bu depolama planını kolaylaştıran Bölüm Anahtarları, bir Hiyerarşideki nesnelerin aslında düzleştirilmiş isimleridir, böylece Bölüm Anahtarı {root}_{child1}_{child2}_{leaf} gibi biçimlendirilir. Bu büyük bir TableA'nın, Tabloların isimlendirilmesinde Partisyon Anahtarlarının kök boyutlarını kullanarak birçok tabloya bölmenin nasıl faydalı olabileceğini anlayabiliyorum (böylece Bölüm Anahtarı {child1}_{child2}_{leaf} olur).Birçok bölümleme anahtarına sahip bir Azure tablo depolama tablosu, daha az bölümleme anahtarına sahip birçok tabloyla nasıl karşılaştırılır?

Yapmak istediğim şey, olabildiğince çok sayıda bağlantıdan alabildiğim kadar hızlı veri sağlamaktır. Bu sınırların ne olduğunu ya da olması gerektiğini anlayabilseydim inanılmaz olurdu. Önerdiğim değişiklikle ilgili

daha spesifik sorular:

  1. bu ölçeklenebilirlik bir fark yaratmak Will, yani dramatik performansını mükemmelleştirmek olmadan servis edilebilir eşzamanlı veri erişim isteklerinin sayısı? Aynı zamanda servis edildi mi?
  2. Bu, ortalama performansta bir fark yaratır mı? Potansiyel performans?
+0

Lütfen bazı örnek TPL ve async sorgularını gönderin – Paparazzi

cevap

10

Her sorguda bir bölüm anahtarı belirtilirse, bu bölümlerin kaç tane tabloya yayıldığı fark edilmez. Diğer bir deyişle, aşağıdakiler eşdeğerdir: bin bölümden oluşan bir tablo, her biri bir bölmeli bin tabloya karşılık gelir.

Birden çok tabloya ayırmayı düşünmemizin başlıca nedeni, bir tablonun tamamını tek bir işlemle/işlemle silebilmenizdir; ancak aynı tablo içinde bir bölüm aralığıyla bunu yapamazsınız. Bu, bir süre sonra eskileri silmek isteyebileceğiniz günlükler gibi, farklı zaman aralıkları için farklı tablolara sahip olmanızın genellikle daha iyi olduğu anlamına gelir. Steve'in cevabı için

+0

İlginçtir, böylece anlıyorum ki, tablo depolamasını sorgulayan eş zamanlı çalışan rolleri için IO sınırlaması hesap düzeyinde mi? – user483679

+1

Bölüm düzeyinde (tablo + bölüm) ve hesap düzeyinde saniye başına işlem sınırlaması vardır. – smarx

6

+1.

Bazı şeyler

+0

Evet, mükemmel, içgörüleriniz için teşekkürler. Testlerimde ayrı ayrı paralel sorgulamalar (bölüm başına bir tane) üzerinde geldim, ama aslında doğru bir yaklaşım olduğunu bilmek harika. TPL ve async sorguları iyi çalışıyor gibi görünüyor. Birden fazla hesaba bakacağım.Sorun şu ki, sadece çok sayıda hesabım olabilir, değil mi? Uygulamamı mantıklı bir şekilde, büyük olasılıkla ölçeklenecek olan 5 veya daha fazla parçaya nasıl bölebildiğim açık değildir. – user483679

+0

Eklemek için ... Gerek duyduğum kadar çok tablo depolama hesabı oluşturabilirsem faturalandırma için gerçekten yararlı olabilir. Yapmak istediğimiz türden projeler için mantıklı olan yüksek seviyeli bir depolama hesabı bölümü – user483679

+0

Eklemek gerekirse ... Gerek duyduğum kadar çok tablo depolama hesabı oluşturabilirsem faturalandırma için gerçekten çok yararlı olurdu. . Yapmak istediğimiz projeler için mantıklı olan üst düzey bir depolama hesabı bölümü, müşteri düzeyinde olacaktır. Her müşteriye benzersiz bir tablo depolama hesabı atayabilirsek, muhtemelen IO ölçeklenebilirlik hedeflerimize ulaşır ve fatura sisteminizi kendi başımıza bir parçası olarak kullanırız. – user483679

İlgili konular