कैसे कुशलता से OpenStreetMap डेटा बाहर पैमाने पर करने के लिए


9

एक साल से अधिक समय से, मैं OSM डेटा से भरा एक इन-हाउस पोस्टगिस सर्वर चला रहा हूं, जो मैपनिक-आधारित टाइल पीढ़ी और नोमान्टिम-आधारित जियोकोडिंग दोनों के लिए उपयोग किया जाता है, दिन की प्रतिकृति के साथ अद्यतन किया जाता है। यह बहुत अच्छी तरह से काम करता है।

हालाँकि, जैसे-जैसे उपयोग तेजी से बढ़ रहा है, मैं अतिरिक्त PostgreSQL सर्वरों को जोड़कर बेहतर विश्वसनीयता और प्रदर्शन प्राप्त करना चाहूंगा। और मैं खो गया हूं।

चूंकि PostgreSQL प्रतिकृति को अपने आप से संभालता नहीं दिखता है, इसलिए मैं सर्वरों को सिंक में रखने के लिए PgPool-II जैसे मिडलवेयर का उपयोग करने के बारे में सोचूंगा। लेकिन मुझे डर है कि इस उपयोग के लिए यह कुछ भी नहीं बल्कि आवश्यक होगा: बहुत अधिक पढ़ा-लिखा अनुपात, जहां हर दिन एक ही सटीक समय पर सभी लेखन किया जाता है।

मेरे प्रश्न सरल हैं: आप इन सर्वरों को सिंक में रखने के लिए क्या करेंगे? और, OpenStreetMap फाउंडेशन, MapQuest, Mapbox या CloudMade में इसके लिए क्या किया जाता है?

धन्यवाद।

जवाबों:


13

सबसे पहले, Postgres 9 और बाद में अंतर्निहित प्रतिकृति समर्थन है और यही वह है जो हम (OpenStreetMap संचालन टीम) अब उपयोग करने की अपेक्षा करते हैं कि हम (लगभग 90 मिनट पहले) मुख्य डेटाबेस के लिए Postgres 9.1 पर चल रहे हैं।

आपके सवाल का जवाब देने के लिए कि OSM क्या करता है, आज तक हम किसी भी प्रकार की प्रतिकृति नहीं करते हैं - वेब साइट के पीछे मास्टर डेटाबेस के रूप में और कच्चे डेटा को धारण करने वाला एक बड़ा पोस्टग्रैज डेटाबेस है। फिर गौण और जियोकोडिंग के लिए माध्यमिक Postgres + Postgis डेटाबेस हैं, जो दोनों ग्रह डंप का उपयोग कर आबादी वाले हैं और अद्यतन करने के लिए अलग हैं।


अंतर्निहित प्रतिकृति के बारे में पता नहीं था। यह शायद बहुत काम करेगा। धन्यवाद!
पियरे

1
इसके अलावा REPMGR ( repmgr.org ) चेकआउट करें जो पोस्टग्रेज की स्ट्रीमिंग प्रतिकृति क्षमताओं का उपयोग करता है और एक मास्टर को अपने आप को गुलाम बनाने की अनुमति देने के लिए कार्यक्षमता का विस्तार करता है।
श्याम सुंदर सीएस

4

मैं यहां दो विकल्प देख सकता हूं:

  1. डेटाबेस पूलिंग - प्रतिकृति http://wiki.postgresql.org/wiki/Replication,_Clustering,_and_Connection_Pooling , मैं पीजी क्लस्टर है क्योंकि यह तुल्यकालिक है और लोड संतुलन की अनुमति देता है। आप मास्टर - दास वास्तुकला के साथ भी जा सकते हैं लेकिन कनेक्शन पूलिंग और एसिंक्रोनस के बिना, यह सब वास्तुकला और प्रतिकृति गति पर निर्भर करता है जिसे आप प्राप्त करना चाहते हैं। यहाँ pgpoll-2 के बारे में अधिक जानकारी -स्मॉल एफएक्यू ( http: //www.dalibo) .org / _media / pgpool.pdf )
  2. WebOptimisation - Mapquest और OSF के लिए जहाँ तक मुझे पता है कि वे सर्वर स्तर + कनेक्शन पूलिंग में वेब कैशिंग का उपयोग करते हैं। इसका मतलब है कि यह Postgres / Postgis से इतने सारे अनुरोध नहीं करेगा क्योंकि मैं कुछ डेटा कैश करता हूं। 3.Postgis अनुकूलन - DB स्तर पर उपदेश क्वेरी, अनुक्रमण और डेटाबेस सामान्यीकरण। मैं "पोस्टगिस इन एक्शन" ( http://manning.com/obe/ ) के लिए जाना जाएगा ताकि पोस्टगिस डेटा प्रकारों के बारे में अधिक जान सकें और उनके सर्वर को उनके अनुकूल बना सकें।

1
धन्यवाद। पहला विकल्प निश्चित रूप से पसंद किया जाता है। दूसरा आंशिक रूप से किया जाता है, डिलीवरी के लिए सीडीएन और फ्रंट सर्वर पर लोकल नग्नेक्स / मेम्केड कैश का उपयोग किया जाता है।
पियरे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.