Non, les raw devices c'est pas vraiment une ruine d'un passé lointain. Le but est simplement de dire au noyau de l'OS en question de n'utiliser absolument aucun cache.
Pour une base de données le noyau _doit_ être un driver, et être bête et méchant : on lui dit "lit 8Ko à partir de tel endroit", on veut qu'il lise 8Ko, pas qu'il fasse du read-head et lise 4Mo juste au cas où on lirait les octets suivants. La base de données ne veut pas que le noyau cache les octets lus. pourquoi ? Ben parce que la base fait son propre cache, et la mémoire que le noyau perd à cacher n'importe quoi serait bien mieux employée par la base.
C'est con mais les algos de filesystem sont complètement inadaptés aux bases de données.
Du coup il y a deux possibilités :
- utiliser des raw devices (et là linux à encore un peu de boulot)
- utiliser des gros fichiers (bonjour tablespace ;-)
et il faut en plus que le noyau soit "gentil" et permette de désactiver toute forme de cache.
Il y a un très bon résumé de ce qu'il faut (ou ne faut pas) dans le kernel pour obtenir des perfs optimales avec une BD correcte.
[^] # Re: PeopleSoft se tourne vers Linux
Posté par Thomas Cataldo (site web personnel) . En réponse à la dépêche PeopleSoft se tourne vers Linux. Évalué à 3.
Pour une base de données le noyau _doit_ être un driver, et être bête et méchant : on lui dit "lit 8Ko à partir de tel endroit", on veut qu'il lise 8Ko, pas qu'il fasse du read-head et lise 4Mo juste au cas où on lirait les octets suivants. La base de données ne veut pas que le noyau cache les octets lus. pourquoi ? Ben parce que la base fait son propre cache, et la mémoire que le noyau perd à cacher n'importe quoi serait bien mieux employée par la base.
C'est con mais les algos de filesystem sont complètement inadaptés aux bases de données.
Du coup il y a deux possibilités :
- utiliser des raw devices (et là linux à encore un peu de boulot)
- utiliser des gros fichiers (bonjour tablespace ;-)
et il faut en plus que le noyau soit "gentil" et permette de désactiver toute forme de cache.
Il y a un très bon résumé de ce qu'il faut (ou ne faut pas) dans le kernel pour obtenir des perfs optimales avec une BD correcte.