Кэш-серверы как правило используют оперативную память (RAM), которая трудится не так долго осталось ждать, но дорого и требует много энергии. На этой неделе на Интернациональной конференции по громадным базам данных исследователи из Лаборатории компьютерных наук и искусственного интеллекта Массачусетского технологического университета (CSAIL) мнят новую совокупность кэширования центров обработки данных, которая вместо этого использует флэш-память, тип памяти, используемый в большинстве смартфонов.
На гигабайт памяти флеш-память потребляет примерно на 5 процентов больше энергии, чем оперативная память, и стоит примерно в десять раз меньше. Он также имеет примерно в 100 раз огромную плотность хранения, что свидетельствует, что больше данных можно втиснуть в меньшее пространство. Не считая меньшей стоимости и меньшего потребления энергии, совокупность кэширования на флеш-памяти может значительно сократить количество кэш-серверов, нужных для центра обработки данных.Недочётом флэш-памяти имеется то, что она намного медленнее, чем оперативная память. «Вот где появляется недоверие», — говорит Арвинд, профессор компьютерных наук Чарльза и Дженнифер Джонсон и старший создатель доклада на конференции. «Люди говорят:« Правда?
Вы имеете возможность сделать это при помощи флеш-памяти? » Время доступа во флеш-памяти в 10 000 раза больше, чем в DRAM [динамической RAM] ».Но, не обращая внимания на собственную медленность в случае если сравнивать с DRAM, доступ к флеш-памяти все же намного стремительнее, чем реакция человека на новые сенсорные стимулы. Пользователи не заметят отличия между запросом, на обработку которого уходит 0,0002 секунды (простое время прохождения через Интернет в оба финиша), и запросом, что занимает 0,004 секунды, вследствие того что он включает флэш-запрос.
В ногуБолее важная задача — не отставать от запросов, наводняющих центр обработки данных. Совокупность исследователей CSAIL, названную BlueCache, делает это при помощи общепринятой в информатике техники «конвейерной обработки».
Перед тем как кэш-сервер на базе флеш-памяти вернет результат первого запроса, он может начать выполнение следующих 10 000 запросов. Обработка первого запроса может занять 200 микросекунд, но ответы на последующие будут появляться с промежутком 0,02 микросекунды.Но помимо этого при применении конвейерной обработки исследователям CSAIL было необходимо применить кое-какие умные инженерные приемы, чтобы сделать кэширование флэш-памяти конкурентоспособным с кэшированием DRAM. в течении тестов они сравнили BlueCache с тем, что вероятно было бы назвать реализацией по умолчанию кэш-сервера на базе флэш-памяти, что представляет собой легко сервер базы данных центра обработки данных, настроенный для кэширования. (Без оглядки на то, что флеш-память и медленнее в случае если сравнивать с DRAM, она намного стремительнее магнитных жёстких дисков, каковые практически заменяются в центрах обработки данных.) BlueCache был в 4,2 раза стремительнее, чем реализация по умолчанию.
К работе с Арвиндом присоединились первый создатель Шуотао Сюй и его сотрудник, аспирант Массачусетского технологического университета по электротехнике и информатике Сан-Ву Джун; Минг Лю, что был аспирантом Массачусетского технологического университета, в то время, в то время, когда работа была сделана, и сейчас трудится в Microsoft Research; Сонджин Ли, инженерии кафедры и доцент информатики в Университете науки и технологий Тэгу Кёнбук в Корее, что трудился над проектом в качестве постдока в лаборатории Арвинда; и Джейми Хикс, внештатный архитектор ПО и член Массачусетского технологического университета, что руководит консалтинговой компанией Accelerated Tech.Первая уловка исследователей — добавить мало DRAM в любой кеш-флеш-память BlueCache — пара мегабайт на миллион мегабайт флеш-памяти.
В DRAM хранится таблица, которая связывает запрос базы данных с адресом флэш-памяти соответствующего результата запроса. Это не активизирует поиск в кеше, но делает обнаружение промахов кеша — идентификацию данных, еще не импортированных в кеш — намного более действенным.Эта часть DRAM не ставит под угрозу энергосбережение совокупности. В самом деле, из-за собственной дополнительной эффективности BlueCache потребляет всего на 4 процента меньше энергии, чем реализация по умолчанию.
Инженерная эффективностьКак правило совокупность кеширования делает только три операции: чтение значения из кеша, запись нового значения в кеш и удаление значения из кеша. Вместо того, чтобы сохранять надежду на ПО для выполнения этих операций, как это делает реализация по умолчанию, Сюй создал особенную аппаратную схему для каждой из них, увеличивая скорость и снижая энергопотребление.
В сервера BlueCache флэш-память подключена к центральному процессору при помощи провода, известного как «шина», которая, как и любое соединение для передачи данных, имеет громадную емкость. BlueCache накапливает достаточно запросов, чтобы исчерпать эту емкость, перед тем как отправлять их в память, снабжая, что совокупность всегда использует пропускную свойство связи с громадной эффективностью.Благодаря всем этим оптимизациям BlueCache может делать операции записи так же действенно, как и совокупность на базе DRAM. При условии, что любой результат запроса, что он получает, образовывает не меньше восьми килобайт, он также действен при операциях чтения. (Вследствие того что флеш-память возвращает не меньше восьми килобайт данных для любого запроса, ее эффективность падает для в самом деле мелких результатов запроса.)
BlueCache, как и большинство совокупностей кэширования центров обработки данных, представляет собой так именуемое хранилище ключей и значений, или хранилище KV. В этом случае ключ — это запрос к базе данных, а значение — это ответ.
