Woodpecker

В Milvus 2.6 Woodpecker заменяет Kafka и Pulsar специально разработанной облачной системой журналов с опережающей записью (WAL). Разработанная для объектных хранилищ, Woodpecker упрощает операции, максимизирует пропускную способность и легко масштабируется.

Цели разработки Woodpecker:

  • Высочайшая пропускная способность в облачных средах.

  • Долговечное протоколирование только с использованием приложений для надежного восстановления

  • Минимальные эксплуатационные расходы без локальных дисков и внешних брокеров.

Архитектура с нулевым диском

Основная инновация Woodpecker - архитектура с нулевым диском:

  • Все данные журнала хранятся в облачном объектном хранилище (например, Amazon S3, Google Cloud Storage или Alibaba OS).
  • Метаданные управляются через распределенные хранилища ключевых значений, такие как etcd.
  • Отсутствие зависимости от локального диска для основных операций

woodpecker layers слои woodpecker

Компоненты архитектуры

Стандартное развертывание Woodpecker включает в себя следующие компоненты:

  • Клиент: Интерфейсный уровень для выдачи запросов на чтение и запись
  • LogStore: Управляет высокоскоростной буферизацией записей, асинхронной загрузкой в хранилище и уплотнением журналов.
  • Бэкэнд хранилища: Поддерживает масштабируемые и недорогие службы хранения, такие как S3, GCS, и файловые системы типа EFS.
  • Etcd: Хранит метаданные и координирует состояние журналов на распределенных узлах.

Режимы развертывания

Woodpecker предлагает два режима развертывания в соответствии с вашими потребностями:

MemoryBuffer - Легкий и не требующий обслуживания.

Режим MemoryBuffer обеспечивает простой и легкий вариант развертывания, при котором встроенный клиент Woodpecker временно буферизует входящие записи в памяти и периодически сбрасывает их в облачный сервис хранения объектов. В этом режиме буфер памяти встроен непосредственно в клиент, что обеспечивает эффективную сортировку перед отправкой в S3. Управление метаданными осуществляется с помощью etcd для обеспечения согласованности и координации. Этот режим лучше всего подходит для пакетных рабочих нагрузок в небольших развертываниях или производственных средах, для которых простота важнее производительности, особенно если низкая задержка записи не является критичной. Задержка записи в этом режиме обычно составляет 200-500 мс.

woodpecker memory mode deployment развертывание режимов памяти woodpecker

QuorumBuffer - оптимизирован для низких задержек и высокой долговечности

Режим QuorumBuffer предназначен для чувствительных к задержкам и высокой частоте чтения/записи рабочих нагрузок, требующих как реагирования в реальном времени, так и высокой отказоустойчивости. В этом режиме клиент Woodpecker взаимодействует с системой кворума из трех реплик для обеспечения высокоскоростной буферизации записи, гарантируя высокую согласованность и доступность благодаря распределенному консенсусу.

Запись считается успешной, когда клиент успешно реплицирует данные как минимум на два из трех узлов кворума, что обычно завершается в течение однозначных миллисекунд, после чего данные асинхронно сбрасываются в облачное хранилище объектов для обеспечения долговременной сохранности. Такая архитектура минимизирует состояние узлов, устраняет необходимость в больших локальных дисковых томах и позволяет избежать сложного восстановления против энтропии, которое часто требуется в традиционных системах на основе кворума.

В результате получается упрощенный и надежный уровень WAL, идеально подходящий для критически важных производственных сред, где важны согласованность, доступность и быстрое восстановление.

woodpecker quorum mode deployment развертывание режима кворума woodpecker

Контрольные показатели производительности

Мы провели комплексные бенчмарки, чтобы оценить производительность Woodpecker на одном узле, с одним клиентом и одним лог-потоком. Результаты оказались впечатляющими по сравнению с Kafka и Pulsar:

СистемаKafkaPulsarWP MinioWP LocalWP S3
Пропускная способность129,96 МБ/с107MB/s71MB/s450MB/s750MB/s
задержка58 мс35мс184 мс1,8 мс166 мс

Для удобства мы измерили теоретические пределы пропускной способности различных бэкендов хранения данных на нашей тестовой машине:

  • MinIO: ~110 МБ/с
  • Локальная файловая система: 600-750 МБ/с
  • Amazon S3 (один экземпляр EC2): до 1,1 ГБ/с.

Примечательно, что Woodpecker постоянно достигал 60-80% от максимально возможной пропускной способности для каждого бэкенда - исключительный уровень эффективности для промежуточного ПО.

Основные показатели производительности

  • Режим локальной файловой системы: Woodpecker достиг скорости 450 МБ/с - 3,5× быстрее, чем Kafka, и 4,2× быстрее, чем Pulsar, - при сверхнизкой задержке всего 1,8 мс, что делает его идеальным для высокопроизводительных одноузловых развертываний.
  • Режим облачного хранения (S3): При прямой записи в S3 скорость Woodpecker достигла 750 МБ/с (около 68 % от теоретического предела S3), что на 5,8× выше, чем у Kafka, и на 7× выше, чем у Pulsar. Несмотря на более высокую задержку (166 мс), эта установка обеспечивает исключительную пропускную способность для рабочих нагрузок, ориентированных на пакетную обработку.
  • Режим хранения объектов (MinIO): Даже в режиме MinIO Woodpecker достиг 71 МБ/с - около 65 % от пропускной способности MinIO. Эта производительность сопоставима с Kafka и Pulsar, но при этом требует значительно меньше ресурсов.

Woodpecker особенно оптимизирован для одновременной записи больших объемов данных, где поддержание порядка имеет решающее значение. И эти результаты отражают только ранние этапы разработки - ожидается, что текущие оптимизации в области объединения ввода-вывода, интеллектуальной буферизации и предварительной выборки позволят еще больше повысить производительность до теоретических пределов.

Операционные преимущества

Облачная нативная архитектура Woodpecker обеспечивает значительные эксплуатационные преимущества:

  • Нулевое управление локальным хранилищем: Исключается управление дисковыми томами, настройка RAID-массивов и аппаратные сбои.
  • Автоматическое масштабирование: Хранилище масштабируется вместе с облачным объектным хранилищем без необходимости планирования емкости.
  • Экономическая эффективность: Хранилище с оплатой по факту использования с автоматическим выравниванием и сжатием.
  • Высокая доступность: Использование 11-девятикратной долговечности облачных провайдеров с быстрым восстановлением.
  • Упрощенное развертывание: Два режима развертывания (MemoryBuffer/QuorumBuffer) соответствуют различным операционным потребностям.
  • Удобство для разработчиков: Ускоренная настройка среды и согласованная архитектура во всех средах.

Эти преимущества делают Woodpecker особенно ценным для критически важных рабочих нагрузок RAG, агентов искусственного интеллекта и поиска с низкой задержкой, где простота эксплуатации важна не меньше, чем производительность.

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?