Ignite Data Streamer Оптимизация - PullRequest
0 голосов
/ 27 февраля 2019

Я использую следующие настройки:

 allowOverwrite: false 
 nodeParallelOperations: 1 
 autoFlushFrequency: 10 
 perNodeBufferSize: 5000000 

Размер моих записей составляет около 2000 байт.И посмотрите статистику потока "grid-data-loader-flusher", как показано ниже:

Среднее число потоков Максимальная наибольшая продолжительность grid-data-loader-flusher- # 100 38 4 737 793,579 30 427 862 180 036 156

Что быбыть лучшими конфигурациями для стримера данных?

Спасибо

1 Ответ

0 голосов
/ 01 марта 2019

Хорошо иметь режим параллельной потоковой передачи данных для стримера.Вы можете добиться этого, собирая записи значений ключей в java Map и вызывая метод streamer.addData () в параллельном режиме над этой картой.Вот фрагмент.

maptoStream.entrySet().parallelStream().forEach(streamer::addData);

Кроме того, если для параметра allowOverWrite задано значение false, вы не сможете использовать собственный потоковый приемник для обработки вашей коллекции записей.В этом случае он пропустит записи, если они уже есть в кэше.
Что касается размера буфера, вам нужно подождать, пока буфер заполнится каждый раз, чтобы автоматически сбросить его в кэш.Частота промывки приходит вам на помощь в этом случае, и она будет выполнять периодическую промывку.поэтому, какое бы условие ни выполнялось вначале (либо заполнение буфера, либо достижение частоты сброса), оно выполнит сброс.Я предпочел вызывать ручную очистку после вышеуказанного вызова метода.
Я заметил, что streamer хорошо работает с гораздо большим набором, для которого вы будете вызывать метод streamer.addData () параллельно.

...