Video: Wissen in Serie: Schalen drechseln (Teil 1) 2024
Een veel voorkomend kenmerk van NoSQL-systemen is hun vermogen om te schalen over veel commodity-servers. Deze relatief goedkope platforms betekenen dat je databases kunt opschalen door een nieuwe server toe te voegen in plaats van oude hardware te vervangen door nieuwe, krachtigere hardware in één enkele opname.
Er zijn veelvuldig gebruiksmogelijkheden die u snel zullen dwingen om uit te schalen. Deze omvatten
-
U ontvangt statusrapporten en logberichten vanuit een IT-landschap. Voor dit scenario zijn snelle innamestijden vereist, maar waarschijnlijk is geen geavanceerde analyseondersteuning vereist.
-
U wilt snelle caching voor complexe query's. Misschien wilt u de laatste nieuwsberichten op een website ophalen. Hier leest u dat caches voorrang krijgen op query- of inslelsnelheden.
Het enige dat de prestaties van alle NoSQL-databases gemeen hebben, is dat u niet op gepubliceerde gegevens kunt vertrouwen - niets hiervan - om erachter te komen wat de prestaties waarschijnlijk zullen zijn op uw gegevens, voor uw eigen gebruik.
Je kunt zeker niet vertrouwen op de belofte van een bepaalde databaseleverancier over prestaties! Veel leveranciers citeren hoge opnamesnelheden tegen een kunstmatige use-case die geen realistisch gebruik van hun database is, als bewijs van de suprematie van hun database.
Het probleem is echter dat deze zelfde onderzoeken de zoeksnelheid volledig negeren. Wat heeft het voor zin om gegevens op te slaan als je het nooit gebruikt?
Deze onderzoeken kunnen ook worden uitgevoerd op systemen waarbij belangrijke functies zijn uitgeschakeld. Beveiligingsindexen zijn mogelijk niet ingeschakeld of misschien is ACID-transactieondersteuning uitgeschakeld tijdens het onderzoek, zodat gegevens snel worden opgeslagen, maar er is geen garantie dat het veilig is.
Dit betekent allemaal dat je je eigen testen moet doen, wat gemakkelijk genoeg is, maar zorg ervoor dat de test zo dicht mogelijk bij je uiteindelijke systeem komt. Het heeft bijvoorbeeld geen zin om een enkele server te testen als u van plan bent om te schalen naar 20 servers. Zorg er in het bijzonder voor dat u een juiste mix hebt van gegevens over het opnemen, wijzigen en opvragen van gegevens.
Overweeg om uw NoSQL-leverancier de volgende vragen te stellen:
-
Kunt u ervoor zorgen dat alle vermelde maat- en prestatiegegevens betrekking hebben op ACID-transacties tijdens ingest die real-time indexering ondersteunen en die een realistische mix van ingest en read bevatten / queryverzoeken?
-
Biedt uw product functies waarmee u de capaciteit van een server eenvoudig kunt vergroten?
-
Biedt uw product functies die het gemakkelijk maken om ongebruikte servercapaciteit te verwijderen?
-
Is de gegevensvraagsnelheid van uw product beperkt door de hoeveelheid informatie die in het RAM-geheugen moet worden opgeslagen?
-
Maakt uw product gebruik van een strategie voor geheugenkaarten waarbij alle indexen in het RAM-geheugen moeten worden bewaard voor een adequate prestatie (geheugen toegewezen betekent dat de maximale hoeveelheid opgeslagen gegevens gelijk is aan de hoeveelheid fysiek RAM die is geïnstalleerd)?
-
Kan uw database sub-tweede queryresponstijden behouden tijdens het ontvangen van hoogfrequente updates?
-
Zorgt het systeem ervoor dat er geen downtime vereist is om servercapaciteit toe te voegen of te verwijderen?
-
Zorgt het systeem ervoor dat informatie onmiddellijk beschikbaar is voor een zoekopdracht nadat deze aan de database is toegevoegd?
-
Zorgt het systeem ervoor dat de gegevensbeveiliging wordt gehandhaafd zonder de vraagsnelheid te beïnvloeden?
-
Zorgt het systeem ervoor dat de scale-out en scale-back-mogelijkheden van de database scriptbaar zijn en dat ze zullen worden geïntegreerd met de door u gekozen server provisioning-software (bijvoorbeeld VMWare en Amazon Cloud Formation)?