Я хочу создать систему для точки пользователя. Основными двумя точками этой системы являются точка и лог.Система пользовательских точек в Кассандре
Я хочу использовать Cassandra для хранения данных. Две причины:
- Cassandra обеспечивает функцию счетчика, которую я могу использовать для хранения точки.
- Журнал изменения точки может быть слишком большим, я должен думать о масштабе хранилища. Кассандру можно легко масштабировать.
Основная sturcture данные:
// row
name: user_id,
values: {
point: {
name: point,
values: 1000
},
log: {
name: log,
values: {
log_timestamp: {
name: timestamp,
values: xxxx
},
log_timestamp: {
name: timestamp,
values: xxxx
},
log_timestamp: {
name: timestamp,
values: xxxx
},
……
}
}
}
Мой вопрос:
Есть ли какие-либо проблемы, если журнал достаточно слишком много?
Как я могу справиться с транзакцией? например, я хочу добавить журнал и увеличить точку, которая должна быть успешной или неудачной. Я слышал, что транзакция в Кассандре находится на одном уровне. – lifei
На уровне строк у вас есть «Atomicity», что означает, что мутация (вставка/обновление/удаление) в строке либо преуспевает, либо полностью завершается. Теперь, когда дело доходит до ** транзакций **, это немного сложнее. К счастью, Cassandra 2.0 поставляется с транзакциями с использованием CAS (Compare and Swap). Посмотрите ** [здесь] (https://issues.apache.org/jira/browse/CASSANDRA-5443) ** – doanduyhai
Большое спасибо. – lifei