Эта статья является частью серии Academic Alibaba и взята из статьи WWW 2019, озаглавленной Противоинтуитивные характеристики оптимального распределенного кэширования LRU по ненадежным каналам, написанные Гуокун Цюань, Цзянь Тан и Атилла Эрийлмаз. Полную версию статьи можно прочитать здесь.

Когда вы впервые открываете приложение, вы берете с сервера кучу данных - изображения, текст и всевозможные другие объекты, которые заставляют приложение работать. Если бы вам приходилось повторять этот процесс каждый раз, когда вы заходили в приложение, вы бы потратили драгоценные секунды, которые могли бы потратить на проверку своей электронной почты, сражения с виртуальными викингами или другие действия с приложениями.

К счастью, мы можем использовать кеширование, чтобы избежать многократной загрузки данных с сервера. При кэшировании некоторые данные с сервера хранятся локально, что означает, что в следующий раз вы сможете получить к ним доступ быстрее.

Одним из наиболее распространенных типов кэширования является кэширование наименее недавно использованных (LRU), при котором кэшируются только самые недавно использованные данные. Когда поступают новые данные, но кеш заполнен, данные, которые не использовались долгое время, удаляются, чтобы освободить место. Обеспечение правильной работы этих функций кэширования является ключом к поддержанию производительности системы.

Уловка в кешировании

Кеширование не всегда работает идеально. Иногда данные запрашиваются, но их нет в кеше. Это называется промахом в кэше. Чтобы свести к минимуму промахи в кэше, исследователи сосредотачиваются на оптимизации двух основных областей: организации кеша (то есть способа выделения памяти в кеше) и размещения данных (то есть отправки запросов данных в нужные кеши).

Было проведено множество ценных исследований по оптимизации кэш-памяти для центров обработки данных и проводных веб-серверов. Но менее надежные среды, такие как периферийные вычисления, беспроводные и мобильные сети, сталкиваются с различными новыми проблемами: ошибками связи, мобильностью, замираниями и т. Д. Промахи кеша могут произойти, даже если запрошенные данные действительно были в кеше. По этой причине в ненадежных средах каждый элемент данных обычно хранится в нескольких кэшах.

Принимая во внимание эти характеристики, следует ли в ненадежных средах использовать те же методы кэширования, которые работают в надежных средах? В сотрудничестве с Университетом штата Огайо, Колумбус, техническая группа Alibaba решила ответить на этот вопрос.

Хеширование ответов

Команда рассмотрела распределенную систему с одним прыжком и несколькими кэшами, которая отправляет элементы данных в несколько пространств кеша. Этот процесс основывался на методе, называемом случайным хешированием, предполагая, что каждый элемент данных был сопоставлен с набором кешей, а не с одним - как это было бы в типичной ненадежной среде. Проанализировав эту систему с несколькими кешами, команда разработала модель, которая одновременно рассматривает организацию кеша и размещение данных. Они также разработали эффективный метод расчета коэффициентов промахов кэш-памяти.

Команда обнаружила удивительные различия между тем, что лучше всего работает в надежной и ненадежной среде. Наиболее противоречивые результаты были получены при рассмотрении того, как оптимизировать распределение кэша. Можно было ожидать, что равное распределение пространства в каждом из нескольких кешей даст наилучшую производительность, как это было проверено для надежных сред. Но на самом деле команда обнаружила, что в ненадежных средах неравномерное распределение пространства лучше всего сказывается на производительности, даже если в остальном кеши идентичны.

Исследование команды также аналитически показало, что в ненадежных средах элементы данных разной популярности должны по-разному копироваться на ненадежные узлы для повышения производительности.

Будущее кеширования

Понимание Alibaba методов кэширования может помочь инженерам разрабатывать и внедрять более эффективные решения для кэширования. Что это значит для тебя? Меньшее количество пропусков кеша означает меньше задержек при получении данных, что означает меньше ожидания приложений - и больше времени для виртуальных сражений викингов!

Полную версию статьи можно прочитать здесь.

Alibaba Tech

Подробная информация о последних технологиях Alibaba из первых рук → Facebook: Alibaba Tech. Twitter: « AlibabaTech ».