Inhoudsopgave:
Video: HT - Beheren beschikbaarheid 2024
Zoals met andere NoSQL-databasetypen, kunt u bij sleutelwaardewinkels wat consistentie inruilen voor een deel van de beschikbaarheid. Key-value-winkels bieden doorgaans een breed scala aan consistentie- en duurzaamheidsmodellen - dat wil zeggen, tussen beschikbaarheid en partitietolerantie en tussen consistente en partitietolerantie.
Sommige winkels met belangrijke waarden gaan veel verder op de consistentie-arm en laten BASE voor volledige ACID ondersteuning voor transactieconsistentie achterwege. Als u begrijpt waar u de lijn kunt tekenen, kunt u de lijst met mogelijke databases verkorten die u in overweging kunt nemen voor uw gebruik.
Handelsconsistentie
Key-value-winkels verhandelen doorgaans consistentie in de gegevens (dat wil zeggen, de mogelijkheid om altijd de laatste kopie van een waarde onmiddellijk na een update te lezen) om de schrijftijd te verbeteren.
Voldemort, Riak en Oracle NoSQL zijn allemaal uiteindelijk consistente waardetoevoegende waarden. Ze gebruiken een methode genaamd lees reparatie . Hier zijn de twee stappen voor lees reparatie :
-
Bepaal op het moment van het lezen van een record welke van de verschillende beschikbare waarden voor een sleutel de meest recente en meest geldige is.
-
Als de meest recente waarde niet kan worden bepaald, wordt de databaseclient gepresenteerd met alle waardeopties en wordt deze zelf bepaald.
Goede voorbeelden voor het gebruik van uiteindelijk consistente sleutel / waarde-stores zijn onder meer het verzenden van posts op sociale media en het leveren van s aan gerichte gebruikers. Als een tweet laat arriveert of als er een vijf-minuten-oude wordt getoond, is er geen catastrofaal gegevensverlies.
Implementatie van ACID-ondersteuning
Aerospike en Redis zijn opmerkelijke uitzonderingen op uiteindelijke consistentie. Beide maken gebruik van gedeelde-niets clusters, wat betekent dat elke sleutel het volgende heeft:
-
Een masterknooppunt: Alleen de masters bieden antwoorden voor één enkele sleutel, die ervoor zorgt dat u de laatste kopie hebt.
-
Meerdere slave-replicaknooppunten: Deze bevatten kopieën van alle gegevens op een hoofdknooppunt. Aerospike biedt volledige ACID-transactieconsistentie door ervoor te zorgen dat wijzigingen direct naar de schijf worden doorgespoeld voordat de transactie als voltooid wordt gemarkeerd voor de databaseclient.
Aerospike slaagt erin dat te doen met zeer hoge snelheden (wat claims weerlegt dat het hebben van ACID de schrijfsnelheid verlaagt). Aerospike verwerkt native raw-SSD's voor het schrijven van gegevens door de bestandssysteemondersteuning van langzamere besturingssystemen te omzeilen.
Natuurlijk betekenen meer SSD's hogere serverkosten. U kunt besluiten dat het gebruik van Redis (geconfigureerd om alle gegevens naar de schijf te spoelen zodra deze binnenkomt) snel genoeg is en voldoende duurzaamheid garandeert voor uw behoeften.De standaardinstelling in Redis is om de paar seconden gegevens naar schijf te spoelen, waardoor een klein venster met mogelijk gegevensverlies overblijft als een server faalt.
Hier volgen enkele voorbeelden van situaties waarin u wellicht een ACID-compatibele sleutel / waardeopslag nodig hebt:
-
Bij ontvangst van sensorgegevens die u nodig hebt voor een experiment.
-
In een berichtensysteem waar u de ontvangst moet garanderen.
Redis biedt bijvoorbeeld een publicatie- / abonneermechanisme dat fungeert als back-end voor een berichtenserver. Deze functie in combinatie met ACID-ondersteuning zorgt voor duurzame berichtenuitwisseling.