Transaccions
Una transacció és una seqüència d'operacions que o s'apliquen totes, o no se n'aplica cap.
Introducció
Les transaccions fa molts anys que són una peça central de les bases de dades relacionals, però fins fa poc no hi eren a les bases de dades documentals.
El motiu és que un document pot ser una estructura imbricada, amb documents i llistes a dins en comptes de només valors simples. Això fa que les dades relacionades càpiguen sovint dins d’un sol document, i que sovint no calgui modificar diversos documents com a part d’una sola operació lògica.
Però hi ha aplicacions on sí que has d’accedir i modificar diversos documents en una sola operació, amb la integritat garantida.
Pensa en un traspàs de diners entre dos comptes: si el càrrec s’aplica i l’abonament no, els diners han desaparegut. Les dues escriptures han de passar totes dues, o cap.
Entorn de treball
Per la manera com estan implementades a MongoDB, les transaccions només es poden fer en instàncies que formin part d’un clúster: un clúster fragmentat o un conjunt de rèpliques.
Un conjunt de rèpliques de MongoDB és un grup d’instàncies interconnectades que treballen juntes per oferir alta disponibilitat i tolerància a errors.
S’hi tria un node com a primari per gestionar les escriptures, i la resta són secundaris que en repliquen les dades. Si el primari falla, un secundari pren el relleu.
Torna a la màquina mongodb que has fet servir fins ara:
wslx connect mongodbEl servidor que hi tens és d’un sol node, i un node sol no és un clúster: les transaccions hi fallen.
Necessites el conjunt de rèpliques, però el seu node principal vol el port 27017, que és el que ocupa el servidor d’ara. Atura’l, no l’esborris — el recuperaràs a Control d'accés:
mongoAturar un contenidor no li toca les dades: les col·leccions de les pàgines anteriors continuen a dins.
Ara instal·la el conjunt de rèpliques:
Estàs llegint una vista prèvia.
Inicia sessió amb Google per llegir la pàgina completa.
Inicia sessió amb GoogleAmb qualsevol compte de Google. Només et demanarem que acceptis les condicions del servei.