2012-02-24 5 views
8

मुझे पता है कि नेटवर्क फ़ाइल सिस्टम पर खराब कार्यान्वयन के कारण दो कारणों से प्रदर्शन नेटवर्क और नेटवर्क भ्रष्टाचार का उपयोग करने की अनुशंसा नहीं की जाती है।विंडोज साझा ड्राइव पर स्क्लाइट मजबूत बनाने के लिए कैसे करें

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

हमें प्रदर्शन के बारे में बहुत अधिक परवाह नहीं है, इसलिए हम भ्रष्टाचार से बचने के लिए आवश्यक मूल्य का भुगतान करने के लिए तैयार हैं। का हवाला देते हुए http://www.sqlite.org/atomiccommit.html, खंड 9.1:

लेकिन अगर आप SQLite डेटाबेस फ़ाइलों को स्टोर करने, एक ही डेटाबेस के लिए एक साथ लेखन को रोकने के लिए एक उच्च माध्यमिक ताला तंत्र के उपयोग पर विचार के लिए एक नेटवर्क फाइल सिस्टम का उपयोग करना चाहिए भी देशी फाइल सिस्टम ताला तंत्र अगर खराबी।

मैं विंडोज़ साझा ड्राइव पर स्क्लाइट के साथ समस्याओं से बचने के लिए युक्तियों पर इस तरह के एक तंत्र को लागू करने के लिए संकेत और सलाह देख रहा हूं।

उदाहरण के लिए, मैं लॉक करने के लिए निम्नलिखित मस्तिष्क-मृत दृष्टिकोण पर विचार कर रहा हूं: किसी भी (गैर-पढ़ने योग्य) SQLite क्वेरी से पहले, उसी साझा फ़ोल्डर पर एक खाली फ़ाइल बनाने का प्रयास करें और इसे अंत तक खोलें पूछताछ; आम तौर पर, किसी भी अन्य विंडोज़ प्रक्रिया को एक ही नाम के साथ एक फ़ाइल बनाने की कोशिश कर रहा है, जबकि यह अभी भी खुला है या अवरुद्ध होगा। क्या इससे काम हो जायेगा? कुछ भी बेहतर है?

+1

SQLite डेटाबेस सर्वर के लिए प्रतिस्थापन नहीं है। –

+2

मुझे पता है, और जैसा कि मैंने कहा, हम पहले से ही हमारे आवेदन के लिए कई प्रकार के डेटाबेस सर्वर का समर्थन करते हैं। हम एक व्यापार आवेदन बेचते हैं; हमारे उपयोगकर्ताओं ने हमेशा ड्राइव्स को आसानी से उपलब्ध कराया है, लेकिन 2-10 उपयोगकर्ताओं के साथ एक छोटे से सेटअप के लिए ओरेकल उदाहरण बनाने और प्रबंधित करने के लिए अपने आईटी और डीबीए टीमों पर भरोसा करना है, उनके लिए बेहद महंगा है। हम केवल तैनाती को सरल बनाने के लिए कुछ और हल्के वजन की तलाश कर रहे हैं (परीक्षण या यहां तक ​​कि उत्पादन के लिए)। –

+0

क्या आप सिर्फ एक गैर-साझा पढ़ने/लिखने के लिए फ़ाइल नहीं खोल सकते हैं? संभवतः प्रत्येक क्लाइंट ऐप में इसकी डेटा की प्रतिलिपि होती है, इसलिए इसका मतलब यह है कि वे एक अद्यतन प्रति प्राप्त नहीं कर पाएंगे जबकि कोई अन्य ग्राहक डेटाबेस अपडेट कर रहा है। आप बहुत इंतजार कर सकते हैं, लेकिन अगर डेटाबेस बहुत बड़ा नहीं है तो इसे काम करना चाहिए। – roryok

उत्तर

2

एक और सुझाव एसपीआई फ़ाइल पर बैठे एक एपीआई लिखना होगा और आपके लिए लॉकिंग करेगा।

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