اذهب إلى المحتوى

السؤال

نشر

يتم استخدام كل من sharding و replication مع قواعد بيانات mongodb بشكل مشابه وخاصةً عند التعامل مع المشاريع الكبيرة والموزعة. ولكن ماهو الاختلاف بين كل منهما؟ 

فعد استخدامي لأدوات التجزئة وجدتها أسهل وأقل تعقيداً من replication، فهل يمكنني استخدامها دوماً بدلاً من replication؟

Recommended Posts

  • 2
نشر

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

ولكن يجب الانتباه إلى أن البيانات في هذه الحالة لن تكون بالضرورة هي النسخة الأحدث، ويمكن حصول تأخير في تحديث هذه النسخ تبعاً للإعدادات التي تم تهيئة هذه البيئة بها. (وهو مشابه للمفهوم master/slave والمتعارف عليه في قواعد بيانات mySql وغيرها).

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

في mogodb تعد آلية التجزئة أكثر تعقيداً لأنه يجب على خادم قواعد البيانات أن يقوم بإدارة هذه العمليات (عمليات التجزئة) وتوزيع البيانات والطلبات بين العقد. لذلك قد يأخذ وقت أكبر لتهيئة هذه البنية وإنشاء المسارات اللازمة لهذه العمليات.

ولكن يتم استخدام كل منهما معاً لإنشاء مايدعى بـ sharded cluster بحيث يكون كل جزء مدعوم من قبل replica set مستقلة. ولكن تختلف حالات الاستخدام حسب الحالة لديك وطبيعة النظام والبيانات التي سيتم إجراء عمليات الكتابة والقراءة عليها.

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

 

  • 0
نشر

في سياق MongoDB:

  • يقوم النسخ المتماثل  replication  بإنشاء نسخ إضافية من البيانات ويسمح بتجاوز الفشل التلقائي لعقدة أخرى. قد يساعد النسخ المتماثل في القياس الأفقي للقراءات إذا كنت موافقًا على قراءة البيانات التي من المحتمل ألا تكون الأحدث
  • تسمح  sharding  التجزئة بالتحجيم الأفقي للبيانات  المكتوبة عن طريق تقسيم البيانات عبر خوادم متعددة باستخدام مفتاح جزء shard key . من المهم اختيار مفتاح جيد. على سبيل المثال ، قد يؤدي الاختيار السيئ للمفتاح إلى ظهور "نقاط فعالة" للبيانات تتم كتابتها على جزء واحد فقط

تضيف البيئة المُقسمة مزيدًا من التعقيد لأن على MongoDB و عادةً ما يتم الجمع بين النسخ المتماثل  replication  والتجزئة sharding  لإنشاء مجموعة مجزأة حيث يتم دعم كل جزء بواسطة مجموعة نسخ متماثلة.

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

بإختصار Sharding  يساعدك على حفظ الملفات الخاصة بك في مجلدات مختلفة و النسخ المتماثل Replication يعمل على مزامنة مجموعتك مع أقراص أخرى

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...