Крио байтовый уровень
Я храню JSON в таблице (на самом деле это семейство столбцов Кассандры) следующим образом:
____________________________________________________________________
| || prop1 | prop2 | ... |
| collection_id || [val1, val2, ...] | [val1, val2, ...] | ... |
|_________________||_____________________|_____________________|_____|
Итак, объект { prop1: 1, prop2: 2 }
будет храниться:
____________________________________________
| || prop1 | prop2 |
| collection_id || [1] | [2] |
|_________________||_______________|_________|
Чтобы сэкономить место, я собираюсь Kryo-сериализовать каждый массив значений свойств. Меня беспокоит то, что когда я выполняю запись, мне нужно сначала загрузить ВСЕ массивы значений свойств, затем добавить значения моего нового объекта в каждый массив, а затем отправить каждый массив обратно в базу данных. Если я уже сохранил много событий, это может быть очень дорого!
Есть ли способ "добавить" новые значения для каждого массива в Cassandra?
1 ответ
Приложение Append доступно с собственными коллекциями Cassandra: http://docs.datastax.com/en/cql/3.0/cql/cql_using/use_list_t.html поэтому вместо использования Kryo для сериализации коллекции вы должны просто сериализовать элементы.