Aller au contenu principal

Store

Un store est l'unité centrale avec laquelle vous travaillez dans Clustron Zaris. Chaque opération de données et de coordination se produit à l'intérieur d'un store, et le store définit la frontière à l'intérieur de laquelle ces opérations sont cohérentes et isolées.

Ce qu'est un store​

Un store est un cluster logique. C'est un conteneur pour vos données et vos primitives de coordination, et c'est la frontière pour la cohérence et la gestion du cycle de vie — la portée à l'intérieur de laquelle les clés, les verrous, les compteurs et les baux sont en relation les uns avec les autres. Vous interagissez toujours avec Clustron Zaris à travers un store ; il n'existe aucun niveau inférieur que vous adressez directement.

La même abstraction de store fonctionne qu'elle s'exécute à l'intérieur d'un seul processus ou à travers de nombreuses machines. Ce qui change entre ces cas, c'est le nombre de nœuds derrière le store, pas la façon dont vous l'utilisez.

Un store, plusieurs nœuds​

En mode distribué, un store est soutenu par plusieurs nœuds. Un nœud est une unique instance en cours d'exécution du store. Les nœuds partagent les données et l'état de coordination du store et se présentent à vous comme une seule unité logique :

Store (TestStore)
├── Node 1
├── Node 2
└── Node N

Chaque nœud participe au cluster, les données et l'état de coordination sont partagés entre eux, et le système se comporte comme un store unique. Vous ne routez pas vous-même les requêtes vers des nœuds spécifiques — les clients peuvent se connecter à n'importe quel nœud, et le cluster coordonne en coulisses.

Stores en processus et distribués​

Le même store s'exécute dans deux modes. En mode en processus, il s'exécute entièrement à l'intérieur de votre application, sans communication réseau ni dépendance externe :

Application
└── Store (InProc)

En mode distribué, le store s'exécute à travers des machines — par exemple Node 1 sur la machine A, Node 2 sur la machine B, Node 3 sur la machine C. Les nœuds communiquent entre eux, les clients peuvent se connecter à n'importe lequel d'entre eux, et le cluster maintient un état partagé. L'API est identique dans les deux modes, donc la différence est l'endroit où le store s'exécute, pas la façon dont vous programmez contre lui. Modes en processus et distribué couvre les compromis.

Nommer un store​

Chaque store a un nom unique, tel que TestStore, orders ou cache. Le nom est le handle que vous utilisez pour créer le store, y connecter des clients et le résoudre depuis la configuration. Comme le nom est la façon dont tout trouve le store, gardez-le stable et descriptif.

Un store est une frontière​

La chose la plus importante à comprendre à propos d'un store est qu'il trace des frontières nettes. Ces frontières sont ce qui fait des stores une unité d'isolation sur laquelle vous pouvez raisonner.

  • Frontière de données. Les clés vivent à l'intérieur d'un store. Des stores différents ne partagent jamais de données, et chaque store garde son propre espace de clés. Une clé dans un store est invisible pour un autre.
  • Frontière de coordination. Les verrous, les compteurs et les surveillances (watches) sont circonscrits à un seul store. Il n'existe aucune coordination inter-stores — un verrou dans un store ne signifie rien dans un autre.
  • Frontière de panne. La panne et la récupération se produisent à l'intérieur d'un store. Chaque store fonctionne de manière indépendante, de sorte qu'un problème dans l'un ne se propage pas à un autre.

Exécuter plusieurs stores​

Comme chaque store est isolé, vous pouvez en exécuter plusieurs dans le même environnement — par exemple orders-store, inventory-store et session-store. Chacun est géré indépendamment, ce qui vous permet d'isoler les charges de travail, de monter en charge un store spécifique à part, et d'appliquer une configuration différente par store. C'est la principale raison pour laquelle les stores sont l'unité de montée en charge et de modularité dans Clustron Zaris : vous partitionnez votre système le long des frontières de stores et traitez chaque store comme sa propre affaire.

Étapes suivantes​