Score:8

Linux/ext4/sqlite: สามารถแตะไฟล์ในขณะที่กำลังเขียนเพื่อทำให้เกิดสภาวะการแย่งชิงได้หรือไม่

ธง ph

สำหรับบริบท: ฉันต้องสามารถอัปเดตการประทับเวลาได้อย่างน่าเชื่อถือในไฟล์ sqlite DB บางไฟล์ซึ่งได้รับการอัปเดตเป็นระยะในระบบไฟล์ ext4

สามารถใช้ สัมผัส คำสั่ง (เพื่ออัปเดตเวลาที่แก้ไขล่าสุด) ล้มเหลวเมื่อฐานข้อมูลถูกเขียนหรือแย่กว่านั้นคือทำให้ข้อมูลสูญหาย?

Score:11
ธง ca

คุณสามารถแน่นอน สัมผัส ไฟล์ที่เปิดอยู่โดยไม่ทำให้เนื้อหาเสียหาย เนื่องจากระบบไฟล์จะทำให้การอัปเดตเป็นอนุกรมกับข้อมูลเมตาของไอโหนด

หากสิ่งนี้ปลอดภัยจากมุมมองของแอปพลิเคชันก็เป็นอีกเรื่องหนึ่ง แต่ก็เป็นเช่นนั้น ควร ปลอดภัยง่ายๆ เพราะแม้แต่การอ่านไฟล์ก็สามารถอัปเดตข้อมูลเมตาได้ (เช่น: เมื่อการอ่านครั้งล่าสุดเก่ากว่าหนึ่งวันหรือเมื่อไม่ได้ใช้งาน ไม่มีเวลา, รีไทม์ หรือ เวลาขี้เกียจ).

ที่กล่าวว่าหากใช้ SQLite เวลา สำหรับการทำบัญชีภายในบางอย่าง การเปลี่ยนแปลงข้อมูลเมตาของคุณอาจสับสนได้ โดยเฉพาะอย่างยิ่งหากใช้การสัมผัสเพื่อตั้งค่าการประทับเวลาในอดีต ซึ่งโดยทั่วไปแล้วเป็นความคิดที่ไม่ดี

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา