2017-02-05 5 views
0

В Cassandra существует разница между строками, созданными обновлением и вставкой, и это влияет на поведение ttl и строк со столбцами «все нули» без ключа.Cassandra Вставка и обновление различий в производительности

За исключением этого, влияет ли это на производительность во время создания/удаления или выбора такой строки?

Ссылка на JIRA описания такого поведения:

https://issues.apache.org/jira/browse/CASSANDRA-8430

ответ

2

1. "План выполнения": Выполнение этого запроса (выбор первичного ключа), source_elapsed колонка:

Создать как Insert :

2266,1768,1672,3302,3324,1422,1623,3833,3933,3519,4166. Среднее: 2803

Создать как обновление:

1621,3498,4769,3680,3905,1781,4215,3764,3747,3460,1987. Средняя: 3312

Возможно, похоже, что обновление немного медленнее, но это не совсем согласовано, и я считаю, что с большим количеством исполнений они должны быть одинаковыми.

2. Хранение:

Row создан как Вставка:

[user1] @ 184 Роу [Информация о = [ц = 1486368137507000 = ТТЛ 3600, пусть = 1486371737]]: 2017-01-01 14: 00Z, bla, 5,2 | [Голуб = 77777 ц = 1486368137507000 ТТЛ = 3600 LDT = 1486371737], [BLE = 0 ц = 1486368137507000 ТТЛ = 3600 LDT = 1486371737]

Ряд создан как обновление:

[user30] @ 122 Row [info = [ts = -9223372036854775808]]: 2017-01-01 14: 00Z, bla, 5,2 | [Blu = 777 ц = 1486368139142000 = ТТЛ 3600 LDT = 1486371739], [BLE = 1 ц = 1486368139142000 = ТТЛ 3600 LDT = 1486371739]

Я предполагаю, что sstabledump действительно представляющих данные, как он сохранен в файле. Единственная разница здесь в том, что строка, созданная как вставка, генерируется с помощью ttl и позволяет столбцам на уровне строк (и ts устанавливается на созданное время) - это строки причин со всеми нулевыми неквантными столбцами, которые можно выбрать с помощью create as insert и не выбирается при создании в качестве обновления. Таким образом, строки, созданные со вставкой, будут использовать еще несколько байт памяти, то есть все различия здесь.

3.Надгробия:

Созданный как Вставка:

[user1] @ 48 строк [Информация о = [ц = -9223372036854775808]]: 2017-01-01 14: 00Z, бла, 5,2 | [Blu = ц = 1486368407044000 LDT = 1486368406], [BLE = ц = 1486368407044000 LDT = 1486368406]

Созданный как обновление:

[user30] @ 0 Строка [Информация о = [ц = -9223372036854775808] ]: 2017-01-01 14: 00Z, бла, 5,2 | [blu = ts = 1486368403444000 ldt = 1486368403], [ble = ts = 1486368403444000 ldt = 1486368403]

Как и ожидалось, надгробные плиты выглядят одинаково для обоих.

Резюме:

Из моих наблюдений нет никакой реальной разницы в производительности между двумя типами создания строк. Я буду рад увидеть другие тесты/наблюдения/обзоры исходного кода здесь.