.td_uid_42_5cca8895421f3_rand.td-a-rec-img{text-align:left}.td_uid_42_5cca8895421f3_rand.td-a-rec-img img{margin:0 auto 0 0}Facebook обяви, че вече е отворен

...
.td_uid_42_5cca8895421f3_rand.td-a-rec-img{text-align:left}.td_uid_42_5cca8895421f3_rand.td-a-rec-img img{margin:0 auto 0 0}Facebook обяви, че вече е отворен
Коментари Харесай

Facebook отвори кода за реализацията на хеш таблиците F14

.td_uid_42_5cca8895421f3_rand.td-a-rec-img{text-align:left}.td_uid_42_5cca8895421f3_rand.td-a-rec-img img{margin:0 auto 0 0}
Фейсбук разгласи, че към този момент е отворен сорс кода за реализацията на хеш таблиците F14 . Таблиците F14 се употребяват в инфраструктурата на Фейсбук като подмяна на множеството други видове хеш таблици, тъй като осезателно понижават употребяваната памет без загуба на продуктивността. F14 доста превъзхожда по продуктивност хеш таблицата google::sparse_hash_map, каято до неотдавна се считаше за най-ефективна във връзка с употребяваната памет. Кодът на плана е написан на програмния език С++ и е включен в библиотеката Folly.

F14 е от семейството логаритми със система за разрешаване на колизиите въз основата на двойно хеширане с 14 поредни проби (в една клетка на хеш таблицата се съхранява верига от 14 слота, а дистанциите сред клетките се пресмятат благодарение на спомагателна хеш функция). За ускорение на интервенциите за пречистване на клетките се употребяват векторните указания SSE2 за x86_64 системите и NEON за Aarch64, които дават опция за паралелна обработка на интервенциите за избор на слотове с веригите основни смисли и отсяването на основните смисли в самата верига. Обработват се по 14 слота едновременно, което е оптималния баланс сред успеваемостта на потребление на процесорния кеш и броя исблъсъци.


.td_uid_41_5cca889541d23_rand.td-a-rec-img{text-align:left}.td_uid_41_5cca889541d23_rand.td-a-rec-img img{margin:0 auto 0 0}
Друга специфичност на F14 е опцията за избор на разнообразни тактики за запазване на данните:
F14NodeMap: минимум употребена памет за ключове с огромен и междинен размерF14ValueMap: минимално потребление наизуст за ключове с дребен размерF14VectorMap: най-бърз работа при огромни таблици и комплицирани ключове, само че мудна работа при дребни таблици и опростени ключовеF14FastMap: комбинирана тактика. Ако ключът е по-малък от 24 байта, избира се F14ValueMap, а в случай че е по-голям – F14VectorMap.td_uid_43_5cca8895425dd_rand.td-a-rec-img{text-align:left}.td_uid_43_5cca8895425dd_rand.td-a-rec-img img{margin:0 auto 0 0}
Източник: kaldata.com


СПОДЕЛИ СТАТИЯТА


КОМЕНТАРИ
НАПИШИ КОМЕНТАР