Потребление ресурсов RocksBD в приложении Kafka Stream - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь определить ресурсы, необходимые при использовании RocksDB в приложениях Kafka Streams, и я немного запутался, пытаясь провести предварительное планирование ресурсов для моего приложения.

Моя проблема связана с локальными государственными хранилищами и как они связаны с механизмом хранения RocksDB. Я понимаю, что каждое локальное государственное хранилище архивируется с помощью списка изменений topi c на Kafka Brokers, и записи там периодически пересылаются. Но то, что происходит внутри приложения Kafka Streams, беспокоит меня.

Насколько я понимаю, RocksDB обновляет свое хранилище значений ключей каждый раз, когда новые записи пересылаются в эти локальные хранилища состояний. Но как это справляется? Я имею в виду потребление памяти и накладные расходы, созданные для этих магазинов от имени RocksDB. Каждое локальное хранилище состояний назначается задаче потоков Kafka. Распределяет ли RocksDB некоторую память для локального хранилища состояний, для каждой задачи или глобально для всех хранилищ состояний в приложении?

Чтобы быть более конкретным на примере, рассмотрим, что у меня есть приложение с 10 разделами / задачами и 2 локальными хранилищами состояний. Нужно ли ожидать значительного выделения ресурсов памяти на компьютере, на котором будет размещаться мое приложение Kafka, и в какой степени я могу прогнозировать потребление ресурсов?

Кроме того, каковы издержки дискового ввода-вывода, создаваемые RocksDB в конфигурации по умолчанию в потоковом приложении Kafka? Использует ли он memtables и опять же в какой степени или flu sh записывает немедленно на локальный диск?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...