Amazon SimpleDB

شعار SimpleDB

Amazon SimpleDB هي قاعدة بيانات موزعة مكتوبة بلغة Erlang [ 1 ] من قِبل Amazon.com . تُستخدم كخدمة ويب بالتزامن مع Amazon Elastic Compute Cloud (EC2) و Amazon S3 ، وهي جزء من خدمات Amazon Web Services . أُعلن عنها في 13 ديسمبر 2007. [ 2 ]

كما هو الحال مع EC2 وS3، تفرض أمازون رسومًا على تخزين SimpleDB ونقل البيانات وسرعة نقلها عبر الإنترنت. في 1 ديسمبر 2008، قدمت أمازون تسعيرًا جديدًا مع طبقة مجانية [ 3 ] لـ 1 جيجابايت من البيانات و25 ساعة تشغيل للخادم. النقل إلى خدمات أمازون السحابية الأخرى مجاني. [ 2 ]

القيود

يُوفر SimpleDB اتساقًا نهائيًا ، وهو شكل أضعف من الاتساق مقارنةً بأنظمة إدارة قواعد البيانات الأخرى . يُعتبر هذا غالبًا قيدًا، لأنه يصعب فهمه، مما يُصعّب كتابة برامج صحيحة تستخدم SimpleDB. هذا القيد ناتج عن مفاضلة تصميمية أساسية. فبالتخلي عن الاتساق، يتمكن النظام من تحقيق خاصيتين مرغوبتين للغاية:

  1. التوافر - قد تتعطل مكونات النظام، لكن الخدمة ستستمر في العمل بشكل صحيح.
  2. تحمل الانقطاعات – ترتبط مكونات النظام بشبكة حاسوب . إذا لم تتمكن المكونات من الاتصال ببعضها البعض باستخدام الشبكة (وهي حالة تُعرف بانقطاع الشبكة )، فسيستمر تشغيل النظام.

يُفترض أن أعطال المكونات أمر لا مفر منه؛ لذا، اعتُبرت هاتان الخاصيتان ضروريتين لتوفير خدمة ويب موثوقة . تنص نظرية CAP على أنه لا يمكن لنظام ما أن يُظهر هاتين الخاصيتين مع الاتساق؛ وبالتالي، يحتاج المصممون إلى الاكتفاء بمستوى أقل من الاتساق.

القيود المنشورة: [ 4 ]

قيود المتجر

يصفالحد الأقصى
النطاقات250 نطاقًا نشطًا لكل حساب. يمكن طلب المزيد عن طريق ملء نموذج. [ 5 ]
حجم كل نطاق10 جيجابايت
السمات لكل نطاق1,000,000,000
السمات لكل عنصر256 سمة
الحجم لكل سمة1024 بايت

قيود الاستعلام

يصفالحد الأقصى
العناصر التي تم إرجاعها في استجابة الاستعلام2500 عنصر
قد يستغرق تنفيذ الاستعلام ثوانٍ5 ثوانٍ
أسماء السمات لكل شرط استعلاماسم السمة 1
المقارنات لكل مسند22 مشغلاً
المسندات لكل تعبير استعلام20 مسندًا

سمات

الإضافة والحذف المشروط

تُعدّ عمليتا الإضافة والحذف المشروطتان عمليتين جديدتين أُضيفتا في فبراير 2010. وهما تُعالجان مشكلةً تنشأ عند الوصول إلى قاعدة بيانات SimpleDB بشكل متزامن. لنفترض برنامجًا بسيطًا يستخدم SimpleDB لتخزين عداد، أي رقم يمكن زيادته. يجب على البرنامج القيام بثلاثة أشياء:

  1. استرجع القيمة الحالية للعداد من قاعدة بيانات SimpleDB.
  2. أضف واحدًا إلى القيمة.
  3. قم بتخزين القيمة الجديدة في نفس مكان القيمة القديمة في SimpleDB.

إذا تم تشغيل هذا البرنامج في حين لا تستخدم أي برامج أخرى قاعدة بيانات SimpleDB، فسيعمل بشكل صحيح؛ ومع ذلك، يُفضّل غالبًا أن تصل تطبيقات البرامج (وخاصة تطبيقات الويب ) إلى البيانات نفسها في وقت واحد. عند الوصول إلى البيانات نفسها في وقت واحد، تنشأ حالة تنافس ، مما قد يؤدي إلى فقدان البيانات دون أن يُكتشف.

استكمالاً للمثال السابق، لنفترض وجود عمليتين، A وB، تُشغّلان البرنامج نفسه. لنفترض أن SimpleDB يستجيب لطلبات البيانات، كما هو موضح في الخطوة 1، من كلٍّ من A وB. يرى كلٌّ من A وB القيمة نفسها. لنفترض أن القيمة الحالية للعداد هي 0. نتيجةً للخطوتين 2 و3، سيحاول A تخزين القيمة 1. وسيحاول B فعل الشيء نفسه؛ وبالتالي، ستكون قيمة العداد النهائية 1، على الرغم من أن القيمة النهائية المتوقعة هي 2، لأن النظام حاول إجراء عمليتي زيادة، واحدة من قِبل A، والأخرى من قِبل B.

يمكن حل هذه المشكلة باستخدام عملية الإضافة الشرطية. لنفترض أننا غيّرنا الخطوة 3 كما يلي: بدلاً من تخزين القيمة الجديدة دون قيد أو شرط، يطلب البرنامج من قاعدة بيانات SimpleDB تخزين القيمة الجديدة فقط إذا كانت القيمة الموجودة لديها حاليًا هي نفسها القيمة التي تم استرجاعها في الخطوة 1. عندها، يمكننا التأكد من أن قيمة العداد قد زادت بالفعل. يُضيف هذا بعض التعقيد؛ فإذا لم تتمكن قاعدة بيانات SimpleDB من تخزين القيمة الجديدة لأن القيمة الحالية لم تكن كما هو متوقع، يجب على البرنامج تكرار الخطوات من 1 إلى 3 حتى تُغيّر عملية الإضافة الشرطية القيمة المخزنة فعليًا.

قراءة متسقة

كانت ميزة القراءة المتسقة ميزة جديدة أُطلقت بالتزامن مع ميزتي الإضافة والحذف المشروطتين. وكما يوحي الاسم، تعالج القراءة المتسقة المشاكل الناجمة عن نموذج الاتساق النهائي في SimpleDB (انظر قسم القيود ). لنفترض تسلسل العمليات التالي:

  1. يقوم البرنامج أ بتخزين بعض البيانات في قاعدة بيانات SimpleDB.
  2. مباشرة بعد ذلك، يطلب النظام (أ) البيانات التي قام بتخزينها للتو.

لا يضمن نظام SimpleDB اتساق البيانات النهائي، مما يعني أن البيانات المسترجعة في الخطوة 2 تعكس التحديثات التي أُجريت في الخطوة 1. يضمن هذا النظام فقط أن الخطوة 2 تعكس جميع التحديثات التي أُجريت في الخطوة 1، أو لا تعكس أيًا منها. يمكن استخدام قراءة متسقة لضمان أن البيانات المسترجعة في الخطوة 2 تعكس التغييرات التي طرأت في الخطوة 1.

يرجع سبب ظهور نتائج غير متسقة عند عدم استخدام عملية القراءة المتسقة إلى أن SimpleDB يخزن البيانات في مواقع متعددة (لضمان التوافر)، وقد لا تُكتب البيانات الجديدة في الخطوة 1 في جميع المواقع عندما يتلقى SimpleDB طلب البيانات في الخطوة 2. في هذه الحالة، من المحتمل أن تتم معالجة طلب البيانات في الخطوة 2 في أحد المواقع التي لم تُكتب فيها البيانات الجديدة.

لا تشجع أمازون استخدام القراءة المتسقة إلا إذا كانت ضرورية لضمان صحة البيانات. ويعود سبب هذه التوصية إلى أن معدل تنفيذ عمليات القراءة المتسقة أقل من معدل تنفيذ عمليات القراءة العادية.

العلاقة مع DynamoDB

دار حديثٌ حول استبدال SimpleDB بـ DynamoDB (لم يعد يتم تطويره [ 6 ] ، مع أن أمازون لا تخطط لإزالته). ويبدو أن DynamoDB هو خليفته. [ 7 ] [ 8 ]

انظر أيضاً

مراجع

  1. ما تحتاج إلى معرفته حول Amazon SimpleDB
  2. 1 2 "AWS | Amazon SimpleDB – خدمة قواعد البيانات البسيطة" . شركة أمازون لخدمات الويب .
  3. SimpleDB - الطبقة المجانية - تغيير في تسعير AWS (مؤرشف بتاريخ 25-12-2008 في Wayback Machine)
  4. "الحدود"، دليل مطوري SimpleDB ، أمازون(أحدث إصدار من واجهة برمجة التطبيقات).
  5. طلب زيادة تخصيص نطاقات Amazon SimpleDB . Aws.amazon.com. تم الاطلاع عليه بتاريخ 9 أغسطس 2013.
  6. "منتديات مطوري AWS: مستقبل SimpleDB؟ ..." forums.aws.amazon.com .
  7. http://aws.amazon.com/dynamodb/faqs/#How_does_Amazon_DynamoDB_differ_from_Amazon_SimpleDB_Which_should_I_use تم إنشاء Dynamo "لمعالجة قيود SimpleDB".
  8. "Amazon DynamoDB – خدمة قواعد بيانات NoSQL سريعة وقابلة للتوسع مصممة لتطبيقات الإنترنت واسعة النطاق - All Things Distributed" . www.allthingsdistributed.com . ١٨ يناير ٢٠١٢.