Wat is persistentie van gegevens en waarom maakt het uit?

voor meer informatie over persistentie in Cassandra en andere NoSQL-databases, kijk wat is NoSQL?

inzicht in de Betekenis van persistentie is belangrijk voor de evaluatie van verschillende systemen voor gegevensopslag. Gezien het belang van de dataopslag in de meeste moderne toepassingen, kan het maken van een slecht geïnformeerde keuze aanzienlijke downtime of verlies van gegevens betekenen. In deze post, we zullen persistentie en data store design benaderingen te bespreken en bieden wat achtergrond over deze in de context van Cassandra.

persistentie is “het voortduren van een effect nadat de oorzaak ervan is verwijderd”. In de context van het opslaan van gegevens in een computersysteem betekent dit dat de gegevens overleven nadat het proces waarmee het is gemaakt is beëindigd. Met andere woorden, voor een gegevensopslag te worden beschouwd als persistent, het moet schrijven naar niet-vluchtige opslag.

Als u nodig hebt volharding in uw gegevens opslaan, dan moet u ook begrijpen van de vier man design aanpak die een data store kunt nemen en hoe (en wanneer) deze ontwerpen persistentie:

  • Pure in-het-geheugen, geen persistentie, zoals memcaches of Scalaris

  • In-memory met periodieke momentopnamen, zoals Oracle Coherence of Redis

  • Disk-based met een update-in-plaats schrijft, zoals MySQL ISAM of MongoDB

  • Commitlog-gebaseerd zijn, zoals alle traditionele OLTP-databases (Oracle, SQL Server, etc.)

in-memory benaderingen kunnen bereiken laaiende snelheid, maar ten koste van wordt beperkt tot een relatief kleine dataset. De meeste workloads hebben relatief kleine ” hot ” (actieve) subset van hun totale data; systemen die de hele datset nodig hebben om in het geheugen te passen in plaats van alleen het actieve deel zijn prima voor caches, maar een slechte pasvorm voor de meeste andere toepassingen. Omdat de gegevens in het geheugen alleen, het zal proces beëindiging niet overleven. Daarom worden deze soorten gegevensopslag niet als persistent beschouwd.

de eenvoudigste manier om persistentie toe te voegen aan een in-memory systeem is met periodieke snapshots naar de schijf met een configureerbaar interval. Dus, u kunt verliezen tot dat interval de waarde van updates.

Update-in-place en commitlog-gebaseerde systemen slaan onmiddellijk op in niet-vluchtig geheugen, maar alleen commitlog-gebaseerde persistentie zorgt voor duurzaamheid — de D in zuur — bij elke write bleef staan voordat het succes naar de client wordt geretourneerd.

Cassandra implementeert een op commit-log gebaseerd persistence-ontwerp, maar biedt tegelijkertijd aanpasbare duurzaamheidsniveaus. Hierdoor kunt u beslissen wat de juiste afweging is tussen veiligheid en prestaties. U kunt ervoor kiezen, voor elke schrijfbewerking, om te wachten tot die update wordt gebufferd naar het Geheugen, Geschreven naar schijf op een enkele machine, geschreven naar schijf op meerdere machines, of zelfs geschreven naar schijf op meerdere machines in verschillende datacenters. Of, u kunt ervoor kiezen om te accepteren schrijft een snel mogelijk, de bevestiging van hun ontvangst onmiddellijk voordat ze zelfs volledig zijn gedeserialiseerd van het netwerk.

aan het eind van de dag, bent u de enige die weet wat de juiste prestatie/duurzaamheid trade off is voor uw gegevens. Het maken van een weloverwogen beslissing over data store technologieën is van cruciaal belang voor het aanpakken van deze afweging op uw voorwaarden. Omdat Cassandra een dergelijke afstembaarheid biedt, is het een logische keuze voor systemen met een behoefte aan een duurzame, performante dataopslag.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.