Puncte:8

Linux/ext4/sqlite: atingerea unui fișier în timp ce este scris poate cauza o condiție de cursă?

drapel ph

Pentru context: trebuie să pot actualiza în mod fiabil marcajul de timp pe unele fișiere sqlite DB care primesc actualizări intermitente pe un sistem de fișiere ext4.

Poate folosind atingere comanda (pentru a actualiza ora ultimei modificări) eșuează atunci când baza de date este scrisă sau chiar mai rău, provoacă pierderi de date?

Puncte:11
drapel ca

Chiar poți atingere un fișier deschis fără a-i deteriora conținutul, deoarece sistemul de fișiere va serializa actualizările metadatelor inode.

Dacă acest lucru este sigur din punct de vedere al aplicației, este cu totul altă problemă, dar asta ar trebui să fii sigur, simplu, deoarece chiar și citirea unui fișier poate actualiza metadatele acestuia (adică: când ultima citire este mai veche de o zi sau când nu se folosește noatime, relatime sau timp de lene).

Acestea fiind spuse, dacă SQLite folosește mtime pentru unele contabilități interne, poate fi confuză de modificările metadatelor. Acest lucru este valabil mai ales dacă folosiți atingerea pentru setarea unui marcaj de timp trecut, ceea ce este în general o idee proastă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.