- MongoDB 8 على هيئة مجموعة نسخ متماثلة (replica set) (لأنه يستخدم المعاملات). تصمد ثلاثة أعضاء موزّعة على ثلاث عقد أمام فقدان عقدة واحدة؛ ويعمل أيضًا عضو واحد.
- Redis 7، خادم واحد مع استمرارية AOF. يحتفظ Redis بالتعديلات التي لم تُكتب بعد إلى MongoDB، والجلسات، والرسائل بين خدمات Overleaf. يتصل Overleaf بخادم Redis واحد: لا يُدعم Sentinel ولا Redis Cluster.
يمكنك استخدام خدمات مُدارة بدلًا من ذلك، مثل MongoDB Atlas أو Redis الذي توفّره منصتك السحابية. تخطَّ هذه الصفحة واضبط
OVERLEAF_MONGO_URL وOVERLEAF_REDIS_HOST عليها في الخطوة 4.1
MongoDB
10-mongo.yaml
PRIMARY والآخرون SECONDARY. يعيد الـ Job المحاولة إلى أن تستجيب كل الأعضاء، لذا من الطبيعي أن تفشل بعض الـ pods الخاصة بالـ Job.- تحتاج الـ Service من النوع headless إلى
publishNotReadyAddresses: true: إذ يجب أن تعثر الأعضاء على بعضها بالاسم قبل أن توجد مجموعة النسخ المتماثلة. - تُضاف الأعضاء بأسمائها الثابتة (
mongo-0.mongo.overleaf.svc.cluster.local)، وليس أبدًا بعناوين IP الخاصة بالـ pods، والتي تتغيّر عند كل إعادة تشغيل. - لعضو واحد، اضبط
replicas: 1وأبقِmongo-0فقط في الـ Job.
2
Redis
20-redis.yaml
أسئلة وأجوبة
يتعطّل MongoDB 8 عند بدء التشغيل على نواة حديثة. لماذا؟
يتعطّل MongoDB 8 عند بدء التشغيل على نواة حديثة. لماذا؟
الإجابة: يفشل MongoDB 8 على نواة Linux بالإصدار 6.19 وما بعده (SERVER-121912). أزل علامة التعليق عن متغيّر البيئة
GLIBC_TUNABLES في 10-mongo.yaml.ما مقدار الذاكرة الذي يحتاج إليه MongoDB؟
ما مقدار الذاكرة الذي يحتاج إليه MongoDB؟
الإجابة: افتراضيًا يستخدم MongoDB نصف ذاكرة العقدة ناقص 1 GB لذاكرته المؤقتة، وهو يرى ذاكرة العقدة، وليس حدّ الذاكرة الخاص بالـ pod. اضبط
--wiredTigerCacheSizeGB بما يناسب العقد لديك؛ فقد أبقت القيمة 0.25 كل عضو عند نحو 200 إلى 260 MiB على عقد الاختبار لدينا ذات الـ 4 GB.
