L’une des fonctionnalités clés de l’édition Enterprise est le partage de slots inactifs : les slots inutilisés d’une réservation deviennent automatiquement disponibles pour d’autres. Cela améliore l’utilisation globale des slots sans nécessiter de rééquilibrage manuel, mais présente des contreparties qu’il faut comprendre.
Comment ça fonctionne
Supposons deux réservations :
prod: 500 slots de base, utilisant actuellement 200dev: 100 slots de base, utilisant actuellement 150
Les 300 slots inactifs de prod peuvent être empruntés par dev, lui donnant accès à 400 slots au total (100 de base + 300 empruntés).
Le piège : si prod a besoin de récupérer ses slots, elle les reprend instantanément. Les jobs dans dev utilisant la capacité empruntée peuvent ralentir ou être mis en file d’attente. C’est la nature fondamentale du partage de slots inactifs — la capacité empruntée est préemptible. La réservation propriétaire a toujours la priorité.
Ce comportement de préemption protège la réservation prêteuse. Quand la réservation propriétaire a besoin de ses slots, ils sont retournés immédiatement.
Conditions requises pour le partage de slots inactifs
Les réservations ne peuvent partager des slots inactifs que si elles remplissent les trois conditions suivantes :
- Elles sont dans le même projet d’administration
- Elles sont dans la même région
- Elles utilisent la même édition
La première condition est celle qui pose le plus souvent problème. Si vous créez accidentellement des réservations dans plusieurs projets d’administration, leurs slots restent complètement isolés. Le pattern du projet d’administration existe en partie pour éviter cette erreur — centraliser toutes les réservations dans un seul projet d’administration garantit qu’elles peuvent toutes partager la capacité inactive.
Point important également : les slots autoscalés ne sont PAS partageables. Seuls les slots de base et engagés participent au partage. Les slots autoscalés appartiennent à la réservation qui les a mis à l’échelle et ne peuvent pas être empruntés par d’autres.
Configuration
Chaque réservation dispose d’un paramètre ignore_idle_slots :
false(par défaut) : Participe au partage — peut emprunter et prêter des slots inactifstrue: Isolée, utilise uniquement sa propre capacité
Le paramètre est par réservation, vous pouvez donc avoir certaines réservations participant au partage tandis que d’autres sont isolées. Un pattern courant : les réservations de production et BI participent au partage (elles bénéficient mutuellement de la capacité hors pointe de l’autre), tandis qu’une réservation sensible aux exigences de conformité est isolée.
Quand le partage est utile
Le plus grand avantage vient quand les réservations ont des patterns d’utilisation complémentaires. Exemples classiques :
- Le dbt de production tourne de 4 h à 7 h ; les tableaux de bord BI ont leur pic de 9 h à 18 h. Hors des heures de bureau, chacun peut emprunter la capacité inactive de l’autre.
- L’équipe US interroge pendant les heures ouvrées US ; l’équipe EU interroge pendant les heures ouvrées EU. Les mêmes slots servent les deux équipes à travers les fuseaux horaires.
- Le traitement par lots s’exécute la nuit ; l’analyse interactive s’exécute pendant la journée.
Sans partage de slots inactifs, vous devriez provisionner suffisamment de slots de base pour le pic de chaque charge de manière indépendante. Avec le partage, vous provisionnez pour l’état stable de chaque charge et laissez la capacité inactive absorber les pics modérés. Cela peut réduire significativement le nombre total de slots à acheter.
Quand désactiver le partage
Envisagez de définir ignore_idle_slots = true pour :
- Les tests de preuve de concept : Vous voulez voir comment une réservation se comporte avec exactement sa capacité allouée, sans emprunter ni prêter à d’autres réservations. Cela vous donne des données précises pour la planification de capacité.
- L’isolation stricte des charges : Les exigences réglementaires ou de sécurité imposent que certaines charges utilisent uniquement leurs ressources dédiées.
- La planification de capacité : Lors du dimensionnement initial des réservations, désactiver le partage aide à comprendre les besoins réels en slots avant d’optimiser. Si une réservation fonctionne bien avec le partage mais a des difficultés sans lui, vous savez qu’elle est sous-dimensionnée.
Pour la plupart des cas d’usage en production, laisser le partage activé améliore l’utilisation globale. Les charges non critiques en bénéficient sans pénaliser la réservation prêteuse.
Les slots inactifs comme optimiseur d’utilisation
Les slots empruntés ne remplacent pas des réservations correctement dimensionnées. Un job exécuté sur une capacité empruntée peut ralentir en cours d’exécution si la réservation propriétaire réclame ses slots — les unités de travail actives du job emprunteur sont mises en file d’attente jusqu’à ce qu’elles puissent être planifiées sur la propre allocation de l’emprunteur.
Le partage de slots inactifs améliore l’utilisation des slots existants en comblant les vides. Il ne remplace pas l’allocation de slots de base pour les charges avec des SLA critiques. Le développement, le traitement par lots et les charges tolérantes à des performances variables sont des candidats appropriés pour s’appuyer sur la capacité empruntée.