polishchuk 0 157 03.04.2024
Garnet: Microsoft представила собственный open-source cache
![Garnet: Microsoft представила собственный open-source cache](https://joprblob.azureedge.net/site/news/f76c109d-c451-4fc0-b244-4dfcefe7c1c6/fba4b1c3-0544-450a-9fa1-cbbdddeec46b.webp)
Основные преимущества:
- Написан на новом .NET с открытым исходным кодом, Garnet является кроссплатформенным.
- Garnet использует популярный протокол RESP, что позволяет использовать Garnet из существующих клиентов Redis, доступных в большинстве современных языков программирования.
- Garnet обеспечивает гораздо лучшую масштабируемость и пропускную способность при большом количестве клиентских подключений и небольших батчах, что позволяет снизить затраты для крупных приложений и сервисов.
- Garnet демонстрирует лучшие показатели задержки клиентов на уровне 99-го и 99,9-го процентилей, что очень важно для реальных сценариев.
Нюансы дизайна
![Нюансы дизайна garnet](https://joprblob.azureedge.net/site/news/f76c109d-c451-4fc0-b244-4dfcefe7c1c6/6cb532b8-a7b3-4886-b7a5-361aa9296cb9.webp)
Конструкция хранилища Garnet состоит из двух хранилищ ключей и значений по названию Tsavorite. Первое хранилище, называемое «основным хранилищем», оптимизировано для операций с необработанными строками и тщательно управляет памятью, чтобы избежать сборки мусора. Второе, необязательное, «хранилище объектов» оптимизировано для сложных объектов и пользовательских типов данных, включая популярные типы, такие как Sorted Set, Set, Hash, List, и Geo. Типы данных в хранилище объектов используют экосистему библиотеки .NET для своих текущих реализаций. Они хранятся в куче в памяти и в сериализованной форме на диске. В будущем мы планируем исследовать использование единого индекса и журнала для упрощения обслуживания.
Ну и чуть-чуть метрик от Microsoft:
![Garnet metrics](https://joprblob.azureedge.net/site/news/f76c109d-c451-4fc0-b244-4dfcefe7c1c6/cce5dc82-9595-4ff2-bf3e-a1cb4b1e500c.png)
![Garnet metrics](https://joprblob.azureedge.net/site/news/f76c109d-c451-4fc0-b244-4dfcefe7c1c6/787ff42c-3c7b-4135-bfbc-d5c67fb98cd9.png)
![Garnet metrics](https://joprblob.azureedge.net/site/news/f76c109d-c451-4fc0-b244-4dfcefe7c1c6/12594e64-45b5-4732-a754-4b9f6c5e4e19.png)
![Garnet metrics](https://joprblob.azureedge.net/site/news/f76c109d-c451-4fc0-b244-4dfcefe7c1c6/b4216f0b-e5c6-4f41-b4c9-9759608c89fc.png)
Подробнее можно почитать тут.