ТИТАН: Какова оптимальная частота фиксации при загрузке объемных вершин и ребер в график?
Я использую TITAN-0.4.3, REXSTER 2.4 поверх Cassandra & Elasticsearch. Мой вариант использования требует одновременной загрузки вершин и ребер в граф. Прямо сейчас я вызываю commit() после добавления каждой вершины + ребра. Я запускаю тест на разных частотах коммитов, скажем, каждые 10К, каждые 1000 и каждые 100, и скорость загрузки резко меняется. Я хочу узнать, как получить оптимальную частоту коммитов и на каких параметрах она основана?
Любые предложения по повышению производительности в моем случае использования? Размер БД составляет примерно 10 миллионов вершин.
1 ответ
Я не уверен, что когда-либо сталкивался с магическим числом, которое представляет оптимальную частоту коммитов. Похоже, что это в значительной степени зависит от стратегии загрузки данных. Я обычно начинаю с 10000 в качестве размера коммита и продолжаю свой путь оттуда. К этому числу обычно приходит немного больше искусства, чем науки, к сожалению.
Однако вы можете ускорить загрузку другими способами, кэшируя вершины, которые обычно используются для сокращения поиска в индексе, предварительно сортируя данные, чтобы попытаться сохранить эти вершины в кэше, отключая блокировку, если это возможно, и т. Д. Если вы не читали Серия постов в блоге "Powers of Ten", часть I, может быть полезна, поскольку в ней рассматриваются стратегии для размера вашего графика