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