Index secondaire global (GSI)
Un index secondaire d'une base de données distribuée, partitionné indépendamment des données principales — sur sa propre valeur d'index. Une recherche sur l'index va alors directement à la bonne partition, mais une écriture doit mettre à jour une partition d'index qui peut se trouver sur un autre nœud.
Mécanique : l'index se répartit (shard) sur la colonne indexée, pas sur la clé de partition de la table. Avantage : les lectures sur l'index sont efficaces (une seule partition, pas de scatter-gather sur tous les nœuds). Prix : une écriture sur une ligne doit aussi mettre à jour la partition d'index ailleurs → des écritures inter-nœuds, et souvent seulement une cohérence à terme (eventual consistency) entre la table et l'index (le GSI de DynamoDB, par exemple, est mis à jour de façon asynchrone). Se distingue de l'index secondaire local (partitionné avec les données → écritures bon marché mais lectures dispersées coûteuses). Un compromis classique dans DynamoDB, Cassandra (SAI/vues matérialisées) et les bases SQL distribuées. Le choix détermine si ce sont les lectures ou les écritures qui deviennent bon marché. Lié à l'index secondaire local et à l'index secondaire.