حل قاعدة بيانات في الذاكرة مع أسرع النسخ المتماثل في الوقت الحقيقي [مغلق

StackOverflow https://stackoverflow.com/questions/2511864

سؤال

لدينا جدول صفات 10 آلاف صف يحتوي على عمودين فقط ، مفتاح أساسي وعمود ثانٍ يحتفظ بالوضع. المشكلة هي أننا نحتاج إلى تكرار هذه الحالة عبر 3 مواقع مادية في الولايات المتحدة (على بعد حوالي 2000 ميل) ، في الوقت الفعلي بالقرب من الوقت الحقيقي أو بأسرع ما يمكن عملياً على الشبكة. يمكن لأي من المواقع الثلاثة تحديث الحالة لصفًا معينًا في هذا الجدول الذي يجب تكراره في الوقت الفعلي بالقرب من الموقعين الآخرين.

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

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

المحلول

الدفع ريديس. ها هي النسخ المتماثل Howto.

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

نصائح أخرى

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

قد ترغب في التحقق Altibase. قالوا إن لديهم أسرع قاعدة بيانات في العالم. يقولون إنهم أسرع من 5 إلى 10 مرات من معظم DBMs في الذاكرة ولديهم أيضًا تجربة مجانية على الموقع.

أقوم بتنفيذ SQL معقد يحتوي على أكثر من 6000 صف 10000 مرة في خادم WebSphere الخاص بي. إجمالي أوقات التنفيذ الصافية مثل ذلك:

          Derby (In Memory)   Oracle(standard DB) SQLite (In Memory)  HSQLDb (In Memory)
          nano sec.  second    nano sec.  second  nano sec.  second   nano sec. second
1. try    58000000    0,058   6149976000   6,1    1141988000   1,14   999403000    1,00
2. try    78560000    0,078   5268477000   5,2    1182621000   1,18   1338705000   1,34
3. try    58849000    0,058   5200898000   5,2    1133003000   1,13   2239527000   2,24
4. try    60901000    0,06    5435216000   5,4    1205442000   1,21   1370711000   1,37
5. try    58798000    0,058   6501929000   6,5    1186734000   1,19   1001800000   1,00
6. try    62928000    0,062   5913053000   5,9    1224470000   1,22   1066736000   1,07
7. try    71171000    0,071   5111207000   5,1    1200769000   1,20   1304524000   1,30
8. try    66913000    0,066   5517989000   5,5    1173495000   1,17   1299230000   1,30
9. try    58777000    0,058   7209555000   7,2    1179013000   1,18   1031795000   1,03
10. try   75299000    0,075   5356514000   5,3    1182715000   1,18   1368461000   1,37
average   65019600    0,064   5766481400   5,7    1181025000   1,18   1302089200   1,30

من الواضح أنني أقارن ديربي و SQLite و HSQLDB. Oracle ليست في الذاكرة DB. لكنني وضعت نتيجة للجدول لأنه لإظهار فرق السرعة بين DB في الذاكرة و DB العادي.

ملاحظة: في SQLite و HSQLDB نتيجة غير مستقرة. لذلك اخترت 10 نتائج مستقرة في 100 محاولة. في بعض الأحيان يكون HSQLDB أسرع من sqlite. أعتقد أن أدائهم هو نفسه.

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