TokuMX
Deweloperzy | Tokutek |
---|---|
Wersja stabilna | 2.0.0 / 30 września 2014
|
Magazyn | |
Typ | Baza danych |
Licencja | Powszechna Licencja Publiczna GNU Affero (wersja 3) |
Strona internetowa |
TokuMX to dystrybucja MongoDB o otwartym kodzie źródłowym , która między innymi zastępuje domyślną strukturę danych B-drzewa znalezioną w podstawowej dystrybucji MongoDB indeksem drzewa fraktalnego . Jest to bezpośredni zamiennik MongoDB (aplikacje będą działać „tak jak jest”), który oferuje ulepszenia skalowalności i wydajności związane z indeksowaniem drzew fraktali. Dodaje również obsługę blokowania na poziomie dokumentu, obsługę transakcji z ACID i MVCC i optymalizacja replikacji; nie obsługuje wyszukiwania pełnotekstowego.
TokuMX został specjalnie zaprojektowany z myślą o wysokiej wydajności przy obciążeniach intensywnie zapisujących. Osiąga to za pomocą indeksu drzewa fraktali, który zastępuje 40-letnie indeksowanie B-drzew i jest oparty na algorytmach nieświadomych pamięci podręcznej . To podejście do budowania wydajnych pamięciowo systemów zostało pierwotnie opracowane wspólnie przez naukowców z Massachusetts Institute of Technology , Rutgers University i State University of New York w Stony Brook (SUNY). TokuMX to skalowalna , zgodna z ACID i MVCC dystrybucja MongoDB, która zapewnia indeksowanie oparte na ulepszeniach zapytań, oferuje modyfikacje schematu online i zmniejsza opóźnienia urządzeń podrzędnych zarówno dla dysków twardych, jak i pamięci flash . Dodaje również transakcje z niezawodnością MVCC i ACID do dowolnej aplikacji MongoDB, dzięki czemu MongoDB nadaje się do znacznie szerszego zakresu rozwiązań.
Większość plików źródłowych TokuMX jest udostępniana na warunkach Powszechnej Licencji Publicznej GNU Affero (AGPL). Biblioteka TokuKV Fractal Tree Indexing jest udostępniana na warunkach Powszechnej Licencji Publicznej GNU (GPL) w wersji 2, z dodatkową licencją patentową.
B-drzewa
Większość relacyjnych baz danych używa indeksów w celu zwiększenia wydajności zapytań. Bazy danych mogą wykorzystywać indeksy do znacznego zmniejszenia ilości danych, które badają podczas odpowiadania na zapytania. Indeksy są zwykle implementowane za pomocą B-drzew, struktury danych opisanej po raz pierwszy w 1970 r. Struktura danych B-drzewa umożliwia takie operacje, jak wstawianie danych i iteracja sortowania, podstawowa operacja używana przez indeks. W zależności od obciążenia i implementacji wydajność B-drzewa może być ograniczona przez losowe charakterystyki we/wy dysków. Ponadto, podczas gdy świeżo załadowane bazy danych mają zwykle dobre zachowanie sekwencyjne, zachowanie tego zachowania staje się coraz trudniejsze w miarę rozrastania się bazy danych, co skutkuje większą liczbą losowych operacji we/wy i wyzwaniami związanymi z wydajnością.
Wraz z pojawieniem się dużych zbiorów danych i stale rosnącymi potrzebami baz danych w XXI wieku, stworzono wiele niszowych baz danych, aby ominąć ograniczenia 50-letniego indeksowania B-drzew. Należą do nich niektóre zoptymalizowane pod kątem odczytu, inne zoptymalizowane pod kątem zapisu oraz szereg innych baz danych specjalnego przeznaczenia zaprojektowanych dla wąskiego zestawu problemów.
Indeksy drzew fraktalnych
Przegląd
indeksowania drzew fraktalnych to nowe podejście do indeksowania, które zastępuje B-drzewa.
Indeksy drzew fraktalnych realizują te same operacje, co B-drzewo, a zatem są zastępczym zamiennikiem B-drzew. Indeksy drzewa fraktalnego skutecznie zastępują małe, częste zapisy większymi, rzadszymi, umożliwiając lepszą kompresję i wydajność wstawiania. Drzewa fraktalne umożliwiają również wstrzykiwanie wiadomości do drzewa w taki sposób, że zmiany schematu, takie jak dodanie lub usunięcie kolumny lub dodanie indeksu można wykonać online iw tle. W rezultacie można utrzymać więcej indeksów bez spadku wydajności. Dzieje się tak, ponieważ dodawanie danych do indeksów ma tendencję do obciążania wydajności B-drzew, ale dobrze sprawdza się w indeksach drzew fraktalnych. Modyfikacje indeksu drzewa fraktali nie powodują fragmentacji plików bazy danych , więc okresowa konserwacja plików nie jest konieczna.
Używa
Indeksy drzewa fraktalnego można zastosować w wielu aplikacjach charakteryzujących się analizą danych przesyłanych strumieniowo w czasie zbliżonym do rzeczywistego. Mogą być używane jako warstwa przechowywania bazy danych lub jako warstwa przechowywania systemu plików. Gdy są używane w bazie danych, mogą być używane w dowolnym ustawieniu, w którym używane jest B-drzewo, z lepszą wydajnością. Przykłady obejmują: zarządzanie zdarzeniami sieciowymi, internetowe sieci reklamowe, analitykę web 2.0 i strumienia kliknięć oraz zarządzanie kontrolą ruchu lotniczego. Inne zastosowania obejmują przyspieszoną robota dla wyszukiwarek w mediach społecznościowych witryny. Może być również używany do tworzenia indeksów i kolumn online, zapewniając elastyczność zapytań w celu personalizacji e-commerce. Nadaje się również do poprawy wydajności i zmniejszenia istniejących obciążeń na stronach transakcyjnych. Ogólnie sprawdza się dobrze w aplikacjach, które muszą jednocześnie przechowywać pliku dziennika i wykonywać zapytania ad hoc .
Zobacz też
Linki zewnętrzne
- Strona produktu TokuMX
- Kod źródłowy TokuMX na Github
- Porównanie silników pamięci masowej MySQL
- Bloor Research: Czy Twój SQL działa zbyt wolno?
- TokuView – informacje na oficjalnym blogu TokuDB
- DBMS2.com Omówienie Tokuteka