• [^] # Re: Transactionnel et en RAM sont compatibles

    Posté par (site web personnel) . En réponse au message Base de donnée en RAM. Évalué à -1.

    La différence majeure entre un disque dur et de la RAM est la garantie d'écriture durable.
    Avoir une écriture garantie durable dans un disque est très coûteux (il faut faire un fsync sur le fichier, qui s'assure que le fichier est physiquement écrit sur le disque et pas seulement dans un cache). Les bases de données transactionnelles ont tout un tas de techniques pour faire ça de manière efficace (redo log dans Oracle, WAL dans PostgreSQL).
    Quand tu fais tourner ton PostgreSQL dans un ramdisk, il continue à gérer un WAL et toute la logique associée, alors que c'est complètement inutile.
    Dans le cas de la mémoire, l'écriture ne peut pas être garantie durable donc ce genre de gestion n'a pas lieu d'être, ce qui change assez fondamentalement comment fonctionne une base de donnée qui fonctionne seulement en mémoire.
    Concernant la définition de durabilité je trouve celle de Wikipedia assez bonne, pour résumer le résultat de la transaction survit même en cas de coupure d'électricité, ce que stocker uniquement en RAM ne garanti pas (d'où le titre).