2012-01-25 14 views
6

हम वर्तमान में ऑटोस्कलिंग लोड संतुलित ऐप सर्वर की एक सरणी के लिए PHP सत्र फ़ाइलों के भंडारण के लिए NAS का उपयोग कर रहे हैं।PHP सत्रों के लिए डायनेमो डीबी

हम इसे अधिक मजबूत समाधान के साथ प्रतिस्थापित करने में रुचि रखते हैं और अमेज़ॅन से डायनेमो डीबी दिलचस्प दिखता है। मुझे लगता है DynamoDB वस्तु लॉकिंग का समर्थन नहीं करता

http://thwartedefforts.org/2006/11/11/race-conditions-with-ajax-and-php-sessions/

: मैं एक संभव यहां मुद्दा यह है, यहाँ प्रलेखित देखते हैं। आप किसी भी कामकाज के बारे में सोच सकते हैं?

यदि आपके पास PHP सत्रों के लिए उपयोग किए जाने वाले अन्य नोएसक्यूएल सिस्टम से कोई अनुभव है तो भी सीखने के लिए स्वतंत्र महसूस हो रहा है क्योंकि शिक्षा समान हो सकती है।

अग्रिम धन्यवाद

उत्तर

8

DynamoDB की सशर्त लेखन का उपयोग करके आप एक निराशावादी ताला योजना जिस तरह से PHP के डिफ़ॉल्ट सत्र हैंडलर काम करता है के लिए इसी तरह लागू कर सकता है। https://forums.aws.amazon.com/thread.jspa?messageID=328060:

किसी और ने भी एक DynamoDB सत्र हैंडलर के लिए एक अनुरोध बना दिया है।

अपडेटेडः PHP के लिए एडब्ल्यूएस एसडीके में अब डायनेमो डीबी के लिए एक सत्र हैंडलर शामिल है। देखें https://github.com/amazonwebservices/aws-sdk-for-php/blob/master/extensions/dynamodbsessionhandler.class.php और http://docs.amazonwebservices.com/AWSSDKforPHP/latest/#i=DynamoDBSessionHandler

अपडेट किया गया: एडब्ल्यूएस ब्लॉग पर DynamoDB सत्र हैंडलर के बारे में एक लेख है: http://aws.typepad.com/aws/2012/04/scalable-session-handling-in-php-using-amazon-dynamodb.html

+0

+1 इसे लागू करने और तुरंत हमें बताने के लिए +1, बहुत धन्यवाद! –

+0

आह अरे। मैंने अपना खुद का लेखन करने से पहले सप्ताह बिताया और इसे साझा करने जा रहा था। :(हालांकि अद्यतन के लिए धन्यवाद! –

2
दिलचस्प विचार (+1)

- और वास्तव में एक विस्तृत लेख, बस इसे अभी के लिए, हालांकि स्किम्ड;)

पीएचपी सत्र के भंडारण के लिए अन्य NoSQL विकल्प आप की जाँच करने के लिए चाहते हो सकता है के बारे में मैं हाल ही में पुस्तकालय को अद्यतन किया है दोनों पर atomic operations समर्थन करने के लिए

: MongoSession – A PHP MongoDB Session Handler, जो संदर्भ देता Race Conditions with Ajax and PHP Sessions रूप में अच्छी तरह और इस बीच में प्रलेखित मुद्दों का समाधान करने लगता है इन रेस स्थितियों को रोकने में मदद के लिए सत्र लिखते हैं और कचरा संग्रह।

एक समान दृष्टिकोण के साथ-साथ सशर्त अपडेट, परमाणु काउंटर और लगातार पढ़ता का एक उपयुक्त संयोजन के माध्यम से Amazon DynamoDB साथ संभव हो जाना चाहिए, उन अवधारणाओं पर जानकारी के लिए Working with Items in Amazon DynamoDB देख सकते हैं और/या बाहर की जाँच निम्नलिखित FAQ प्रविष्टियों:

  • Does Amazon DynamoDB support conditional operations? - हाँ, आप एक शर्त है कि एक PUT, अद्यतन के लिए संतुष्ट होना चाहिए निर्दिष्ट कर सकते हैं, या पर हटाने की कार्रवाई एक आइटम पूरा किया जाना है। [...] सशर्त संचालन उपयोगकर्ताओं को डायनेमो डीबी पर आशावादी समवर्ती नियंत्रण प्रणाली लागू करने की अनुमति देता है।
  • Does Amazon DynamoDB support increment or decrement operations? - हां, अमेज़ॅन डायनेमो डीबी स्केलर मूल्यों पर परमाणु वृद्धि और कमी संचालन की अनुमति देता है।
+0

तेजी से और विस्तृत करने के लिए धन्यवाद का जवाब! लगातार पढ़ने में मदद करने के लिए एक लंबा रास्ता तय होगा। परमाणु वृद्धि और कमी संचालन में मदद मिलेगी, लेकिन यह हमेशा वृद्धि और कमी परिवर्तन नहीं होता है जिसे परमाणु फैशन में लागू करने की आवश्यकता होती है। चूंकि ताले की कमी अभी भी एक मुद्दा हो सकती है। सही दिशा में इशारा करने के लिए धन्यवाद! मैं आगे की जांच करूंगा! – webgr

1

आपके सर्वर एडब्ल्यूएस पर हैं? आप ElastCache सुविधा का प्रयास क्यों नहीं करते? http://aws.amazon.com/en/elasticache/

मैं CakePHP का उपयोग करें, डायन सत्र स्टोर करने के लिए DB और Memcache समर्थन करता है। कुछ समय बाद दोनों का अध्ययन करने के बाद, मैंने मेमकेचे का चयन किया है। असल में, मैंने PHP को मेमकेचे पर स्टोर स्टोर करने के लिए सेट किया है और PHP सत्र कॉन्फ़िगरेशन का उपयोग करने के लिए केकेपीएचपी सेट किया है। इस तरह मैं सत्र और कैशिंग के लिए अपने memcache उदाहरण अलग कर सकते हैं।

सम्मान।

+1

यह एक विकल्प है जिसे हम भी विचार कर रहे हैं और सेटअप करने में बेहद आसान है। केवल समस्या यह है कि जब कोई नोड मर जाता है या जब कैश भरा हो जाता है, सत्र खो जाएंगे। चूंकि नोड्स अक्सर मर नहीं जाते हैं और पूरी तरह से कैश को सावधानीपूर्वक योजना बनाने के साथ हल किया जा सकता है, यह वास्तव में एक व्यावहारिक समाधान हो सकता है। – webgr

+0

@webgr खोने वाले क्लाइंट सत्र वास्तव में परेशान है, लेकिन इसे आमतौर पर स्वीकार किया जाता है। मेरे अनुप्रयोगों में से एक पर यह बहुत खतरनाक है, लेकिन मैं जोखिम ले रहा हूं। मुझे भी मेरे डीबी पर समस्या हो सकती है। यह एक ही तरह का जोखिम है। अमेज़ॅन का दावा है कि ईसी वास्तव में विश्वसनीय है और इसमें विफलता है, लेकिन मुझे लगता है कि आप विफलता पर डेटा खो सकते हैं। "विश्वसनीय - अमेज़ॅन ElastiCache में कई विशेषताएं हैं जो स्वचालित विफलता का पता लगाने और पुनर्प्राप्ति सहित महत्वपूर्ण उत्पादन तैनाती के लिए विश्वसनीयता को बढ़ाती हैं। अमेज़ॅन ElastiCache अन्य अमेज़ॅन वेब सेवाओं द्वारा उपयोग किए जाने वाले एक ही अत्यधिक विश्वसनीय आधारभूत संरचना पर चलता है।" – tvdias

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