(одноузловой кластер) У меня есть таблица с 2 столбцами, один из которых имеет тип «текст», а другой - «BLOB-объект». Я использую драйвер C ++ Datastax для выполнения запросов на чтение / запись в Cassandra.
BLOB-объект хранит структуру C ++ (размер: 7 КБ).
Поскольку при использовании только Cassandra пропускная способность была ниже желаемой, я попытался добавить Ignite поверх Cassandra в надежде на значительное улучшение производительности, поскольку теперь данные будут считываться из ОЗУ, а не с жестких дисков. .
Однако оказалось, что после добавления Ignite производительность упала еще больше (примерно на 50%!).
Read Throughput when using only Cassandra: 21000 rows/second.
Read Throughput with Cassandra + Ignite: 9000 rows/second.
Поскольку я храню структуру C ++ в Blob Cassandra, Ignite API использует сериализацию / десериализацию при записи / чтении данных. Это причина падения производительности (учитывая размер структуры, то есть 7 КБ), или это падение вообще не ожидается и, возможно, что-то не так в конфигурации?
Кассандра: 3.11.2
RHEL: 6,5
Конфигурации для Ignite такие же, как указано здесь .
Я получил значительное улучшение пропускной способности Ignite + Cassandra, когда использовал сериализацию в необработанном режиме. Теперь пропускная способность увеличилась с 9000 строк в секунду до 23000 строк в секунду. Но тем не менее, он не значительно превосходит Кассандру. Я все еще надеюсь найти еще несколько настроек, которые улучшат это в дальнейшем.
Я добавил более подробную информацию о конфигурациях и коде клиента на github .