Amazon Basit Veritabanı
Amazon SimpleDB , Amazon.com tarafından Erlang [ 1 ] ile yazılmış dağıtılmış bir veritabanıdır . Amazon Elastic Compute Cloud (EC2) ve Amazon S3 ile birlikte bir web hizmeti olarak kullanılır ve Amazon Web Services'in bir parçasıdır . 13 Aralık 2007'de açıklandı.
EC2 ve S3 gibi Amazon da SimpleDB'nin İnternet üzerinden depolaması, aktarımı ve performansı için ücret alır. 1 Aralık 2008'de Amazon, 1 GB veri ve 25 makine saati için ücretsiz bölüm için yeni bir fiyat sundu. Diğer Amazon Web Hizmeti hizmetlerine aktarım ücretsizdir.
Sınırlamalar
SimpleDB, diğer veritabanı yönetim sistemlerine kıyasla daha zayıf bir tutarlılık biçimi olan nihai tutarlılığı sağlar . Bu genellikle bir sınırlama olarak kabul edilir, çünkü akıl yürütmesi daha zordur, bu da SimpleDB kullanan doğru programları yazmayı zorlaştırır. Bu sınırlama, temel bir tasarım değiş tokuşunun sonucudur. Yukarıda belirtilen tutarlılık ile sistem, son derece arzu edilen diğer iki özelliği elde edebilir:
- Kullanılabilirlik: Sistem bileşenleri başarısız olabilir, ancak hizmet düzgün şekilde çalışmaya devam edecektir.
- Bölme Toleransı: Sistem bileşenleri bir bilgisayar ağı kullanılarak birbirine bağlanır . Bileşenler ağ üzerinden birbirleriyle iletişim kuramıyorsa ( ağ bölümleme olarak bilinen bir durum ), sistem çalışması devam eder.
Bileşen arızalarının kaçınılmaz olduğu varsayılır; bu nedenle, güvenilir bir web hizmeti sağlamak için her iki özellik de gerekli kabul edildi . CAP teoremi , bir sistemin bu özellikleri tutarlılıkla birlikte sergilemesinin mümkün olmadığını belirtir; bu nedenle, tasarımcıların daha zayıf bir tutarlılık biçimine razı olmaları gerekiyordu.
Yayınlanan Sınırlamalar:
Mağaza sınırlamaları
| Bağlanmak | Maksimum |
|---|---|
| etki alanları | Hesap başına 250 aktif alan. Bir form doldurarak daha fazlası talep edilebilir. |
| her alanın boyutu | 10 GB |
| etki alanı başına nitelikler | 1.000.000.000 |
| öğe başına nitelikler | 256 nitelik |
| nitelik başına boyut | 1024 bayt |
Sorgu sınırlamaları
| Bağlanmak | Maksimum |
|---|---|
| bir sorgu yanıtında döndürülen öğeler | 2500 ürün |
| bir sorgunun çalışabileceği saniye | 5 saniye |
| sorgu yüklemi başına öznitelik adları | 1 özellik adı |
| yüklemlere göre karşılaştırmalar | 22 operatör |
| sorgu ifadesiyle yüklemler | 20 yüklem |
Özellikler
Koşullu yerleştirme ve koşullu silme, Şubat 2010'da eklenen yeni işlemlerdir. SimpleDB'ye aynı anda erişirken bir sorunu ele alırlar. Bir sayacı, yani artırılabilen bir sayıyı saklamak için SimpleDB kullanan basit bir program düşünün. Program üç şey yapmalıdır:
- SimpleDB sayacının geçerli değerini alın.
- Değere bir tane ekleyin.
- Yeni değeri SimpleDB'deki eski değerle aynı yerde saklayın.
Bu program başka hiçbir program SimpleDB'ye erişmiyorken çalıştırılırsa, düzgün çalışacaktır; bununla birlikte, yazılım uygulamalarının (özellikle web uygulamalarının ) aynı verilere aynı anda erişmesi genellikle arzu edilir. Aynı verilere aynı anda erişildiğinde, tespit edilemeyen veri kaybına neden olacak bir yarış durumu ortaya çıkar.
Önceki örnekle devam ederek, aynı programı yürüten A ve B olmak üzere iki süreci düşünün. SimpleDB'nin 1. adımda açıklandığı gibi A ve B'den gelen veri isteklerine hizmet ettiğini varsayın. A ve B aynı değeri görür. Diyelim ki sayacın mevcut değeri 0. 2. ve 3. adımlardan dolayı A, 1'i saklamaya çalışacak. B de aynısını yapmaya çalışacak; bu nedenle, sayacın beklenen nihai değeri 2 olsa bile sayacın nihai değeri 1 olacaktır, çünkü sistem biri A ve diğeri B olmak üzere iki artış işlemi denemiştir.
Bu problem koşullu put kullanılarak çözülebilir. Adım 3'ü şu şekilde değiştirdiğimizi varsayalım: yeni değeri koşulsuz olarak saklamak yerine, program SimpleDB'den yeni değeri saklamasını, ancak o anda içerdiği değer adım 1'de alınan değerle aynıysa saklamasını ister. sayacın değeri aslında artar. Bu, bazı ek karmaşıklık getirir; SimpleDB, mevcut değer beklendiği gibi olmadığı için yeni değeri saklayamazsa, koşullu koyma işlemi saklanan değeri gerçekten değiştirene kadar program 1'den 3'e kadar olan adımları tekrar etmelidir.
Tutarlı okuma
Tutarlı okuma, koşullu yerleştirme ve koşullu kaldırma ile aynı anda yayınlanan yeni bir özellikti. Adından da anlaşılacağı gibi, tutarlı okuma, SimpleDB'nin nihai tutarlılık modeli nedeniyle ortaya çıkan sorunları ele alır. Aşağıdaki işlem sırasını göz önünde bulundurun:
- Program A, bazı verileri SimpleDB'de saklar.
- Hemen ardından A, az önce sakladığı verileri ister.
SimpleDB'nin nihai tutarlılık garantisi, 2. adımda alınan verilerin 1. adımda yapılan güncellemeleri yansıttığını söylememize izin vermez. 2. adımda alınan verilerin 1. adımdaki değişiklikleri yansıtmasını sağlamak için tutarlı okuma kullanılabilir.
Tutarlı okuma işlemini kullanmadığınızda tutarsız sonuçlar almanızın nedeni, SimpleDB'nin verileri birden fazla konumda (kullanılabilirlik için) depolaması ve SimpleDB veri isteğini aldığında 1. adımdaki yeni verilerin tüm konumlara yazılmamasıdır. 2. adımda. Bu durumda, 2. adımdaki veri talebinin yeni verinin yazılmadığı konumlardan birinde sunulması mümkündür.
Amazon, düzeltme için gerekli olmadığı sürece tutarlı okuma kullanılmasını önermez. Bu önerinin nedeni, tutarlı okuma işlemlerine hizmet verilme hızının normal okumalardan daha yavaş olmasıdır.
DynamoDB ile İlişki
SimpleDB'yi DynamoDB ile değiştirmekten söz edildi (Amazon onu kaldırmayı planlamasa da artık "yinelenmiyor"). DynamoDB halefi gibi görünüyor. [ 2 ]
Ayrıca
Referanslar
- ↑ Amazon SimpleDB Hakkında Bilmeniz Gerekenler
- ↑ "Amazon DynamoDB – İnternet Ölçekli Uygulamalar için Tasarlanmış Hızlı ve Ölçeklenebilir NoSQL Veritabanı Hizmeti - Her Şey Dağıtıldı" . www.allthingsdistributed.com . 18 Ocak 2012.