कैसे स्थानिक पहुंच समवर्ती पहुंच को संभालती है?


9

मैं समझता हूं कि Spatialite का उपयोग एक समय में एक ही उपयोगकर्ता / मशीन द्वारा किया जाता है। हालाँकि यदि डेटा सर्वर पर संग्रहीत किया जाता है, तो इस बात की कोई गारंटी नहीं है कि किसी अन्य मशीन पर कोई व्यक्ति उसी डेटाबेस को नहीं खोलेगा और उसका उपयोग नहीं करेगा। क्या किसी को भी इस बात का कोई अनुभव है कि क्यूजीआईएस और स्पेसियल मल्टीवर्स वातावरण में होने के बारे में क्या प्रतिक्रिया देता है। ज्यादातर मामलों में, परत केवल पढ़ने के लिए परत होगी। क्यूजीआईएस कई लोगों को एक ही शेपफाइल्स को पढ़ने की अनुमति देता है, जो एक समान स्थिति है। यदि कई लोगों के समवर्ती संपादन सत्र खुले हों तो क्या होगा?


1
हम कितने उपयोगकर्ताओं के बारे में बात कर रहे हैं?
नाथन डब्ल्यू

मैं उपयोगकर्ताओं की संख्या के आधार पर प्रश्न के दायरे को सीमित नहीं करने के लिए कहूंगा । यांत्रिकी को समझना उपयोगी होगा, जो संभवतः उपयोगकर्ताओं की संख्या के साथ नहीं बदलता है।
12

3
कौन सा ऑपरेटिंग सिस्टम? नेटवर्क किस तरह का? जबकि SQLite कई पाठकों को अनुमति देता है, लेकिन केवल एक लेखक, OS लॉकिंग के अपने स्तर को लागू कर सकता है।
बजे

मैं विंडोज 7 का उपयोग करता हूं, विन एक्सपी अभी भी कॉरपोरेट वातावरण में सामान्य है और एक्सेस लोकल एरिया नेटवर्क के माध्यम से होगा। कुछ लोग क्लॉउड स्टोरेज का भी उपयोग करना पसंद कर सकते हैं, लेकिन कोई भी सिस्टम जो सिंक्रोनाइज़ या प्रतिकृति करता है, उसका उपयोग नहीं किया जा सकेगा। जहां तक ​​उपयोगकर्ता जाते हैं, मैं किसी मामले में दस उपयोगकर्ताओं की कल्पना करता हूं। दुर्भाग्य से यह कुछ ऐसा है जो सहायकों की टीम के बिना परीक्षण करना कठिन है, इसलिए प्रश्न। @ बताएं कि SQLite डेटाबेस लॉकिंग को कैसे लागू करता है?
एंड्रयू

4
इस तरह: फाइल लॉकिंग और कंसीलर इन SQLite वर्जन 3 । सारांश में, आपके पास आमतौर पर कई पाठक हो सकते हैं, लेकिन जब कोई लेखन तुरंत लंबित होता है, तो केवल लेखक की फ़ाइल / पूरे डेटाबेस तक पहुंच होती है। Windows बहुत रूढ़िवादी IME हो जाता है, और जब किसी अन्य उपयोगकर्ता के पास पढ़ने के लिए खुला होता है, तो वह किसी भी फ़ाइल तक पहुंच को रोक सकता है। यदि QGIS प्रतीक्षा करता है और SQLITE_BUSY प्राप्त करने पर उचित रूप से पुन: प्रयास करता है, तो यह काम कर सकता है। मेरे पास इसका परीक्षण करने का कोई तरीका नहीं है।
scruss

जवाबों:


4

SQLite एक अंतिम संपादित जीत मॉडल में काम करता है, जो लिखने वाले ब्लॉक की तुलना में अधिक वजन वाले मुद्दों की ओर जाता है। QGIS / SQLite संबंध में कोई संपादन सत्र ट्रैकिंग नहीं है। इसलिए, भले ही आपको एक भी लेखक ब्लॉक मिला हो (SQLITE_BUSY) QGIS बस संपादित करने में विफल रहेगा और बस एक त्रुटि लौटाएगा तो फिर से बदलाव सबमिट करें।

नीचे इस प्रकार की घटना से निपटने के बारे में चर्चा की गई है, और क्यूजीस फिर से शुरू करने के लिए कैसे संभालता है।

https://github.com/qgis/QGIS/blob/a3447dd9a346f6d5e08451b7c5666a37046435bc/src/core/spatialite/headers/spatialite/sqlite3.h#L1881-L1943

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.