11 पॉइंट द्वारा GN⁺ 2024-11-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • SQLite के बारे में लोगों की एक आम गलतफ़हमी यह है कि "SQLite एक ऐसा database है जो केवल एक single connection की अनुमति देता है", और इसी वजह से लोग इसका उपयोग नहीं करते
  • यह बात भ्रमित करने वाली भी है (यहाँ "connection" का मतलब क्या है?), और कई मायनों में गलत दावा है
  • Read operations
    • SQLite कई concurrent read operations को पूरी तरह support करता है
    • कई "connections" से एक साथ data पढ़ा जा सकता है, और इस प्रक्रिया में कोई conflict या समस्या नहीं होती
  • Write operations
    • SQLite write operations के समय DB-level write lock का उपयोग करता है
    • यह एक साथ कई write operations की अनुमति नहीं देता, इसलिए एक समय में केवल एक "connection" ही write operation कर सकता है
    • आम तौर पर यह समस्या नहीं बनती, क्योंकि IMMEDIATE TRANSACTION शुरू किया जा सकता है
    • इस स्थिति में SQLite write lock हासिल करने के लिए queue में retry कर सकता है
      • (इस तरीके से write lock रिलीज़ होते ही write operation अपने आप किया जा सकता है)

1 टिप्पणियां

 
savvykang 2024-11-15

https://www.sqlite.org/lockingv3.html

5.0 डेटाबेस फ़ाइल में लिखना
डेटाबेस में लिखने के लिए, पहले ऊपर बताए गए अनुसार process को SHARED lock प्राप्त करना होगा। SHARED lock प्राप्त करने के बाद, उसे RESERVED lock प्राप्त करना होगा। RESERVED lock यह संकेत देता है कि process भविष्य में किसी समय डेटाबेस में लिखेगा। एक समय में केवल एक process ही RESERVED lock रख सकता है। हालांकि, RESERVED lock बने रहने के दौरान दूसरे process डेटाबेस को पढ़ना जारी रख सकते हैं.