Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді

MIT инженерлер тобы деректермен тиімдірек жұмыс істеу үшін объектіге бағытталған жад иерархиясын әзірледі. Мақалада біз оның қалай ұйымдастырылғанын түсінеміз.

Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді
/ PxМұнда /П.Д

Өздеріңіз білетіндей, заманауи процессорлардың өнімділігінің өсуі жадқа кіру кезінде кідірістің сәйкес төмендеуімен бірге жүрмейді. Көрсеткіштердің жылдан жылға өзгеруінің айырмашылығы 10 есеге дейін жетуі мүмкін (PDF, 3 бет). Нәтижесінде қол жетімді ресурстарды толық пайдалануға мүмкіндік бермейтін және деректерді өңдеуді баяулататын тар жол пайда болады.

Өнімділік айыппұлы декомпрессиялық кешігу деп аталады. Кейбір жағдайларда дайындық деректерін ашу 64 процессор цикліне дейін созылуы мүмкін.

Салыстыру үшін: жылжымалы нүктелі сандарды қосу және көбейту басып алу он циклден аспайды. Мәселе мынада: жад бекітілген өлшемдегі деректер блоктарымен жұмыс істейді, ал қолданбалар деректердің әртүрлі типтерін қамтитын және өлшемдері бойынша бір-бірінен ерекшеленетін объектілермен жұмыс істейді. Мәселені шешу үшін MIT инженерлері деректерді өңдеуді оңтайландыратын объектіге бағытталған жады иерархиясын жасады.

Технология қалай жұмыс істейді

Шешім үш технологияға негізделген: Hotpads, Zippads және COCO қысу алгоритмі.

Хотпадтар – бұл скретчпад регистр жадысының бағдарламалық қамтамасыз ету иерархиясы (скрепшт). Бұл регистрлер төсемдер (подтар) деп аталады және олардың үшеуі бар - L1-ден L3-ке дейін. Олар әртүрлі өлшемдегі нысандарды, метадеректерді және көрсеткіштер массивтерін сақтайды.

Негізінде, архитектура кэш жүйесі болып табылады, бірақ нысандармен жұмыс істеу үшін нақтыланған. Нысан орналасқан төсеніш деңгейі оның қаншалықты жиі қолданылатынына байланысты. Егер деңгейлердің бірі «толып кетсе», жүйе Java немесе Go тіліндегі «қоқыс жинаушыларға» ұқсас механизмді іске қосады. Ол қай нысандардың басқаларға қарағанда жиі қолданылатынын талдайды және оларды деңгейлер арасында автоматты түрде жылжытады.

Zippads Hotpads негізінде жұмыс істейді - иерархияның соңғы екі деңгейіне - L3 тақтасына және негізгі жадқа кіретін немесе шығатын деректерді мұрағаттау және ашу. Бірінші және екінші алаңдарда деректер өзгеріссіз сақталады.

Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді

Zippads нысандарды 128 байтқа дейін қысады. Үлкенірек нысандар бөліктерге бөлінеді, содан кейін олар жадының әртүрлі аймақтарына орналастырылады. Әзірлеушілер жазғандай, бұл тәсіл тиімді пайдаланылатын жад коэффициентін арттырады.

Нысандарды сығу үшін COCO (объектілер арасындағы қысу) алгоритмі қолданылады, оны кейінірек талқылаймыз, бірақ жүйе онымен жұмыс істей алады. Базалық-Дельта-жедел немесе ҚФФ. COCO алгоритмі дифференциалды қысудың бір түрі болып табылады (дифференциалды қысу). Ол нысандарды «негізге» салыстырады және қайталанатын биттерді жояды - төмендегі диаграмманы қараңыз:

Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді

MIT инженерлерінің айтуынша, олардың объектіге бағытталған жады иерархиясы классикалық тәсілдерге қарағанда 17% жылдамырақ. Ол өзінің құрылымы бойынша қазіргі қолданбалы бағдарламалардың архитектурасына әлдеқайда жақын, сондықтан жаңа әдіс әлеуетке ие.

Ең алдымен, үлкен деректермен және машиналық оқыту алгоритмдерімен жұмыс істейтін компаниялар технологияны қолдана бастайды деп күтілуде. Тағы бір әлеуетті бағыт – бұлтты платформалар. IaaS провайдерлері виртуализациямен, сақтау жүйелерімен және есептеу ресурстарымен тиімдірек жұмыс істей алады.

Біздің қосымша ресурстарымыз бен ресурстарымыз:

Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді «IaaS қалай құрастырамыз»: 1cloud жұмысы туралы материалдар

Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді 1cloud бұлтты архитектурасының эволюциясы
Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді 1бұлтта нысанды сақтау қызметі

Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді HTTPS жүйесіне ықтимал шабуылдар және олардан қалай қорғауға болады
Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді Үздіксіз жеткізу және үздіксіз интеграция тәсілдерінің қандай ұқсастықтары мен айырмашылықтары бар?
Нысанға бағытталған жад архитектурасында қысу қалай жұмыс істейді Интернетте серверді қалай қорғауға болады: 1бұлттық тәжірибе

Ақпарат көзі: www.habr.com

пікір қалдыру