Производительность написать много записей (например, 2000000) в Кассандре? - PullRequest
0 голосов
/ 22 октября 2018

Как добиться максимальной производительности при записи огромного количества записей (например, 2000000) в Кассандре?Я использую Scala, драйвер Datastax и фантом в моем проекте.Как я могу вставить эти многочисленные записи в базу данных эффективным способом?

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

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

  • с использованием асинхронных операций;
  • подготовленных запросов;
  • с использованием уровня согласованности ONE (по умолчанию не рекомендуется)t change);
  • использовать политику балансировки нагрузки DCAware / TokenAware (по умолчанию, не изменять);
  • увеличить количество запросов на соединение со значения по умолчанию 1024 и вышечисло, например, 32k;

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

0 голосов
/ 22 октября 2018

2 миллиона не много.Я бы просто использовал CQL copy из:

https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlshCopy.html

...