Qu'est-ce que la compression du Write-Ahead Log (WAL) dans PostgreSQL ? Dans quels cas l'activation de la compression des fichiers WAL réduit-elle la charge sur le sous-système disque et le réseau, et dans quels cas entraîne-t-elle une dégradation des performances en raison d'une utilisation excessive des cœurs CPU ?
Python
Comment le mécanisme de la Politique de la Boucle d'Événements est-il structuré dans asyncio ? Dans quels scénarios un développeur backend doit-il forcer le changement de la politique par défaut de la boucle d'événements vers une politique personnalisée, par exemple en utilisant uvloop basé sur libuv, et comment cette modification permet-elle d'améliorer les performances ?
Qu'est-ce qu'un index basé sur une expression (Expression Index / Functional Index) dans PostgreSQL ? Quelles sont les charges supplémentaires sur les opérations d'écriture (INSERT/UPDATE) qu'il entraîne et pourquoi le planificateur peut refuser de l'utiliser si les types de données dans l'expression de la requête ne correspondent pas ?
Qu'est-ce que la copie profonde d'objets (copy.deepcopy) en Python du point de vue des performances ? Comment ce mécanisme contourne-t-il les références cycliques, pourquoi fonctionne-t-il extrêmement lentement sur de grands graphes d'objets, et quels patterns alternatifs le remplacent dans les systèmes à haute charge ?
Comment fonctionne le pattern Sidecar dans Kubernetes, par exemple avec Istio ou Envoy ? Comment ce pattern permet-il de déléguer le chiffrement du trafic (mTLS), le traçage des requêtes et les retries à l'extérieur de l'application ?
Quelles sont la pénétration du cache, l'avalanche de cache et le warmup du cache ? Comment concevoir une couche de cache pour une boutique en ligne afin que lors d'une vente nocturne, lorsque des millions d'utilisateurs demandent simultanément de nouveaux produits, la base de données ne tombe pas en panne à cause de misses de cache ?
Quelles sont les différences entre les architectures Push et Pull dans la conception de systèmes de streaming de données comme RabbitMQ et Kafka ? Comment ces approches affectent l'utilisation de la mémoire côté broker et le problème de la backpressure des consommateurs ?
Décrivez le protocole de commit en deux phases (2PC) pour les transactions distribuées impliquant deux bases de données relationnelles indépendantes. Que se passe-t-il pour le système si le coordinateur de la transaction plante exactement entre la phase de vote (Prepare) et la phase de commit (Commit) ?
Décrivez la mécanique de la fonction intégrée compile(). Comment convertir une chaîne de code Python générée dynamiquement en un objet de code, l'exécuter en toute sécurité dans un contexte isolé à l'aide de exec/eval, et prévenir les vulnérabilités d'exécution de code à distance (RCE).
Décrivez les compromis entre les protocoles WebSockets, SSE (Server-Sent Events) et gRPC Streaming. Quel protocole choisiriez-vous pour : a) chat en direct, b) flux unidirectionnel de cotations boursières, c) communication inter-services dans une architecture microservices, et pourquoi ?
Comment sont construisées les extensions C/C++ pour Python (C Extensions) sous le capot ? Pourquoi les extensions écrites avec l'API C traditionnelle de Python ralentissent-elles la transition vers un Python sans GIL, et comment les alternatives modernes comme HPy ou Cython résolvent-elles ce problème ?
Pourquoi la fonction standard os.cpu_count() de Python retourne-t-elle souvent le nombre total de cœurs du serveur physique dans un conteneur Docker exécuté dans un pod Kubernetes avec limite CPU : 2 ? Quels problèmes critiques avec la taille du pool de threads dans Gunicorn ou Celery cela cause-t-il, et comment le corriger ?
Comment fonctionne l'algorithme de Hashing Cohérent ? Pourquoi est-il nécessaire dans la conception d'un cluster de cache distribué, par exemple avec 20 serveurs Redis, et comment minimise-t-il le nombre de clés à déplacer lors de l'ajout ou de la suppression d'un nœud ?
Comment les Cgroups (Groupes de Contrôle) et les Namespaces de Linux créent-ils une isolation dans un conteneur Docker ? Que se passe-t-il pour un processus Python lorsqu'il dépasse resource.limits.cpu dans Kubernetes, et pourquoi dépasser limits.memory conduit à OOMKilled, tandis que dépasser CPU ne fait que provoquer un throttling ?