Sharding
Sharding is de praktijk van het optimaliseren van databasebeheersystemen door de rijen of kolommen van een grotere databasetabel te scheiden in meerdere kleinere tabellen. De nieuwe tabellen worden “scherven” (of partities) genoemd, en elke nieuwe tabel heeft hetzelfde schema maar unieke rijen (zoals het geval is voor “horizontale sharding”) of heeft een schema dat een goede subset is van het schema van de oorspronkelijke tabel (zoals het geval is voor “verticale sharding”).
Waarom wordt Sharding gebruikt?
Sharding is een algemeen concept in schaalbare databasearchitecturen. Door een grotere tabel te delen, kunt u de nieuwe stukjes gegevens, logische scherven genaamd, opslaan over meerdere knooppunten om horizontale schaalbaarheid en verbeterde prestaties te bereiken. Zodra de logische scherf is opgeslagen op een ander knooppunt, wordt het aangeduid als een fysieke scherf.
wanneer u een database op een enkele machine draait, bereikt u uiteindelijk de limiet van de hoeveelheid computerbronnen die u kunt toepassen op alle query ‘ s, en bereikt u uiteraard een maximale hoeveelheid gegevens waarmee u efficiënt kunt werken. Door horizontaal uit te schalen, kunt u een flexibel databaseontwerp inschakelen dat de prestaties op twee belangrijke manieren verhoogt:
- Met massaal parallelle verwerking kunt u voor elke query profiteren van alle rekenbronnen in uw cluster.
- omdat de afzonderlijke scherven kleiner zijn dan de logische tabel als geheel, moet elke machine minder rijen scannen wanneer hij reageert op een query.
horizontale sharding is effectief wanneer query ‘ s de neiging hebben om een subset van rijen te retourneren die vaak gegroepeerd zijn. Query ‘ s die gegevens filteren op basis van korte datumbereiken zijn bijvoorbeeld ideaal voor horizontale sharding, omdat het datumbereik het query noodzakelijkerwijs beperkt tot slechts een subset van de servers.
verticale sharding is effectief wanneer query ‘ s de neiging hebben slechts een subset van kolommen van de gegevens terug te geven. Bijvoorbeeld, als sommige query ‘ s vragen alleen namen, en anderen vragen alleen adressen, dan kunnen de namen en adressen worden gedeeld op afzonderlijke servers.
ook kunnen sharded databases een hogere beschikbaarheid bieden. In het geval van een storing op een unsharded database, de hele applicatie is onbruikbaar. Met een sharded-database zijn alleen de delen van de applicatie die op de ontbrekende stukjes gegevens vertrouwden onbruikbaar. In de praktijk verminderen sharded databases vaak de impact van dergelijke uitval door back-upscherven op extra knooppunten te repliceren.
Wat is het verschil tussen Sharding en partitionering?
Sharding en partitionering gaan beide over het opdelen van een grote dataset in kleinere subsets. Het verschil is dat sharding impliceert dat de gegevens worden verspreid over meerdere computers, terwijl partitioneren niet. Partitioneren gaat over het groeperen van subsets van gegevens binnen een enkele database instantie. In veel gevallen worden de termen sharding en partitionering zelfs synoniem gebruikt, vooral wanneer ze worden voorafgegaan door de termen “horizontaal” en “verticaal”.”Dus,” horizontale sharding ” en “horizontale partitionering” kan hetzelfde betekenen.
verwante onderwerpen
In-Memory Computation
Edge Computing
Grid Computing
verder lezen
Hazelcast IMDG 3.12 introduceert CP-subsysteem