Amazon SimpleDB - Amazon SimpleDB

SimpleDB Logosu

Amazon SimpleDB bir dağıtılmış veritabanı yazılmış Erlang[1] tarafından Amazon.com. Olarak kullanılır internet servisi ile uyum içinde Amazon Elastic Compute Cloud (EC2) ve Amazon S3 ve bir parçası Amazon Web Hizmetleri. 13 Aralık 2007'de ilan edildi.[2]

EC2 ve S3'te olduğu gibi Amazon, SimpleDB depolaması, aktarımı ve İnternet üzerinden aktarım hızı için ücret alır. 1 Aralık 2008'de Amazon, Ücretsiz Kullanım ile yeni fiyatlandırmayı tanıttı[3] 1 GB veri ve 25 makine saati için. Diğer Amazon Web Hizmetlerine transfer ücretsizdir.[2]

Sınırlamalar

SimpleDB sağlar nihai tutarlılık, diğerlerine kıyasla daha zayıf bir tutarlılık biçimi olan Veritabanı Yönetim Sistemleri. Bu genellikle bir sınırlama olarak kabul edilir, çünkü akıl yürütmek daha zordur ve bu da SimpleDB'yi kullanan doğru programları yazmayı zorlaştırır. Bu sınırlama, temel bir tasarım değiş tokuşunun sonucudur. Yukarıdaki tutarlılıkla, sistem diğer iki çok istenen özelliği elde edebilir:

  1. kullanılabilirlik - sistemin bileşenleri arızalanabilir, ancak hizmet doğru şekilde çalışmaya devam edecektir.
  2. bölme toleransı - sistemdeki bileşenler birbirine bir bilgisayar ağı. Bileşenler ağı kullanarak birbirleriyle iletişim kuramıyorsa ( ağ bölümü ), sistemin çalışması devam edecektir.

Bileşen arızalarının kaçınılmaz olduğu varsayılır; bu nedenle, bu özelliklerin her ikisi de güvenilir bir internet servisi. CAP teoremi bir sistemin tutarlılıkla birlikte bu özellikleri sergilemesinin mümkün olmadığını belirtir; bu nedenle, tasarımcıların daha zayıf bir tutarlılık biçimine razı olması gerekiyordu.

Yayınlanan sınırlamalar:[4]

Mağaza sınırlamaları

ÖznitelikMaksimum
etki alanlarıHesap başına 250 aktif alan. Bir form doldurarak daha fazlasını talep edebilirsiniz.[5]
her alanın boyutu10 GB
etki alanı başına öznitelikler1,000,000,000
öğe başına nitelik256 nitelik
özellik başına boyut1024 bayt

Sorgu sınırlamaları

ÖznitelikMaksimum
bir sorgu yanıtında döndürülen öğeler2500 öğe
bir sorgunun çalışabileceği saniye5 saniye
sorgu koşulu başına öznitelik adları1 özellik adı
yüklem başına karşılaştırma22 operatör
sorgu ifadesi başına tahminler20 yüklem

Özellikleri

Koşullu Koyma ve Silme

Koşullu yerleştirme ve koşullu silme, Şubat 2010'da eklenen yeni işlemlerdir. Aynı anda SimpleDB'ye erişirken ortaya çıkan bir sorunu ele alırlar. Bir sayacı, yani artırılabilen bir sayıyı saklamak için SimpleDB'yi kullanan basit bir program düşünün. Program üç şey yapmalıdır:

  1. Sayacın mevcut değerini SimpleDB'den alın.
  2. Değere bir ekleyin.
  3. Yeni değeri SimpleDB'deki eski değerle aynı yerde saklayın.

Bu program başka hiçbir program SimpleDB'ye erişirken çalışırsa, düzgün çalışacaktır; ancak, genellikle arzu edilir yazılım uygulamaları (özellikle Web uygulamaları ) aynı verilere aynı anda erişmek için. Aynı verilere aynı anda erişildiğinde, yarış kondisyonu tespit edilemez veri kaybına neden olacak şekilde ortaya çıkar.

Önceki örneğe devam ederken, aynı programı çalıştıran iki işlemi, A ve B'yi düşünün. Adım 1'de açıklandığı gibi, SimpleDB hizmetlerinin hem A hem de B'den veri isteklerinin aynı olduğunu varsayalım. A ve B'nin aynı değeri gördüğünü varsayalım. Diyelim ki sayacın o anki değeri 0'dır. Adım 2 ve 3'ten dolayı A, 1'i saklamaya çalışacaktır. B de aynısını yapmaya çalışacaktır; bu nedenle, beklenen son sayaç değeri 2 olmasına rağmen, son sayaç değeri 1 olacaktır, çünkü sistem biri A ve diğeri B ile olmak üzere iki artırma işlemini denedi.

Bu sorun, koşullu koyma kullanılarak çözülebilir. 3. adımı şu şekilde değiştirdiğimizi varsayalım: yeni değeri koşulsuz olarak depolamak yerine, program SimpleDB'den yeni değeri yalnızca şu anda tuttuğu değer 1. adımda alınan değerle aynı ise saklamasını ister. Daha sonra, Sayacın değerinin gerçekten arttığından emin olun. Bu, bazı ek karmaşıklıklar getirir; SimpleDB, mevcut değer beklendiği gibi olmadığından yeni değeri saklayamazsa, program koşullu yerleştirme işlemi depolanan değeri gerçekten değiştirene kadar 1-3 arasındaki adımları tekrarlamalıdır.

Tutarlı Okuma

Tutarlı okuma, koşullu yerleştirme ve koşullu silme ile aynı zamanda 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 (Bkz. Sınırlamalar Bölüm). Aşağıdaki işlem sırasını düşünün:

  1. Program A, bazı verileri SimpleDB'de depolar.
  2. Hemen sonra, A az önce depoladığı 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. Nihai tutarlılık, yalnızca 2. adımın 1. adımdaki tüm güncellemeleri yansıttığını veya bu güncellemelerin hiçbirini yansıtmadığını garanti eder. 2. adımda alınan verilerin 1. adımdaki değişiklikleri yansıttığından emin olmak için tutarlı okuma kullanılabilir.

Tutarlı okuma işlemi kullanılmadığında tutarsız sonuçların ortaya çıkmasının nedeni, SimpleDB'nin verileri birden çok konumda (kullanılabilirlik için) depolaması ve adım 1'deki yeni verilerin, SimpleDB adımda veri talebini aldığında tüm konumlara yazılamayabilmesidir. 2. Bu durumda, adım 2'deki veri talebinin, yeni verilerin yazılmadığı konumlardan birinde hizmet verilmesi mümkündür.

Amazon, doğruluk için gerekli olmadıkça tutarlı okumanın kullanılmasını önermemektedir. Bu tavsiyenin nedeni, tutarlı okuma işlemlerinin sunulma hızının normal okumalardan daha düşük olmasıdır.

DynamoDB ile İlişki

SimpleDB'nin yerini aldığından söz edildi. DynamoDB (artık "yinelenmiyor",[6] Amazon bunu kaldırmayı planlamasa da). DynamoDB, halefi gibi görünüyor.[7][8]

Ayrıca bakınız

Referanslar

  1. ^ Amazon SimpleDB Hakkında Bilmeniz Gerekenler
  2. ^ a b "AWS | Amazon SimpleDB - Basit Veritabanı Hizmeti". Amazon Web Services, Inc.
  3. ^ SimpleDB - Ücretsiz Kullanım - AWS fiyatlandırmasında bir değişiklik Arşivlendi 2008-12-25 Wayback Makinesi
  4. ^ "Sınırlar", SimpleDB Geliştirici Kılavuzu, Amazon (API son sürümü).
  5. ^ Amazon SimpleDB Etki Alanlarının Tahsisini Artırma İsteği. Aws.amazon.com. Erişim tarihi: 2013-08-09.
  6. ^ "AWS Geliştirici Forumları: SimpleDB geleceği mi? ..." forums.aws.amazon.com.
  7. ^ http://aws.amazon.com/dynamodb/faqs/#How_does_Amazon_DynamoDB_differ_from_Amazon_SimpleDB_Which_should_I_use Dinamo, "SimpleDB'nin sınırlamalarını ele almak için" oluşturuldu.
  8. ^ "Amazon DynamoDB - İnternet Ölçekli Uygulamalar için Tasarlanmış Hızlı ve Ölçeklenebilir NoSQL Veritabanı Hizmeti - Her Şey Dağıtılmış". www.allthingsdistributed.com.

Dış bağlantılar