Представлена самая энергоэффективная система кэширования для ЦОД

Москва, 20:59, 04 Сен 2017, редакция FTimes.ru, автор Сергей Кузнецов.

Большинство современных веб-сайтов хранят данные в базах данных, и поскольку запросы к базе данных относительно медленные, большинство сайтов также поддерживают так называемые серверы кэша, которые перечисляют результаты общих запросов для более быстрого доступа. Центр обработки данных для крупного веб-сервиса, такого как Google или Facebook, может иметь до 1000 серверов, предназначенных только для кэширования.

Кэш-серверы обычно используют оперативное запоминающее устройство (RAM), которое быстрое, но дорогое и энергоемкое. На этой неделе, на Международной конференции по очень крупным базам данных, исследователи из Лаборатории компьютерных наук и лаборатории искусственного интеллекта (CSAIL) представляют новую систему кэширования центров обработки данных (ЦОД), которая использует флэш-память, подобную используемой на большинстве смартфонов.

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

Недостатком флэш является то, что она намного медленнее, чем оперативная память. Время доступа к ней в 10 000 раз больше, чем в DRAM (динамическое ОЗУ).

Но пользователи вряд ли будут замечать разницу между запросом, который занимает 0,0002 секунды — типичное время для передачи информации по Интернету, и одним из них, который занимает 0,0004 секунды, потому что связан с запросом флэш-памяти.

Экономия пространства

Более важная проблема связана с тем, что запросы наводняют центр обработки данных. Система исследователей CSAIL, получившая название BlueCache, делает это с использованием «конвейерной обработки». Прежде чем флэш-кэш-сервер вернет результат первого запроса для его получения, он может начать выполнение следующих 10000 запросов. Первый запрос может занять 200 микросекунд, но ответы на последующие будут появляться через 0,02-микросекундные интервалы.

Однако, даже используя конвейерную обработку, исследователям CSAIL пришлось развернуть некоторые хитроумные инженерные трюки, чтобы сделать кеширование флэш конкурентоспособным с кэшированием DRAM. В тестах они сравнивали BlueCache с тем, что можно было бы назвать реализацией по умолчанию сервера кэша на основе флэш-памяти, который является просто сервером базы данных центра обработки данных, настроенным для кэширования. Будучи медленным по сравнению с DRAM, флэш намного быстрее, чем магнитные жесткие диски, которые они заменили в центрах обработки данных. BlueCache был в 4,2 раза быстрее, чем реализация по умолчанию.

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

Этот маленький DRAM не ставит под угрозу экономию энергии системы. Действительно, благодаря своей высокой эффективности BlueCache потребляет всего на 4% больше энергии, чем реализация по умолчанию.

Инженерная эффективность

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

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

При всех этих оптимизации BlueCache может выполнять операции записи так же эффективно, как и DRAM-система. При условии, что каждый результат запроса, который он извлекает, составляет не менее восьми килобайт, он также эффективен при операциях чтения.

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

Этой информацией поделились специалисты по компьютерным технологиям MIT.