Придвижете се над Memcached и Redis, ето и Hollow на Netflix

След две години вътрешна употреба, Netflix предлага нов проект с отворен код като мощна опция за кеширане на набори от данни, които се променят постоянно.

Hollow е Java библиотека и набор от инструменти, насочени към кеширане в паметта на набори от данни с размер до няколко гигабайта. Netflix казва, че целта на Hollow е тройна: тя е предназначена да бъде по-ефективна при съхранение на данни; може да предостави инструменти за автоматично генериране на API за удобен достъп до данните; и той може автоматично да анализира моделите за използване на данни, за да се синхронизира по-ефективно със задната част.

Нека запазим това между нас

Повечето сценарии за кеширане на данни в система, в която те не се съхраняват - система „потребител”, а не система производител, включват използване на продукт като Memcached или Redis. Hollow напомня и на двата продукта, тъй като използва съхранение в паметта за бърз достъп, но не е действително хранилище на данни като Redis.

За разлика от много други системи за кеширане на данни, Hollow е предназначен да бъде свързан към определен набор от данни - дадена схема с определени полета, обикновено JSON поток. Това изисква известна подготвителна работа, въпреки че Hollow предоставя някои инструменти за частична автоматизация на процеса. Причината за това: Hollow може да съхранява данните в паметта като силно набрани парчета с фиксирана дължина, които не са обект на събирането на боклука на Java. В резултат на това те имат по-бърз достъп от конвенционалните Java обекти.

Друго предполагаемо благо с Hollow е, че той предлага гама от инструменти за работа с данните. След като дефинирате схема за данните, Hollow може автоматично да създаде Java API, който може да предостави данни за автоматично довършване на IDE. Данните също могат да бъдат проследявани, когато се променят, така че разработчиците имат достъп до моментални снимки, разлики между моментните снимки и възстановяване на данните.

По-бързо наоколо

Голяма част от предимствата, които Netflix твърди за Hollow, включват основна оперативна ефективност - а именно, по-бързо време за стартиране на сървърите и по-малко бърза памет. Но инструментите за моделиране и управление на данни на Hollow също са предназначени да помогнат с развитието, а не просто да ускорят производството.

„Представете си, че можете бързо да преместите целия си набор от производствени данни - текущ или от която и да е точка в близкото минало - до работна станция за локално развитие, да я заредите, след което точно да възпроизведете конкретни производствени сценарии“, казва Netflix в уводната си публикация в блога.

Едно предупреждение е, че Hollow не е подходящ за набори от данни с всякакви размери - „KB, MB и GB, но не и TB“ е начинът, по който компанията го поставя в своята документация. Това каза, че Netflix също така предполага, че Hollow намалява количеството разпръскване, необходимо от кеширан набор от данни. „С правилната рамка и малко моделиране на данни този праг на [памет] вероятно е много по-висок, отколкото си мислите“, пише Netflix.