2011-09-05 8 views
7

मैं एक उपकरण लिखने की कोशिश कर रहा हूं जिसके लिए क्लस्टर (स्थानीय लैन) में अन्य मशीनों की स्थिति की आवश्यकता हो। यह VRRP और corosync/openais के समान नेटवर्क विफलता/उच्च उपलब्धता प्रणाली के लिए है, लेकिन मैं अधिक जानकारी (जैसे कि वास्तविक समय की गति/प्रदर्शन विशेषताओं के पास) रखना चाहता हूं ताकि डिवाइस अधिक बुद्धिमान विकल्प बना सकें। इसका मतलब प्रोटोकॉल का उपयोग पूर्व निर्धारित वजन-आधारित तंत्र से अधिक जटिल है: सभी क्लस्टर मशीनों को एक दूसरे की स्थिति देखने की इजाजत देकर, वे सांप्रदायिक रूप से सहमत हो सकते हैं कि मास्टर डिवाइस होने के लिए सबसे उपयुक्त कौन सा है।कई मशीनों में राज्य वितरित

मेरी खोजों से, मुझे कोई भी (सी, सी ++ या जावाएमई) पुस्तकालय नहीं मिला है जो वितरित राज्य तंत्र प्रदान करता है। आदर्श रूप से, मैं ऐसा कुछ ढूंढ रहा हूं जो प्रत्येक व्यक्तिगत मशीन राज्य को समय-समय पर प्रसारित/मल्टीकास्ट करता है ताकि भाग लेने वाली मशीनें वैश्विक स्टेट टेबल बना सकें और सभी देख सकें कि मास्टर कौन होना चाहिए। इस मामले में राज्य मनमाने ढंग से कुंजी/मूल्य जोड़े है।

मैं किसी भी पहियों का पुन: आविष्कार नहीं करना चाहता हूं, इसलिए जानना उत्सुक हूं कि यहां कोई भी मुझे सही दिशा में इंगित कर सकता है?

+0

क्या आपने बूस्ट एमपीआई की जांच की है। मुझे लगता है कि यह वितरित कंप्यूटिंग के लिए है। लेकिन यकीन नहीं है कि यह आपकी मदद करेगा या नहीं। – Arunmu

+4

ब्रेवर के सीएपी (संगति, उपलब्धता और विभाजन) प्रमेय के क्लासिक केस की तरह दिखता है। उस पर पढ़ना आपको वास्तविक समस्याओं की बेहतर समझ प्रदान करना चाहिए। – MSalters

+0

@MSalters - सुनिश्चित नहीं है कि आपका क्या मतलब है? मैं समझता हूं कि यह सुनिश्चित करना असंभव है कि प्रत्येक नोड में अन्य सभी प्रतिभागियों की स्थिति का 100% ज्ञान है, क्योंकि आबादी होगी। विभाजित क्षितिज आदि होंगे। मैं जो जमा कर रहा हूं वह राज्य को जमा करने और साझा करने के लिए एक अच्छा, सामान्य उद्देश्य ढांचा है। यदि आप ओएसपीएफ और अन्य विभिन्न रूटिंग प्रोटोकॉल की पसंद देखते हैं तो आप देखेंगे कि इस तकनीक का उपयोग बढ़ते क्षेत्रों में अच्छी तरह से किया जाता है। – Mike

उत्तर

1

मुझे यकीन नहीं है कि आपके उद्देश्य के लिए कोई आवेदन है या नहीं। लेकिन मुझे पता है कि आप एमपीआई लाइब्रेरी के साथ एक साधारण प्रोग्राम लिख सकते हैं और अपनी इच्छित जानकारी प्रसारित कर सकते हैं।

सभी ग्राहक अपने राज्य को रूट नोड में भेज सकते हैं, और रूट नोड तब संदेश प्रसारित कर सकते हैं।

कार्यों है कि आप इस के लिए की जरूरत है:

नेट पर सी ++/एमपीआई पर ट्यूटोरियल के बहुत सारे
MPI_Bcast 
MPI_Send 
MPI_Recv 

है, बस इसे गूगल!

2

यदि मैं आप थे तो मैं memcached (memcached.org) या nosql प्रकारों में से एक की जांच करता हूं।

+0

yup - सरल लेकिन सच – sehe

+0

+1 यह एक साफ, सरल समाधान है, जिसे मैं आकर्षक लग रहा हूं। दूसरी तरफ, अन्य प्रणालियों के सभी बुनियादी ढांचे के गिज्मोस को हाथ से बनाया जाना चाहिए। – Iterator

2

ऐसा लगता है कि Apache ZooKeeper एक अच्छा मैच हो सकता है। यह वितरित, पदानुक्रमित कुंजी-मूल्य स्टोर है। के शब्दों में उनकी Overview page:

चिड़ियाघर संचालक समन्वय डाटा स्टोर करने के लिए डिज़ाइन किया गया था: स्थिति की जानकारी, विन्यास, स्थान की जानकारी, आदि

यहाँ एक सरल Leader Election recipie का एक उदाहरण है, हालांकि यह निर्धारित करने के लिए अनुकूलन की आवश्यकता होगी कुछ भारित मानदंड द्वारा एक नेता।

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