polishchuk 0 231 03.04.2024
Garnet: Microsoft представила собственный open-source cache
Основные преимущества:
- Написан на новом .NET с открытым исходным кодом, Garnet является кроссплатформенным.
- Garnet использует популярный протокол RESP, что позволяет использовать Garnet из существующих клиентов Redis, доступных в большинстве современных языков программирования.
- Garnet обеспечивает гораздо лучшую масштабируемость и пропускную способность при большом количестве клиентских подключений и небольших батчах, что позволяет снизить затраты для крупных приложений и сервисов.
- Garnet демонстрирует лучшие показатели задержки клиентов на уровне 99-го и 99,9-го процентилей, что очень важно для реальных сценариев.
Нюансы дизайна
Конструкция хранилища Garnet состоит из двух хранилищ ключей и значений по названию Tsavorite. Первое хранилище, называемое «основным хранилищем», оптимизировано для операций с необработанными строками и тщательно управляет памятью, чтобы избежать сборки мусора. Второе, необязательное, «хранилище объектов» оптимизировано для сложных объектов и пользовательских типов данных, включая популярные типы, такие как Sorted Set, Set, Hash, List, и Geo. Типы данных в хранилище объектов используют экосистему библиотеки .NET для своих текущих реализаций. Они хранятся в куче в памяти и в сериализованной форме на диске. В будущем мы планируем исследовать использование единого индекса и журнала для упрощения обслуживания.
Ну и чуть-чуть метрик от Microsoft:
Подробнее можно почитать тут.