Влияние на производительность при установке gc_grace_seconds = 0 в одном узле cassandra

Я понимаю, что когда запись удаляется в Cassandra, значение на самом деле не удаляется, а помечается как надгробная плита, чтобы можно было достичь согласованности среди других узлов.

В моей производственной настройке я получаю данные от 1000 датчиков и передаю эти данные на служебную шину Azure, Интернет в производственной среде не очень стабилен, поэтому у меня есть узел cassandra для хранения данных, которые еще не были отправлены в Azure,

После отправки в Azure я удаляю успешно отправленные данные в записях Cassandra, я установил для таблицы GC_Grace_Seconds значение 0 и никогда в будущем не планирую добавлять еще один узел в этот кластер (всегда один узел Cassandra).

Это вызовет у меня какие-либо проблемы в будущем с этим планом?.. уменьшится ли производительность этой таблицы ..? Повлияет ли это на какие-либо другие таблицы, которые я могу создать в этом узле?


person Vishweshwar Kapse    schedule 24.04.2020    source источник
comment
один узел cassandra не имеет смысла с моей точки зрения. если у вас всегда будет один узел, почему бы просто не записать данные в какую-нибудь локальную базу данных, например, RocksDB/LevelDB/...?   -  person Alex Ott    schedule 24.04.2020
comment
Я считаю, что скорость чтения и записи очень высока, независимо от размера набора данных. Я не оценивал другие БД. Честно говоря, я использую cassandra, потому что большая часть кода для чтения, записи, подключения и т. Д. Я повторно использовала из предыдущего проекта.   -  person Vishweshwar Kapse    schedule 24.04.2020
comment
Я согласен с @AlexOtt в отношении одного узла. Postgres, вероятно, мог бы делать то, что вы хотите, без необходимости обходить нюансы удаления Cassandra.   -  person Aaron    schedule 24.04.2020
comment
Я уже по колено в этой реализации, я не хочу ее менять, если в этом нет крайней необходимости @AlexOtt   -  person Vishweshwar Kapse    schedule 27.04.2020


Ответы (1)


Для этого конкретного случая использования, когда у вас был план продолжить работу с кластером cassandra с одним узлом, это не окажет такого влияния. Таким образом, всякий раз, когда данные удаляются из таблицы с gc_grace_seconds=0, они будут считаться удаленными и не будут помечены как захоронения. Другое дело, потому что это всего лишь кластер cassandra с одним узлом, поэтому не нужно беспокоиться о каком-либо одноранговом узле для совместного использования обновлений удаления.

Но другой возникающий вопрос — это выбор базы данных cassandra в качестве кластера с одним узлом для этого варианта использования, предпочтительным является то, что Postgres может легко удовлетворить ваши потребности.

person andy    schedule 28.04.2020
comment
Я заполнил таблицу более чем миллионом записей, а затем удалил их с помощью запроса на удаление, после чего таблица перестала отвечать на простые операторы выбора. Я решил не использовать Cassandra для этого варианта использования, поскольку он создает больше проблем, чем решает их. - person Vishweshwar Kapse; 06.05.2020