Aller au contenu principal

Haute disponibilité

La haute disponibilité associe un compute principal en lecture/écriture à une ou plusieurs instances de compute secondaires réparties sur des zones de disponibilité. Lorsque le compute principal n'est plus disponible, une instance de compute secondaire est automatiquement promue et votre application continue à partir de la dernière transaction validée. Votre chaîne de connexion reste inchangée.

Topologie à haute disponibilité présentant deux chaînes de connexion acheminant vers les instances de compute principales et secondaires dans des zones de disponibilité distinctes, toutes lisant à partir d'un stockage partagé.

remarque

La haute disponibilité ne configure que la redondance du compute. Le stockage Lakebase est hautement disponible, quel que soit votre paramètre HA. Voir Architecture de stockage.

remarque

La haute disponibilité protège contre les pannes de compute au sein d'une seule région. Pour vous protéger contre les problèmes régionaux, notamment les défaillances et pannes régionales, consultez Reprise après sinistre.

Fonctionnement de la haute disponibilité

Un Endpoint Lakebase est l'adresse de la base de données à laquelle votre application se connecte. Un Endpoint de haute disponibilité expose deux chaînes de connexion :

  • Principal {endpoint-id}.database.{region}.databricks.com() — votre connexion principale en lecture/écriture. Utilisez ceci dans chaque application qui se connecte à votre base de données. Après un basculement, il achemine automatiquement vers le compute désormais principal.
  • Secondaire ({endpoint-id}-ro.database.{region}.databricks.com) — disponible uniquement lorsque Autoriser l'accès aux instances de compute en lecture seule est activé. Les instances compute secondaires existent principalement comme systèmes de secours en cas de défaillance ; l'activation de l'accès en lecture vous permet de router également des queries en lecture à travers celles-ci.

Les deux chaînes de connexion sont disponibles à partir de la boîte de dialogue Connect sur votre Endpoint.

Derrière ces chaînes de connexion, un endpoint à haute disponibilité possède toujours exactement une instance de compute **primaire** et une à trois instances de compute **secondaires**. Le primaire gère tout le trafic de lecture/écriture. Les instances de compute secondaires s'exécutent dans différentes zones de disponibilité et sont promues au rang de primaires en cas de défaillance.

Chaque instance de compute secondaire dispose d'un paramètre Accès qui détermine si elle gère également le trafic de lecture :

Accès secondaire

Ce qu'il fait

Lecture seule

L'instance de compute secondaire sert les lectures via la chaîne de connexion -ro et peut être promue en tant que primaire si nécessaire

Désactivé

L'instance de compute secondaire est active et prête pour le basculement, mais ne gère pas le trafic de lecture.

Accès secondaire

Ce qu'il fait

Lecture seule

L'instance de compute secondaire sert les lectures via la chaîne de connexion -ro et peut être promue en tant que primaire si nécessaire

Désactivé

L'instance de compute secondaire est active et prête pour le basculement, mais ne gère pas le trafic de lecture.

Vous contrôlez cela avec le paramètre Autoriser l'accès aux instances de compute en lecture seule sur l'endpoint, auquel vous pouvez accéder dans le tiroir Modifier le compute . Lorsque cette option est activée, toutes les instances de compute secondaires servent les lectures ; lorsqu'elle est désactivée, elles sont en attente pour le basculement uniquement. Dans les deux cas, le matériel de compute est déjà alloué et en cours d'exécution : la promotion ne nécessite aucun nouveau provisionnement, de sorte que votre capacité de basculement est réservée quelle que soit la demande dans la zone de disponibilité.

tab Computes affichant le compute principal (lecture/écriture) et trois instances de compute secondaires (lecture seule)

L’onglet Computes affiche en un coup d’œil le rôle (principal ou secondaire), le statut et le niveau d’ accès de chaque instance de calcul.

Distribution AZ

Lakebase distribue les instances de compute primaires et secondaires entre les zones de disponibilité, réduisant le risque qu'une défaillance d'une seule zone de disponibilité n'affecte à la fois les instances de compute primaires et toutes les instances de compute secondaires.

Mise à l'échelle automatique en haute disponibilité

Toutes les instances de compute dans une configuration haute disponibilité partagent la même plage de mise à l'échelle automatique. L'écart maximal entre votre CU minimum et maximum est de 16 CU, la même limite que les instances de compute autonomes.

Les instances de compute secondaires sont toujours dimensionnées à au moins la même taille de CU que les instances principales, garantissant que la capacité de votre base de données reste constante après un basculement.

La mise à zéro n’est pas disponible pour les instances compute dans une configuration de haute disponibilité. Vous pouvez suspendre manuellement toutes les instances de compute, mais votre Endpoint sera indisponible pendant la suspension.

Instances de compute secondaires vs. réplicas en lecture autonomes

Les instances de compute secondaires et les réplicas en lecture autonomes sont des fonctionnalités différentes qui peuvent coexister sur la même Branch :

Instances de compute secondaires

Réplicas en lecture autonomes

Objectif

Basculement avec déchargement de lecture facultatif

Déchargement en lecture uniquement

Ajouté via

Configuration de la haute disponibilité

Ajouter un réplica en lecture

Participe au basculement

Oui

Non

Chaîne de connexion

-ro sur l'Endpoint principal

Endpoint distinct

Dimensionnement

Partagé avec le principal (au niveau de l'endpoint)

Dimensionné indépendamment

Instances de compute secondaires

Réplicas en lecture autonomes

Objectif

Basculement avec déchargement de lecture facultatif

Déchargement en lecture uniquement

Ajouté via

Configuration de la haute disponibilité

Ajouter un réplica en lecture

Participe au basculement

Oui

Non

Chaîne de connexion

-ro sur l'Endpoint principal

Endpoint distinct

Dimensionnement

Partagé avec le principal (au niveau de l'endpoint)

Dimensionné indépendamment

Lorsque vous avez besoin à la fois d'une haute disponibilité et d'une capacité de lecture supplémentaire au-delà de ce que fournissent vos instances de compute secondaires, vous pouvez combiner ces deux fonctionnalités sur la même Branch. Voir Réplicas en lecture.

Comportement de basculement

Basculement automatique

Lakebase surveille en continu la santé principale du compute. Si le primaire devient indisponible, le basculement est déclenché automatiquement.

Le basculement préserve toutes les transactions validées.

Phases de basculement : fonctionnement normal, primaire indisponible après détection, basculement en cours avec promotion, puis service restauré avec la même chaîne de connexion et aucune perte de données

Après le basculement, la chaîne de connexion principale ({endpoint-id}.database.{region}.databricks.com) est automatiquement acheminée vers l'instance de compute nouvellement promue. Les applications n'ont pas besoin de modifier leur configuration de connexion, mais les connexions existantes sont interrompues lors du basculement et doivent être rétablies. Les applications dotées d'une logique de nouvelle tentative gèrent cela automatiquement.

Basculement avec accès en lecture seule activé

Lorsque l’option Autoriser l’accès aux instances de compute en lecture seule est activée et qu’un basculement se produit, le secondaire promu devient la nouvelle instance principale et cesse de servir les lectures. Si vous avez deux secondaires lisibles ou plus, le trafic de lecture sur la chaîne de connexion -ro se poursuit à capacité réduite jusqu’à ce qu’un remplaçant soit provisionné. Si vous n’en avez qu’un, les lectures sont entièrement interrompues jusqu’à ce que le remplaçant soit prêt.

Chaînes de connexion

La boîte de dialogue Connecter affiche les deux chaînes de connexion avec leur état compute actuel :

Option de compute dans la boîte de dialogue Connecter

Chaîne de connexion

Utiliser pour

Primary (name) ● Active

{endpoint-id}.database.{region}.databricks.com

Toutes les écritures ; lectures qui doivent atteindre le primaire actuel

Secondary (name) ● Active RO

{endpoint-id}-ro.database.{region}.databricks.com

Déchargement de lecture vers des instances de compute secondaires (disponible uniquement lorsque **Autoriser l'accès aux instances de compute en lecture seule** est activé)

Option de compute dans la boîte de dialogue Connecter

Chaîne de connexion

Utiliser pour

Primary (name) ● Active

{endpoint-id}.database.{region}.databricks.com

Toutes les écritures ; lectures qui doivent atteindre le primaire actuel

Secondary (name) ● Active RO

{endpoint-id}-ro.database.{region}.databricks.com

Déchargement de lecture vers des instances de compute secondaires (disponible uniquement lorsque **Autoriser l'accès aux instances de compute en lecture seule** est activé)

La chaîne de connexion principale est toujours acheminée vers la ressource principale actuelle, même après un basculement.

Chaque instance de compute a également sa propre chaîne de connexion directe, accessible depuis le **Computes** tab via le menu d'actions (⋮) sur chaque ligne. Les connexions directes sont destinées au dépannage des instances de compute individuelles, et non à l'utilisation d'applications. Les chaînes de connexion directes sont par compute et peuvent changer lorsque des éléments secondaires sont ajoutés, supprimés ou promus.

Limites de haute disponibilité

Limite

Valeur

Instances de compute

2, 3, ou 4 (1 primaire + de 1 à 3 instances de compute secondaires).

Plage de mise à l'échelle automatique (max − min)

≤ 16 CU entre le minimum et le maximum

Monter en charge à zéro

Non disponible pour les instances de compute dans une configuration à haute disponibilité.

Limite

Valeur

Instances de compute

2, 3, ou 4 (1 primaire + de 1 à 3 instances de compute secondaires).

Plage de mise à l'échelle automatique (max − min)

≤ 16 CU entre le minimum et le maximum

Monter en charge à zéro

Non disponible pour les instances de compute dans une configuration à haute disponibilité.

Bonnes pratiques

Le respect de ces pratiques aide votre application à rester résiliente et disponible pendant les événements de basculement.

Pratique

Détails

Mettre en œuvre la logique de nouvelle tentative de connexion

Les connexions actives sont terminées pendant le basculement. Les connexions au serveur principal défaillant peuvent rester bloquées jusqu'à l'expiration du délai — configurez des maintenances de connexion TCP ou un délai d'expiration de connexion dans votre Driver pour détecter rapidement la défaillance. Les connexions au secondaire en cours de promotion sont activement terminées, renvoyant une erreur immédiatement. Les applications avec une logique de nouvelle tentative se reconnectent automatiquement en quelques secondes.

Configurez le comptage secondaire pour votre cas d'utilisation.

Chaque instance de compute secondaire représente du matériel pré-alloué réservé au basculement. La réduction de votre nombre secondaire signifie moins de capacité de basculement et moins de zones de disponibilité couvertes. Une instance de compute secondaire assure la couverture du basculement. Si vous activez les secondaires lisibles, configurez-en deux ou plus. Avec un seul, les lectures sont entièrement interrompues lors d'un basculement jusqu'à ce qu'un remplacement soit provisionné.

Évitez de surcharger les instances de compute secondaires

Le service peut redémarrer une instance de compute secondaire qui est surchargée ou en retard. Surveillez la charge des query et le nombre de connexions, et augmentez la taille des UC si vous observez une utilisation élevée et soutenue.

Pratique

Détails

Mettre en œuvre la logique de nouvelle tentative de connexion

Les connexions actives sont terminées pendant le basculement. Les connexions au serveur principal défaillant peuvent rester bloquées jusqu'à l'expiration du délai — configurez des maintenances de connexion TCP ou un délai d'expiration de connexion dans votre Driver pour détecter rapidement la défaillance. Les connexions au secondaire en cours de promotion sont activement terminées, renvoyant une erreur immédiatement. Les applications avec une logique de nouvelle tentative se reconnectent automatiquement en quelques secondes.

Configurez le comptage secondaire pour votre cas d'utilisation.

Chaque instance de compute secondaire représente du matériel pré-alloué réservé au basculement. La réduction de votre nombre secondaire signifie moins de capacité de basculement et moins de zones de disponibilité couvertes. Une instance de compute secondaire assure la couverture du basculement. Si vous activez les secondaires lisibles, configurez-en deux ou plus. Avec un seul, les lectures sont entièrement interrompues lors d'un basculement jusqu'à ce qu'un remplacement soit provisionné.

Évitez de surcharger les instances de compute secondaires

Le service peut redémarrer une instance de compute secondaire qui est surchargée ou en retard. Surveillez la charge des query et le nombre de connexions, et augmentez la taille des UC si vous observez une utilisation élevée et soutenue.

Ressources supplémentaires