एसीआईडी में जिस अर्थ में इसका उपयोग किया जाता है, उसमें संगति का अर्थ है कि किसी भी बदलाव से पहले और बाद में सभी बाधाएं संतुष्ट होती हैं। जब कोई सिस्टम आश्वासन देता है कि आप असंगत डेटा नहीं पढ़ सकते हैं, तो वे उदाहरण के लिए कह रहे हैं कि आप कभी भी डेटा नहीं पढ़ेंगे जहां एक चाइल्ड पंक्ति एक गैर-मौजूद पैरेंट पंक्ति का संदर्भ देती है, या जहां आधा लेन-देन लागू किया गया है, लेकिन अन्य आधा अभी तक लागू नहीं किया गया है (पाठ्यपुस्तक का उदाहरण एक बैंक खाते को डेबिट कर रहा है लेकिन अभी तक प्राप्तकर्ता बैंक खाते में जमा नहीं किया गया है)।
MySQL में प्रतिकृति डिफ़ॉल्ट रूप से अतुल्यकालिक है, या सबसे अच्छा "अर्ध-तुल्यकालिक" है। निश्चित रूप से यह किसी भी मामले में पिछड़ जाता है। वास्तव में, प्रतिकृति प्रतिकृति हमेशा कम से कम एक सेकंड के एक अंश से पीछे रहती है, क्योंकि मास्टर अपने बाइनरी लॉग में तब तक परिवर्तन नहीं लिखता है जब तक कि लेन-देन नहीं हो जाता है, तब प्रतिकृति को बाइनरी लॉग डाउनलोड करना होगा और घटना को रिले करना होगा।पी>
लेकिन परिवर्तन अभी भी परमाणु हैं। आप आंशिक रूप से बदले गए डेटा को नहीं पढ़ सकते हैं। आप या तो प्रतिबद्ध परिवर्तन पढ़ते हैं, जिस स्थिति में सभी बाधाएं संतुष्ट होती हैं, या फिर परिवर्तन अभी तक नहीं किए गए हैं, इस स्थिति में आप लेन-देन शुरू होने से पहले डेटा की स्थिति देखते हैं।
तो आप अस्थायी रूप से पुराना . पढ़ सकते हैं एक प्रतिकृति प्रणाली में डेटा जो पिछड़ जाता है, लेकिन आप असंगत नहीं पढ़ेंगे डेटा।
जबकि "आखिरकार सुसंगत" प्रणाली में, आप आंशिक रूप से अपडेट किए गए डेटा को पढ़ सकते हैं, जहां एक खाते से डेबिट किया गया है लेकिन दूसरा खाता अभी तक क्रेडिट नहीं किया गया है। तो आप कर सकते हैं असंगत डेटा देखें।
आप सही कह रहे हैं कि यदि आपके एप्लिकेशन को बिल्कुल वर्तमान डेटा की आवश्यकता है, तो आपको प्रतिकृतियों से पढ़ने में सावधानी बरतने की आवश्यकता हो सकती है। प्रत्येक एप्लिकेशन में प्रतिकृति अंतराल के लिए एक अलग सहनशीलता होती है, और वास्तव में एक आवेदन के भीतर, विभिन्न प्रश्नों में अंतराल के लिए अलग सहनशीलता होती है। मैंने इस बारे में एक प्रेजेंटेशन किया था:">MySQL और PHP के लिए विभाजन पढ़ें/लिखें (पेरकोना वेबिनार 2013)