Pour résister à un kill -9 et (plus encore) à une coupure de courant il faut que l'écriture ai été faite physiquement sur une mémoire persistante (disque...) avant de rendre la main à l'application qui a terminé une transaction (lors d'un commit s'il y a des commits). Pour chaque transaction.
Ça se fait avec fsync, msync ou les équivalent de la libaio si on utilise les i/o asynchrones Linux.
Ça ne dépend pas du type de base de données ou de stockage (même fichier voire accès disque direct (raw device)). Et en général c'est le facteur limitant lors d'écritures.
C'est exactement le D de ACID. Donc tu t'en fiches peut-être de ACI mais manifestement pas de D.
[^] # Re: nosql embarqué ?
Posté par DerekSagan . En réponse à la dépêche SQLite 3.8.0 : n'ayez pas peur du zéro. Évalué à 4.
Pour résister à un kill -9 et (plus encore) à une coupure de courant il faut que l'écriture ai été faite physiquement sur une mémoire persistante (disque...) avant de rendre la main à l'application qui a terminé une transaction (lors d'un commit s'il y a des commits). Pour chaque transaction.
Ça se fait avec fsync, msync ou les équivalent de la libaio si on utilise les i/o asynchrones Linux.
Ça ne dépend pas du type de base de données ou de stockage (même fichier voire accès disque direct (raw device)). Et en général c'est le facteur limitant lors d'écritures.
C'est exactement le D de ACID. Donc tu t'en fiches peut-être de ACI mais manifestement pas de D.