Презентация абстрактного слоя ... Заметка

Презентация абстрактного слоя ключ-значение Netflix

Слой абстракции ключ-значение (KV) Netflix Data Abstraction Layer (DAL) - это фундаментальный сервис абстракции, упрощающий доступ к данным и улучшающий надежность инфраструктуры. Он предлагает единый интерфейс разработчикам, независимо от базы данных.Слой KV использует архитектуру двойного картографирования, поддерживая как простые, так и сложные модели данных. Он предоставляет четыре основных CRUD-API (PutItems, GetItems, DeleteItems) и сложные API MutateItems и ScanItems для разнообразных случаев использования.Пространство имен (namespace) определяет, где и как хранятся данные, обеспечивая логическое и физическое разделение. Это позволяет разным случаям использования быть направленными к наиболее подходящей системе хранения на основе конкретных требований к производительности, долговечности и согласованности.API PutItems и DeleteItems используют токены идемпотентности, чтобы обеспечить целостность данных и гарантировать правильный порядок операций. Предпочтительными являются клиентские монотонные токены для надежности.Для работы с большими blob-объектами слой KV использует технологию chunking. Она разбивает большие данные на меньшие части, которые затем стадируются и фиксируются с соответствующими метаданными.Пагинация является ключевым аспектом для работы с большими наборами данных. API GetItems поддерживает пагинацию с помощью next_page_token, обеспечивая эффективный доступ к данным в несколько запросов.Могилы (tombstones), указывающие на удаленные данные, могут влиять на производительность. KV оптимизирует удаление записей и диапазонов, генерируя одиночную могилу, что уменьшает пиковые нагрузки и поддерживает стабильную производительность.Удаление на уровне элементов обрабатывается с помощью удалений на основе TTL с джиттером. Это скрывает сложность движка хранения и минимизирует влияние удалений на пагинацию чтения.Идемпотентность и chunking являются ключевыми для работы с хвостовыми задержками и обеспечения предсказуемой низколатентной производительности. Эти философии проектирования способствуют надежности и производительности, требуемым для глобальных операций Netflix.