Выделение памяти у Apache Ignite против Redis (jemalloc)? - PullRequest
0 голосов
/ 27 октября 2019

Как Apache Ignite выполняет выделение памяти, чтобы избежать фрагментации памяти, в частности, я пытаюсь сравнить подход Ignite с подходом Redis (jemalloc).

1 Ответ

1 голос
/ 28 октября 2019

Apache Ignite использует Durable Memory вместо выделения кучи. Это означает, что в смысле malloc нет проблем фрагментации. Он разделяет память на 4 тыс. Страниц и записывает сохраненные данные на страницы, перерабатывая их по мере необходимости.

Даже если это не так, Ignite использует Java, в которой имеется перемещение GC и, следовательно, он не уязвим для фрагментации памяти - он всегда можетсжать свою кучу. Но это также может привести к паузам GC, которых мы избегаем, имея Durable Memory.

Возможно, что сама память страницы будет фрагментирована, поэтому у нас есть fillFactor метрика для отслеживания этого.

...