سؤال

بقدر ما أفهم، يتم تحديث فهارس CouchDB عند الاستعلام عن طريقة عرض.بافتراض أن عدد مرات القراءة أكثر من عدد عمليات الكتابة، أليس هذا سيئًا بالنسبة للقياس؟كيف يمكنني تكوين CouchDB لتحديث الفهارس عند الكتابة، أو الأفضل من ذلك، وفقًا لجدول زمني؟

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

المحلول

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

عندما تقوم بتغيير عدد كبير من المستندات مرة واحدة، فقد يؤدي ذلك إلى احتمال أن تستغرق طلبات القراءة الأولى وقتًا ملحوظًا.للتخفيف من هذا تم اقتراح بعض الاحتمالات المختلفة.يعتمد معظمهم على التسجيل في إشعارات تحديث CouchDB وتشغيل عمليات القراءة تلقائيًا.

يتوفر مثال لبرنامج نصي للقيام بذلك بالضبط على موقع CouchDB wiki على [1].

[1] http://wiki.apache.org/couchdb/RegeneatingViewsOnUpdate

نصائح أخرى

أ) "القياس" هو مصطلح مثقل.ما "نوع" القياس الذي تقصده؟(في كلتا الحالتين، لا أستطيع أن أرى مدى تأثير ذلك عليك سلباً).

ب) التحديث على ما يكتب:فقط الاستعلام عن وجهة نظرك بعد الكتابة.لاحظ أن إضافة مجموعة من البيانات إلى الفهرس يعد أكثر ملاءمة للموارد (وهذا ليس خاصًا بـ CouchDB).لذلك قد ترغب في تشغيل العرض الخاص بك في كل مرة يكتب فيها N.

ج) المقرر:قم بإعداد cronjob الذي يستعلم عن العرض الخاص بك كل M دقيقة.

د) انتظر حتى يتطور CouchDB لتزويدك بالبنية الأساسية التي تسمح لك بإعداد ذلك باستخدام معلمة التكوين.

ه) (الخيار الأفضل).اتسخ يديك وساعدنا في تلميع CouchDB!هي موضع تقدير كبير أي مساهمات.

د) رتفم (رمش :)

لا يمكنك وأيضا، لماذا تريد ذلك؟

فكر في الأمر على هذا النحو:

  • عندما تقوم باستيراد البيانات إلى MySQL، يمكنك تشغيل indizes لأن تحديث الفهرس لكل صف تقوم بإدراجه أكثر تكلفة من تحديث الفهرس لـ 100 عملية كتابة (أو أي عدد من الصفوف التي تستوردها) في تشغيل واحد.
  • ولهذا السبب يقوم CouchDB بتحديث الفهرس عند القراءة لأنه أقل تكلفة لدمج تلك التغييرات المائة في نفس الوقت، ثم كل تغيير عند كتابته.

هذه إحدى مميزات CouchDB!:) أنا لا أقول أن هذه ميزة CouchDB فقط، ولكن من الذكاء القيام بذلك عند القراءة.

شيء واحد يمكنك فعله هو القراءة باستخدام التحديث=خطأ، وهي قراءة قذرة وقد لا تُرجع ما تتوقعه.إذا كنت تفعل ذلك دائمًا، فيمكنك جدولة قراءة "منتظمة" من خلال cronjob وتحديث الفهرس الخاص بك بذلك.أنا فقط لا أعتقد أن هذا منطقي.

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