Кіріспе

Тамырланған ағаш. B+ ағашы – әр түйінге балаларының саны өзгеріп отыратын, бірақ көбінесе көп болатын ағаш. B+ ағашы тамырдан, ішкі түйіндерден және жапырақтардан тұрады. Тамыр жапырақ немесе екі немесе одан көп баласы бар түйін болуы мүмкін. B+ ағашын B ағашының бір түрі деп қарастыруға болады, онда әр түйінде тек кілттер (кілт-мәнді жұптар емес) болады, ал төменгі жағына байланысқан жапырақтары бар қосымша деңгей қосылады. B+ ағашының басты артықшылығы – деректерді блокқа бағытталған сақтау ортасында, әсіресе файлдық жүйелерде тиімді іздеу үшін сақтау. Бұл, ең алдымен, екілік іздеу ағаштарынан айырмашылығы, B+ ағаштарында өте жоғары таралу коэффициенті (бір түйіндегі бала түйіндерге сілтемелер саны) болады.

Ішкі тораптардағы интервалдар

Анықтама бойынша, B+ ағашындағы әрбір мән – дәл бір жапырақ түйінінде кездесетін кілт. Әрбір кілт басқа барлық кілттермен тікелей салыстырылуы керек, бұл толық реттелуді қамтамасыз етеді. Бұл, өз кезегінде, әрбір жапырақ түйінінің кілттерін әрқашан реттелген күйде ұстауына мүмкіндік береді, ал әрбір ішкі түйін белгілі бір жапырақтағы мәндердің үзділіссіз диапазонын көрсететін реттелген интервалдар жинағын құра алады. Ағаш бойымен жоғарырақ орналасқан ішкі түйіндер өздерінің интервалдарын құра алады, олар өздерінің бағынышты ішкі түйіндеріндегі интервалдарды рекурсивті түрде біріктіреді. Соңында, B+ ағашының түбірі ағаштағы барлық мәндердің толық диапазонын көрсетеді, мұнда әрбір ішкі түйін – кіші диапазонды көрсетеді. Бұл рекурсивті диапазон ақпаратын сақтау үшін, ішкі түйіндерде i индексімен белгіленген бағынышты түйіндегі аралықтың ең кіші элементін көрсететін кілттердің дубликаттары болуы керек (ол өзі ішкі түйін немесе жапырақ түйіні болуы мүмкін). Мұнда m – берілген ішкі түйіннің бағынышты түйіндерінің нақты саны.

Іске асыру

B+ ағашының жапырақтары (ең төменгі индекстік блоктар) көбінесе бір-бірімен байланысты тізім түрінде байланыстырылады; бұл диапазондық сұрауларды немесе блоктар бойынша реттік итерацияны (қайталауды) оңай және тиімді етеді (бірақ аталған жоғарғы шекке осы қосымшасыз да қол жеткізуге болады). Бұл ағаштың көлемдік жадты немесе күтіп-ұстауды айтарлықтай арттырмайды. Бұл B+ ағашының B ағашынан басты артықшылығының бірі болып табылады; B ағашында барлық кілттер жапырақтарда болмағандықтан, мұндай реттік байланысты тізім құру мүмкін емес. Сондықтан B+ ағашы деректер базасы жүйесінің индексі ретінде ерекше пайдалы, себебі деректер әдетте дискіде сақталады, және B+ ағашы деректерді тікелей сақтау үшін тиімді құрылымды ұсынуға мүмкіндік береді (бұл APFS жүйесінде файлдық жүйе объектілерінің идентификаторларын олардың дискідегі орналасқан жерімен байланыстыру үшін, сондай-ақ файлдық жүйе жазбаларын (каталогтарды қоса) сақтау үшін B+ ағаштарының қолданылуында сипатталған). Алайда, бұл ағаштардың жапырақ түйіндерінде бауырлас сілтемелер жоқ.

Деректер базасы жүйелері

IBM Db2, Informix сияқты реляциялық деректер қорын басқару жүйелері кестелік индекс үшін осы типтегі ағашты қолдайды, бірақ әрбір жүйе негізгі B+ ағаш құрылымын өзгерістермен және кеңейтулермен іске асырады. CouchDB және Tokyo Cabinet сияқты көптеген NoSQL деректер қорын басқару жүйелері де деректерге қол жеткізу және сақтау үшін осы типтегі ағашты қолдайды. Жоғары өлшемді деректер базасында белгілі бір сұранысқа ұқсас объектілерді табу – мұндай жүйелердегі ең көп қолданылатын және ең қымбат процедуралардың бірі. Мұндай жағдайларда B+ ағашын пайдаланып ең жақын көршіні табу өнімді.

i қашықтық

B+ ағашы iDistance деп аталатын индекстелген іздеу әдісін құру үшін тиімді пайдаланылады. iDistance жоғары өлшемді метрикалық кеңістіктерде k жақын көршіні (kNN) іздеуді жүзеге асырады. Осы жоғары өлшемді кеңістіктердегі деректер кеңістіктік немесе бөлу стратегиялары бойынша бөлінеді, әр бөлімге бөлімге жақын индекстік мән беріледі. Содан кейін, бұл нүктелер B+ ағашы арқылы тиімді іске асырылып, сұраныстар бір өлшемді аралықта іздеуге айналады. Яғни, iDistance техникасын ретті сканерлеуді үдетудің бір жолы деп қарастыруға болады. Деректер файлының басынан соңына дейін сканерлеудің орнына, iDistance сканерлеуді ең жақын көршілерді өте жоғары ықтималдықпен ертерек табуға болатын жерлерден бастайды.

NVRAM

Ұшпайтын кездейсоқ сәйкес жад (NVRAM) заттар интернеті (IoT) жүйесіндегі негізгі жадқа қол жеткізу әдісі ретінде B+ ағаш құрылымын пайдаланады, себебі ол статикалық емес қуат тұтынуға және жад ұяшықтарының жоғары сенімділігіне ие. B+ деректердің жадқа трафигін тиімді басқара алады. Сонымен қатар, ең көп қолданылатын жапырақтардың немесе анықтамалық нүктелердің жиілігін басқарудың жетілдірілген стратегиялары B+ ағашының деректер базасы жүйелерінің қызмет ету мерзімін ұзартуда маңызды нәтижелер көрсетуде.