क्या यह संभव है कि सिर्फ एक बिट स्विच हो ताकि मेरी फ़ाइल मुझे "S" के बजाय "Q" अक्षर दिखाई दे।


22

हमारे आवेदन में हम डेटा स्टोर करने के लिए हाइबरनेट और पोस्टग्रेक्यूएल का उपयोग करते हैं। हमारे डेटाबेस टेबल में से एक में हमारे पास एक विभेदक कॉलम है जो उदाहरण के लिए "TIPPSPIEL" कहता है। यह एक निश्चित स्ट्रिंग है और इसे किसी भी उपयोगकर्ता द्वारा हेरफेर नहीं किया जा सकता है।

अचानक इस विशाल तालिका में हमारी एक प्रविष्टि थी जहाँ हमारे पास "TIPPPPEL" के बजाय "TIPPQPIEL" था। हमारे पास कोई सुराग नहीं है कि यह कैसे हो सकता है।

क्या यह किसी भी तरह से संभव है कि हमारी हार्ड डिस्क एक बिट स्विच कर रही है, इसलिए हमारा अक्षर "S" अब "1010001" के रूप में एन्कोड नहीं किया गया है, लेकिन अचानक हार्ड डिस्क पर "Q" हो जाता है, जैसे एक बिट: 1010011?

मैं हार्ड डिस्क पर थोड़ा सा भौतिकी का विशेषज्ञ नहीं हूं, लेकिन मुझे लगता है कि यह सुनिश्चित करने के लिए कि ओएस या डिस्क में चेकसम और अन्य सामान नहीं है।

क्या यह संभव है कि सिर्फ एक बिट स्विच करता है इसलिए मेरी फ़ाइल मुझे "एस" के बजाय "क्यू" पत्र दिखाती है?

अद्यतन: हमने और विश्लेषण किया। हमारे दास डेटाबेस को मास्टर (PostgreSQL सुविधा) से अपने वाल रिकॉर्ड्स मिलते हैं। जो भी हो: हमारा दास सर्वर सिंक में होना चाहिए। लेकिन दास इस विशेष पंक्ति के संबंध में नहीं था। हम देख सकते हैं कि यह कुछ दिनों पहले इस विशेष प्रविष्टि पर किसी उपयोगकर्ता से बातचीत के बिना हुआ। तो यह चारों ओर एक सा flipping होना चाहिए। भयानक!


मैं मान सकता हूँ कि यह एक दोषपूर्ण स्मृति से आया है। क्या आपके पास अभी भी लॉग है, जब वह कॉलम लिखा गया था?
ott--

1
इसकी संभावना नहीं है लेकिन संभव है, पारगमन में बिट्स नियमितता की एक उच्च डिग्री के साथ फ़्लिप करते हैं, 'बिटक्वाटिंग' देखें
सरच

जवाबों:


10

यह बहुत दुर्लभ है हम इस साइट पर वास्तव में दिलचस्प सवाल देखते हैं, इसलिए सबसे पहले आपको धन्यवाद।

मुझे लगता है कि आप जो देख रहे हैं वह वास्तव में एक एकल-बिट त्रुटि है, अद्भुत आप इसे ईमानदार होने के लिए हाजिर कर सकते हैं लेकिन आप यह मानने में सही हैं कि दूसरे-कम से कम-महत्वपूर्ण-बिट को स्विच किया गया है (यह मानते हुए कि आप ASCII का उपयोग कर रहे हैं वैसे भी)।

चेकसम आदि के लिए जब यह डिस्क को लिखा गया था, तो यह ठीक होने के रूप में सत्यापित होने की संभावना है - मुझे पूरा यकीन है कि यह समस्या बाद में एक सरल चुंबकीय-रिसाव त्रुटि के माध्यम से विकसित हुई है। लेकिन आप सही हैं, एन्कोडिंग चेक किए गए हैं, यह निर्माता से भिन्न होता है, लेकिन ' कहीं यह थोड़ा अजीब लग रहा है' कहते हुए शायद एक त्रुटि है - लेकिन आपकी आईओ श्रृंखला में क्या विकल्प उपलब्ध है? आप पूरे ब्लॉक से इनकार करते हैं? मैं मान रहा हूँ कि यह एक एकल गैर-RAID डिस्क है क्योंकि जब वे त्रुटियों का पता लगाते हैं तो RAID डिस्क उनके पास अधिक विकल्प उपलब्ध होते हैं।

यह एक अजीब बात है, हालांकि इस तरह की बात शायद दुनिया भर में कई बार हुई।


1
आप सही हैं, यह इस मामले में एक गैर-छापा डिस्क सेटअप था। जैसा कि मेरे आगे के विश्लेषण से पता चलता है कि यह रिकॉर्ड लिखे जाने के काफी समय बाद हुआ था।
Janning

1
अगर मेरे 20 साल एक sysadmin के रूप में मैंने एक बिट-फ्लिप के 3 मामले देखे हैं। उनमें से केवल एक ही 100% साबित हो सकता है। अन्य 2 को फ़्लिप बिट्स होने का संदेह था, हम कुछ के लिए नहीं बता सकते थे। (बिट फ़ाइल को पढ़ने के बाद मेमोरी में फ़्लिप हो सकता था। जब तक हमने देखा कि विसंगति मूल फ़ाइल अब उपलब्ध नहीं थी या स्पर्श नहीं की गई थी। मुझे पूरा यकीन है कि यह हर एक सोच से अधिक बार होता है, लेकिन यह शायद ही कभी देखा जाता है। और आमतौर पर यह ध्यान देने योग्य नहीं है कि यह ध्यान में रखा जाए।
टोनही

1
पूरे ब्लॉक रीडिंग को विफल करना ठीक वैसा ही होता है जब उन्हें कोई अयोग्य त्रुटि मिलती है। इस क्षेत्र के उपयोगकर्ता डेटा भाग में केवल एक ही बिट फ्लिप होना असंभव है, और अनिर्धारित जाना। जब डिस्क पर लिखा गया था तब बिट फ़्लिप किया गया होगा।
Psusi

क्या इस सवाल को विहित बनाया जाना चाहिए?
डियर हंटर

@ अपुस्सी असंभव नहीं है, क्योंकि ईसीसी को सही बनाने के लिए आपको सिर्फ सेक्टर में पर्याप्त बिट-फ्लैप की जरूरत है। पूरी तरह से, लेकिन संभव है, और डिस्क निर्माता उच्च पर्याप्त त्रुटि दर उद्धृत करते हैं जो आपको वास्तव में कुछ देखने की उम्मीद करनी चाहिए। मैंने अफवाहें सुनी हैं कि ZFS के लोग उन्हें देखते हैं (ZFS-level data checkums की वजह से) ...
अपमानजनक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.