2010-03-24 4 views
5

हमारे पास 10 हजार पंक्ति तालिका है जिसमें केवल 2 कॉलम हैं, एक प्राथमिक कुंजी और दूसरा स्तंभ जो राज्य को बनाए रखता है। समस्या यह है कि हमें इस राज्य को अमेरिका के लगभग 3 भौतिक स्थानों (लगभग 2000 मील दूर) में, वास्तविक समय में या नेटवर्क पर व्यावहारिक रूप से संभव के रूप में तेज़ी से दोहराने की आवश्यकता है। 3 में से कोई भी स्थान इस तालिका में दी गई पंक्ति के लिए राज्य को अपडेट कर सकता है जिसे निकटतम वास्तविक समय में अन्य 2 स्थानों पर दोहराया जाना चाहिए।त्वरित वास्तविक समय प्रतिकृति के साथ एक इन-मेमोरी डेटाबेस समाधान

क्या कोई खुले स्रोत या वाणिज्यिक हल्के वजन में स्मृति डेटाबेस है जो हमें प्राप्त करने में हमारी सहायता करने में मदद कर सकता है। डिस्क दृढ़ता यहां महत्वपूर्ण नहीं है।

उत्तर

4

Redis देखें। यहां Replication Howto है।

इसके अलावा, यदि आप तय करते हैं कि डीबी को पूरी तरह से स्मृति में होने की आवश्यकता नहीं है, तो इसे केवल तेज़ होने की आवश्यकता है, आप CouchDB पर विचार करना चाहेंगे। यह निरंतर प्रतिकृति कर सकता है, जो अनिवार्य रूप से तत्काल है, और सभी नोड्स स्वामी हैं। इसमें एक अच्छी तरह से विचार-विमर्श संघर्ष और संकल्प तंत्र है। This blog post नवीनतम और महानतम कॉच डीबी प्रतिकृति क्षमताओं के लिए एक महान परिचय है।

+1

वह एक इन-मेमोरी फाइल सिस्टम पर कॉच डीबी (या मोंगोडीबी) का उपयोग कर सकते हैं जैसे कि linux पर tmpfs जब तक डेटाबेस स्मृति में फिट बैठता है ... – Filipe

1

हालांकि कोई प्रतिकृति समर्थन अंतर्निहित नहीं है, आप triggers का उपयोग इन-मेमोरी SQLite डेटाबेस में कर सकते हैं। ट्रिगर के भीतर, अन्य साइटों में परिवर्तनों को संवाद करने के लिए custom function का उपयोग करें।

1

आप Altibase देख सकते हैं। उन्होंने कहा कि उनके पास दुनिया का सबसे तेज़ मेमोरी डेटाबेस है। वे कहते हैं कि वे अधिकतर स्मृति डीबीएमएस की तुलना में 5 से 10 गुना तेज हैं और उनके पास साइट पर निःशुल्क परीक्षण भी है।

0

मैं एक जटिल एसक्यूएल निष्पादित करता हूं जिसमें मेरे वेबस्पेयर सर्वर में 10000 बार से अधिक पंक्तियां होती हैं। कुल शुद्ध निष्पादन समय इस तरह हैं:

  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 की तुलना करें। ओरेकल मेमोरी डीबी में नहीं है। लेकिन मैंने इसे तालिका में परिणाम दिया क्योंकि मेमोरी डीबी और सामान्य डीबी में गति अंतर दिखाने के लिए।

पीएस: SQLite और HSQLDB परिणाम में स्थिर नहीं हैं। इसलिए मैं 100 कोशिशों में 10 स्थिर परिणाम चुनता हूं। कभी-कभी एचएसक्यूएलडीबी SQLite से तेज है। मुझे लगता है कि उनका प्रदर्शन समान है।

संबंधित मुद्दे