سؤال

أنا فقط اقرأ الكثير من المواد على Amazon's S3 و Couchdb. ربما لا يكفي بعد، حتى هنا هو سؤالي:

كلا النظامين يبدو جذابا جدا بالنسبة لي. يتم توزيع COUOUGDB باستخدام ترخيص Apache V2 ومع Amazon's S3، فأنت تدفع لكل ميغابايت مخزنة وحركة المرور التي تولدها. لذلك هناك اختلاف قليلا.

ولكن من وجهة نظر فنية، من ما فهمته، تساعدك كلا النظم في تخزين بيانات غير منظمة من الأحجام التعسفية (اعتمادا على نظام التشغيل الأساسي كما أفهم من CouchDB).

لا أعرف مدى سهولة التوصل إلى واجهة موحدة لكلا منهم، بحيث يمكنك فقط تغيير "مزود DataStore" الخاص بك كما الحاجة؟ عدم الاضطرار إلى تغيير أي من التعليمات البرمجية الخاصة بك.

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

كما يمكن أن يكون هذا مثيرا للاهتمام لأغراض اختبار التكامل: يمكنك على سبيل المثال اختبار مثيل CouchDB محلي وتشغيل التعليمات البرمجية الخاصة بك مقابل استخدام الإنتاج.

لصياغة سؤالي من زاوية مختلفة: هل حل Amazon's S3 و Couchdb بشكل أساسي نفس الشيء بالضبط أو هو هذا المجنون وفقدت النقطة بأكملها؟

تحديث السؤال

بعد إجابة جيم الرائعة، اسمحوا لي بعد ذلك بإعادة صياغة السؤال إلى:

"واجهة مشتركة لل couchdb و amazon simpleedb"

وبعد نفس خطوط التفكير، هل ترى مشكلة مع واجهة مشتركة بين couchdb و simpleedb بعد ذلك؟

هل كانت مفيدة؟

المحلول

من الناحية الفنية طبقة مشتركة ممكنة. ومع ذلك أنا سؤال أن هذا من شأنه أن يكون منطقي. قامت CouchDB بتعريف / تقليل الوظائف المتكاملة للمستندات الخاصة بك والتي تتعرض ك "طرق عرض". لا أعتقد أن simpleedb لديه أي شيء من هذا القبيل. من ناحية أخرى، قام Simpleedb بتعبيرات الاستعلام التي لم يفعلها CouchDB. من Coure، يمكنك تصميم هذه التعبيرات كمنظر في Couchdb إذا كنت تعرف استفسارك في وقت التطوير.

بجانب هذه الوظيفة المشتركة ليست أكثر من إنشاء / تحديث / حذف زوج وثيقة مفتاح.

نصائح أخرى

أنت تفتقد النقطة، قليلا فقط. couchdb هي قاعدة بيانات. S3 هو نظام ملفات. إنها كلاهما غير منظم نسبيا، ولكن مع S3 تقوم بتخزين الملفات تحت المفاتيح أثناء قيام CouchDB بتخزين البيانات (منظم تعسفي) تحت المفاتيح.

خدمات الويب الأمازون التناظرية إلى شيء مثل couchdb سيكون الأمازون simpleedb..

شيء مثل ما تبحث عنه موجود بالفعل ل Ruby، ويسمى مونيتا. وبعد حتى أنه يمكن تخزين الاشياء على S3، والتي قد تكون بالضبط ما تريد.

أنت خاطئ جيم. S3 ليس نظام ملفات. إنه Webservice لمتجر قيمة رئيسية.

يوفر لك Amazon مفتاحا. نعم، يمكن أن تكون قيمة هذا المفتاح بيانات تمثل ملف. ولكن، وكيف يتم إدارة ذلك في نظام الأمازون هو شيء مختلف تماما. يمكن تخزينها في عقدة واحدة، وعقد متعددة، العقد الاستراتيجية الجغرافية مع cloudfront، وهلم جرا. لا يوجد شيء في هذا المفتاح في حد ذاته يشير إلى كيفية إدارة النظام الملف. قيمة المفتاح ليست أبدا ملف مباشرة. إنها البيانات التي تمثل الملف. طريقة حل هذه القيمة في النهاية إلى ملف يتلقى العميل منفصلا تماما.

يمكن أن تكون قيمة هذا المفتاح بالفعل بيانات لا تمثل ملف. يمكن أن يكون قاموس JSON. وبهذا المعنى، يمكن استخدام S3 بنفس طريقة couchdb.

لذلك لا أعتقد أن السؤال يفتقد النقطة. في الواقع، إنها سؤال مشروع تماما حيث لا يتم توزيع البيانات في CouchDB بين العقد. وهذا قد يعيق الأداء.

دعونا لا نتحدث حتى عن Amazon Simpleedb. هذا شيء منفصل. من فضلك لا تخلط المصطلحات ثم تقديم المطالبات بناء على ذلك.

إذا لم تكن مقتنعا بهذه المطالبة، وإذا طلب ذلك، فأنا سعيد بتقديم رمز كود يوضح قاموس JSON في S3.

أحترم إجاباتك على أسئلة أخرى جيم. ولكن، هنا، أنت مخطئ بوضوح ولا يمكن أن ترى كيف يتم تبرير هذه النقاط.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top