Skaalaus ja rajoitukset
storh perustuu ensisijaisesti tiedostoihin; se ei ole relaatiokyselymoottori. Käytännön rajat vertailuarvoineen löytyvät suorituskykytesteistä (50k tietuetta, Apple M1 Pro):
- Yksittäishaku on käytännössä rajoittamaton, kun tiedostojärjestelmä pystyy käsittelemään tiedostomäärän ja kokoelma käyttää UUID-häntäositusta. Yksittäinen luku kestää muutaman mikrosekunnin; yhden tietueen kestävä kirjoitus on fsync-operaation rajoittama, noin muutamaan tuhanteen sekunnissa.
- Segmentoidun lokin läpikäynti, kohdistinluvut ja aikaväliluvut toimivat sujuvasti noin miljoonaan tietueeseen asti, kun segmenttikoot on määritetty työkuormalle sopiviksi. Joukkomaiset lisäykset yltävät kymmeniin tuhansiin tietueisiin sekunnissa; katkenneen lopun palautus toistaa satojatuhansia tietueita sekunnissa uudelleenavauksessa.
- Jonotoiminnot lisäävät tiiviitä tapahtumia yhteen kestävään lokiin, joten töiden lisäys, varaus, valmistuminen, uudelleenjonotus ja tyhjennys eivät aiheuta jokaisesta työstä erillistä tiedostoa sisältävän hakemiston jatkuvaa muutosta. Joukkomaisessa varauksessa ja valmistumisessa lukitukset ja fsync-operaatiot jakautuvat koko erälle.
- Kenttien tiedostokohtaiset läpikäynnit kohteessa
DocStorehidastuvat noin 10k tietueen jälkeen, koska jokainen osumia etsivä läpikäynti joutuu käymään yksittäiset tiedostot läpi. Määritä indeksit suodatettaville kentille; indeksoidut yhtäsuuruuskyselyt valmistuvat noin millisekunnissa kokoelman koosta riippumatta. - storh ei sovellu satunnaisiin relaatiokyselyihin, liitoksiin, runsaasti toissijaisia indeksejä vaativaan suodatukseen eikä monien kenttien analyyttisiin läpikäynteihin. Siirrä kokoelmat SQL-peiliin, kun tarvitset tällaisia lukutapoja; säilytä varsinainen tietovarasto oikeassa tietokannassa, kun tarvitset usean tietueen tapahtumia.
Käytä DocStore-tallennusmoottoria, kun yksittäiset haut ovat pääasiallinen käyttötapa, SegmentedLog-tallennusmoottoria, kun lisäykset ja järjestetyt luvut ovat pääosassa, ja Queue-tallennusmoottoria yksinkertaiseen pysyvään töiden jakeluun. Katso Tallennusmoottorin valinta rinnakkaista vertailua varten.