Segmentointi (tietokannat)

Sharding ( englanniksi  sharding ) on ​​lähestymistapa, joka sisältää tietokantojen , niiden yksittäisten objektien tai hakukoneen indeksien jakamisen itsenäisiksi segmenteiksi , joista jokaista ohjaa erillinen tietokantapalvelimen esiintymä , joka sijaitsee yleensä erillisessä laskentasolmussa.

Toisin kuin osiointi , joka sisältää tietokantaobjektien osien erillisen tallennuksen yhden DBMS-ilmentymän hallinnassa, jakaminen mahdollistaa hajautetun laskentatekniikan käytön , mutta se on vaikeampi toteuttaa, koska se vaatii useiden ilmentymien koordinointia tällä tavalla. että vuorovaikutus koko segmenttijoukon kanssa suoritetaan kuin yhden tietokannan kanssa.

Osa tietokannan tiedoista voi olla kaikissa sirpaleissa, ja osa voi olla vain yhdessä tai muutamassa sirpaleessa. Esimerkiksi pienet taulukot, joita käytetään hitaasti muuttuvina ulottuvuuksina , voivat olla täysin edustettuina kussakin sirpaleessa, kun taas suuret tietotaulukot on jaettu tasaisesti jollakin avaimella sirpaleiden välillä. Kun kaikkien sirpaleiden tietoja käytetään usein, liitostoiminnot ovat tehokkaampia ja samalla varmistetaan, että kaikki sirpaleet päivittyvät synkronisesti.

Sharing- tekniikkaa käytetään laajalti NoSQL DBMS:ssä (kuten Cassandra , Couchbase , MongoDB ), massiivisesti rinnakkaisissa analyyttisissä DBMS:issä ( Teradata Database , Netezza , Greenplum ), vaakasuoraan skaalautuvissa hakukoneissa ( Elasticsearch , Solr ). Lisäksi tekniikka on toteutettu joissakin perinteisissä relaatiotietokantajärjestelmissä ( Oracle Databasen jakamisvaihtoehto ). Jos DBMS ei tue segmentointia, tämän tekniikan toteuttamiseksi pyynnöt reititetään useisiin DBMS-esiintymiin sovelluspuolelta; On olemassa useita väliohjelmistoprojekteja , jotka toteuttavat läpinäkyvää jakoa ( dbShards , Apache ShardingShere , ScaleArc , MaxScale for MariaDB ).

Kirjallisuus