Inhoudsopgave:
Video: Storage Optimization - Reducing the Cost of your Oracle Database Estate (Recorded Webcast Event) 2024
Er zijn tijden dat u snel toegang tot belangrijke gegevens in sleutel / waarde stijl wilt bieden in een relationele database. Deze database kan bijvoorbeeld Berkeley DB (Java Edition voor Voldemort) of MySQL zijn.
Voor sleutelwaarde, zoals toegang tot gegevens, moet een sleutel / waarde-opslag rechtstreeks over een van deze andere databases worden gelaagd. In feite gebruikt u een andere database als opslaglaag in plaats van een combinatie van een bestandssysteem voor opslag en een ingestiepijplijn voor het kopiëren van gegevens uit een relationele database.
Dit proces vereenvoudigt het aanbieden van een sneltoetsenarchief met sleutelwaardes tijdens het gebruik van een traditionele relationele database voor opslag.
Opslaglocaties wijzigen
Verschillende workloads vereisen verschillende opslaglocaties en prestatiekenmerken. Aerospike is geweldig voor hoge inname; Redis is geweldig voor hoge aantallen leesacties. Elke is gebouwd rond een specifieke use-case.
Voldemort hanteert een andere aanpak. In plaats van het sleutelwaardegegevensarchief te behandelen als een afzonderlijke laag van gegevensbeheer, behandelt Voldemort het sleutelwaardeweergave als een API en voegt een in het geheugen geplaatste cachinglaag toe, wat betekent dat u kunt aansluiten op de achtergrond die het meest logisch is voor uw specifieke behoeften.
Als u een eenvoudige schijfopslaglaag wilt, kunt u de Berkeley DB Java Edition-opslagengine gebruiken. Als u in plaats daarvan relationele gegevens wilt opslaan, kunt u MySQL gebruiken als back-end voor Voldemort.
Met deze mogelijkheid in combinatie met aangepaste gegevenstypen kunt u de eenvoudige winkel / ophaal-API van een sleutelruimtewinkel gebruiken om informatie in een andere back-endwinkel effectief terug te halen en direct in cache op te slaan.
Deze benadering staat in schril contrast met de gebruikelijke aanpak van afzonderlijke databases - één in bijvoorbeeld Oracle voor transactiegegevens en een andere in uw sleutel / waardeopslag (bijvoorbeeld Riak). Met deze tweelaagse aanpak moet u code ontwikkelen om gegevens van het ene niveau naar het andere te verplaatsen voor caching. Met Voldemort is er één gecombineerde laag - uw gegevenslaag - dus de extra code is overbodig.
Cachegeheugengegevens opslaan in het geheugen
Voldemort heeft een ingebouwde geheugencache, waardoor de opslag van de opslagengine wordt verminderd en de queryprestaties worden verbeterd. Het is niet nodig om een afzonderlijke caching-laag zoals Redis of Oracle's Coherence Java-applicatie data caching-product bovenaan te gebruiken.
De mogelijkheid om high-speed storage tiering te bieden met caching, is waarom LinkedIn Voldemort gebruikt voor bepaalde krachtige gebruiksgevallen.
Met Voldemort haalt u het beste uit twee werelden: een opslagengine voor uw exacte gegevensvereisten en een snelle cache in het geheugen om de belasting van die engine te verminderen.U krijgt ook een eenvoudige opslagruimte met sleutelwaarden om uw semantiek op te slaan / op te halen bovenop uw opslaglocatie.
Voldemort evalueren
In de Harry Potter boeken hield Lord Voldemort veel magie in zich, zowel goed als slecht, hoewel hij het gebruikte voor het terroriseren van dreuzels. De Voldemort-database kan, zoals blijkt, ook enorme hoeveelheden gegevens opslaan, maar kan overal voor worden gebruikt door datagunianen!
Voldemort is nog steeds een product in ontwikkeling. Veel stukken ontbreken nog, dus het ondersteunt niet de verschillende opslag-engines die u zou verwachten. Deze focus voor de ontwikkelgemeenschap van Voldemort is waarschijnlijk omdat Voldemort is ingebouwd in de Java-programmeertaal, waarvoor een Java Native Interface (JNI) -connector moet worden gebouwd voor integratie met de meeste op C of C ++ gebaseerde databases.
Voldemort heeft echter een goede integratie met seriële frameworks. Ondersteunde frameworks omvatten Java-serialisatie, Avro, Thrift en Protocol Buffers. Dit betekent dat de geleverde API-wrappers overeenkomen met de vertrouwde serialisatiemethode van elke programmeertaal, waardoor de ontwikkeling van applicaties intuïtief is.
Voldemort is niet bestand tegen consistentie, net als andere systemen. Voldemort gebruikt de leesreparatie -aanpak, waarbij inconsistente versienummers voor dezelfde record zijn vastgesteld bij leestijd, in plaats van consistent te blijven op het moment van schrijven.
Er is ook geen secundaire indexering of vraagondersteuning; Voldemort verwacht dat u de faciliteiten van de onderliggende opslaglocatie gebruikt om met die use case om te gaan. Bovendien heeft Voldemort geen native database-triggers of een framework voor waarschuwingen of gebeurtenisverwerking om er een te bouwen.
Als u een sleutewaardewinkel nodig heeft die zeer beschikbaar is, partitietolerant is, wordt uitgevoerd in Java en verschillende back-ends van de opslag gebruikt, dan is Voldemort misschien iets voor u.