• [^] # Re: nosql embarqué ?

    Posté par . En réponse à la dépêche SQLite 3.8.0 : n'ayez pas peur du zéro. Évalué à 3.

    Sur un disque 7200 rpm tu montes à peine à 100 write/s. C'est la limite du disque pas du filesystem. Tu peux vérifier ici.

    Si tu fais un fsync à chaque fois que tu veux le D de ACID sur un filesystem, tu prends minimum 2 io (les données et les méta-données) donc t'as au mieux 50 fsync/s.

    Pour faire mieux il faut écrire dans un seul fichier de taille constante pour pas modifier ses métadonnées et remplacer fsync par la libaio (comme toutes les bases de données cherchant à faire de la perf le font, justement) et là tu monteras à 100 write/s avec des grosses io, et même au-delà si tu as suffisament d'io, qu'elles sont petites, et qu'elles sont au même endroit sur le disque (ça marche pour un redolog par exemple, absolument pas par contre pour du random un peu partout), parce que tu laisses l'os les agréger, grâce à la libaio.

    Si tu fais plus, c'est soit que t'as un disque plus performant, soit que tu n'as pas le D de ACID (pour des raisons soft genre ni fsync ni attente via la libaio, ou pour des raisons hard genre ton disque est mal configuré et acquitte les écritures avant de les faire), soit que tu as modifié les lois de la physique. Par comparaison avec les write/s pures du disque, ce que le filesystem peut faire de mieux c'est ne pas les dégrader.