Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці

Каманда інжынераў з MIT распрацавала аб'ектна-арыентаваную іерархію памяці для больш эфектыўнай працы з дадзенымі. У артыкуле разбіраемся з тым, як ён уладкованы.

Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці
/ PxТут / PD

Як вядома, рост прадукцыйнасці сучасных CPU не суправаджаецца адпаведным зніжэннем затрымкі пры звароце да памяці. Розніца ў змене паказчыкаў ад года да года можа даходзіць да 10 разоў (PDF, стар.3). Як вынік - узнікае бутэлькавае рыльца, якое не дае ў поўнай меры карыстацца наяўнымі рэсурсамі і запавольвае апрацоўку дадзеных.

Шкода прадукцыйнасці наносіць так званая дэкампрэсійная затрымка. У некаторых выпадках на падрыхтоўчую дэкампрэсію дадзеных можа сыходзіць да 64 працэсарных цыклаў.

Для параўнання: складанне і множанне лікаў з якая плавае кропкай займаюць не больш за дзесяць цыклаў. Праблема ў тым, што памяць працуе з блокамі дадзеных фіксаванага памеру, а прыкладанні - аперуюць аб'ектамі, якія могуць утрымоўваць розныя тыпы дадзеных і адрознівацца сябар ад сябра па памеры. Каб вырашыць праблему, інжынеры з MIT распрацавалі аб'ектна-арыентаваную іерархію памяці, якая аптымізуе апрацоўку дадзеных.

Як уладкована тэхналогія

У аснове рашэння ляжаць тры тэхналогіі: Hotpads, Zippads і алгарытм сціску COCO.

Hotpads – гэта праграмна-кіраваная іерархія звышаператыўнай рэгістравай памяці (скрэтч). Гэтыя рэгістры называюцца пэдамі (pads) і іх тры штукі – ад L1 да L3. У іх захоўваюцца аб'екты розных памераў, метададзеныя і масівы паказальнікаў.

Па сутнасці, архітэктура ўяўляе сабой сістэму кэшаў, але заменчаную для працы з аб'ектамі. Узровень пэда, на якім знаходзіцца аб'ект, залежыць ад таго, як часта яго выкарыстоўваюць. Калі адзін з узроўняў "перапаўняецца", сістэма запускае механізм, аналагічны "зборшчыкам смецця" у мовах Java або Go. Ён аналізуе, якія аб'екты выкарыстоўваецца радзей астатніх і аўтаматычна перамяшчае іх паміж узроўнямі.

Zippads працуе на аснове Hotpads - архівуе і разархівуе дадзеныя, якія паступаюць або пакідаюць два апошнія ўзроўню іерархіі - пэд L3 і асноўную памяць. У першым і другім пэдах дадзеныя захоўваюцца ў нязменным выглядзе.

Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці

Zippads сціскае аб'екты, чый аб'ём не перавышае 128 байт. Буйнейшыя аб'екты дзеляцца на часткі, якія затым размяшчаюцца ў розных участках памяці. Як пішуць распрацоўшчыкі, такі падыход павышае каэфіцыент эфектыўна выкарыстоўванай памяці.

Для сціску аб'ектаў ужываецца алгарытм COCO (Cross-Object COmpression), аб якім мы распавядзем далей, хоць сістэма здольная працаваць і з Base-Delta-Immediate або FPC. Алгарытм COCO уяўляе сабой разнавіднасць рознаснага сціску (differential compression). Ён параўноўвае аб'екты з «базавымі» і выдаляе паўтараюцца біты - гл. схему ніжэй:

Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці

Па словах інжынераў з MIT, іх аб'ектна-арыентаваная іерархія памяці на 17% прадукцыйней класічных падыходаў. Яна значна бліжэй па сваёй прыладзе да архітэктуры сучасных прыкладанняў, таму ў новага метаду ёсць патэнцыял.

Чакаецца, што ў першую чаргу тэхналогію могуць пачаць выкарыстоўваць кампаніі, якія працуюць з вялікімі дадзенымі і алгарытмамі машыннага навучання. Яшчэ адзін патэнцыйны кірунак - хмарныя платформы. IaaS-правайдэры атрымаюць магчымасць больш эфектыўна працаваць з віртуалізацыяй, сістэмамі захоўвання дадзеных і вылічальнымі рэсурсамі.

Нашы дадатковыя рэсурсы і крыніцы:

Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці "Як мы будуем IaaS": матэрыялы аб працы 1cloud

Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці Эвалюцыя архітэктуры аблокі 1cloud
Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці Паслуга аб'ектнага сховішча ў 1cloud

Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці Патэнцыйныя напады на HTTPS і спосабы абароны ад іх
Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці Чым падобныя і чым адрозніваюцца падыходы Continuous Delivery і Continuous Integration
Як працуе сціск у аб'ектна-арыентаванай архітэктуры памяці Як абараніць сервер у інтэрнэце: досвед 1cloud

Крыніца: habr.com

Дадаць каментар