local_filesystem_read_method
preadv2 et du drapeau RWF_NOWAIT. Cette vérification nécessite Linux 5.11 ou une version ultérieure, et l’appel système ne doit pas être rejeté par un profil seccomp d’un environnement d’exécution de conteneurs. Au démarrage, il est vérifié si l’appel système peut être utilisé et, si ce n’est pas le cas, la valeur par défaut de ce paramètre est remplacée par ‘pread’, car confier chaque lecture à un pool de threads, y compris les lectures servies depuis le cache de pages, est coûteux ; la raison est signalée dans le journal du serveur. Un profil seccomp n’est détecté que s’il rejette l’appel système avec un code d’erreur, ce que font les environnements d’exécution de conteneurs ; un profil qui met fin au processus ne peut en revanche pas être détecté. Une valeur définie explicitement, dans la configuration ou avec SET, n’est pas remplacée.
La méthode ‘io_uring’ est expérimentale et ne fonctionne pas avec Log, TinyLog, StripeLog, File, Set et Join, ni avec les autres tables utilisant des fichiers auxquels on peut ajouter des données en présence de lectures et d’écritures concurrentes.
Si vous lisez divers articles sur ‘io_uring’ sur Internet, ne vous y fiez pas aveuglément. Ce n’est pas une meilleure méthode de lecture de fichiers, sauf dans le cas d’un grand nombre de petites requêtes d’IO, ce qui n’est pas le cas dans ClickHouse. Il n’y a aucune raison d’activer ‘io_uring’.