Bitcask - Bitcask
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Bitcask является Erlang приложение, которое предоставляет API для хранения и извлечения данных ключ / значение в структурированном журнале хеш-таблица. Дизайн во многом обязан принципам, заложенным в файловые системы с лог-структурой и черпает вдохновение в ряде проектов, предполагающих объединение файлов журналов.
Сильные стороны
Bitcask имеет ряд преимуществ благодаря формату данных на диске с однократной записью и только для добавления, а также использованию хэш-таблицы ключей в памяти для поиска:
- Низкая задержка для операций чтения и записи.
- Высокая пропускная способность, особенно при записи входящего потока случайных элементов: поскольку записываемые данные не нужно упорядочивать на диске, а структура с журнальной структурой позволяет минимизировать перемещение головки диска во время записи, эти операции обычно насыщают I / O и пропускная способность диска.
- Одиночный поиск для получения любого значения: хеш-таблица ключей Bitcask в памяти указывает непосредственно на места на диске, где находятся данные. Bitcask никогда не требует более одного поиска на диске для чтения значения, а кэширование файловой системы операционной системы может полностью избавить от необходимости поиска на диске для некоторых поисков.
- Предсказуемая производительность поиска и вставки: операции чтения и записи имеют фиксированное предсказуемое поведение. Операции записи требуют только поиска до конца текущего файла, открытого для записи, и добавления к этому файлу.
- Быстрое и ограниченное восстановление после сбоя: формат диска Bitcask упрощает восстановление. Единственные элементы, которые могут быть потеряны, - это частично записанные записи в конце файла, который был открыт для записи последним. Восстановление нужно только просмотреть последнюю запись или две записанные и проверить контрольные суммы для обеспечения согласованности данных.
- Простое резервное копирование: формат диска Bitcask означает, что любая утилита, которая архивирует или копирует файлы в порядке блоков диска, будет правильно создавать резервные копии или копировать базу данных Bitcask.
Слабое место
Поскольку Bitcask всегда хранит все ключи в памяти, система должна иметь достаточно памяти, чтобы содержать все пространство ключей в дополнение к другим рабочим компонентам и файловой системе операционной системы. буферы.