Présentation de la couche d'ab... Note

Présentation de la couche d'abstraction de données clés-valeurs de Netflix

La couche d'abstraction de données clés-valeurs (KV) de Netflix est un service d'abstraction fondamental qui simplifie l'accès aux données et améliore la fiabilité de l'infrastructure. Il offre une interface cohérente aux développeurs, indépendamment de la base de données sous-jacente.La couche d'abstraction KV emploie une architecture de carte à deux niveaux, prenant en charge à la fois les modèles de données simples et complexes. Elle fournit quatre API CRUD de base (PutItems, GetItems, DeleteItems) et des API MutateItems et ScanItems complexes pour divers cas d'utilisation.Un espace de noms définit où et comment les données sont stockées, offrant une séparation logique et physique. Cela permet aux différents cas d'utilisation d'être acheminés vers le système de stockage le plus approprié en fonction des besoins spécifiques de performance, de durabilité et de cohérence.Les API PutItems et DeleteItems utilisent des jetons d'idempotence pour garantir l'intégrité des données et assurer l'ordre correct des opérations. Les jetons monotones générés par le client sont préférés pour la fiabilité.Pour gérer les blobs volumineux, la couche d'abstraction KV utilise le découpage. Cette technique divise les données volumineuses en morceaux plus petits, qui sont ensuite mis en scène et validés avec des métadonnées appropriées.La pagination est une fonctionnalité critique pour gérer les grands ensembles de données. L'API GetItems prend en charge la pagination en utilisant un next_page_token, garantissant une récupération de données efficace sur plusieurs requêtes.Les tombstones, qui indiquent les données supprimées, peuvent affecter les performances. KV optimise les suppressions d'enregistrements et de plage pour générer un seul tombstone, réduisant les pics de charge et maintenant des performances cohérentes.Les suppressions d'éléments sont gérées en utilisant des suppressions TTL avec jitter. Cette technique cache la complexité du moteur de stockage et minimise l'impact des suppressions sur la pagination de lecture.L'idempotence et le découpage sont essentiels pour gérer les latences de queue et garantir des performances prévisibles à faible latence. Ces philosophies de conception contribuent à la fiabilité et aux performances nécessaires aux opérations mondiales de Netflix.