Распределенный магазин с транзакциями - PullRequest
4 голосов
/ 16 февраля 2012

В настоящее время я разрабатываю приложение, размещенное на Google App Engine.Однако у gae есть много недостатков: это дорого и очень сложно отлаживать, так как мы не можем подключиться к реальным экземплярам.

Я подумываю об изменении gae на альтернативу с открытым исходным кодом.К сожалению, ни одно из существующих решений NOSQL, удовлетворяющих меня, не поддерживает транзакции, подобные транзакциям gae (транзакции поддержки gae внутри групп сущностей).

Что вы думаете об решении этой проблемы?В настоящее время я рассматриваю такой магазин, как Apache Cassandra + некоторый сервис блокировки (hazelcast) для транзакций.У кого-нибудь есть опыт в этой области?Что вы можете порекомендовать

Ответы [ 2 ]

2 голосов
/ 26 февраля 2012

В будущем планируется поддержка групп объектов в Кассандре, см. CASSANDRA-1684 .

Если ваши данные не могут быть легко смоделированы без транзакций, стоит ли использовать нетрансформационную базу данных? Вам нужна масштабируемость?

Стандартный способ выполнения транзакций, подобных вещам в Кассандре, описан в этой презентации , начиная со слайда 24. В основном вы пишете что-то похожее на запись WAL в 1 строку, затем выполните фактическую запись в несколько строк, затем удалите строку журнала WAL. В случае неудачи просто прочитайте и выполните действия в журнале WAL. Поскольку все записи на кассандре имеют указанную пользователем метку времени, все записи можно сделать идемпотентными, просто сохраните метку времени вашей записи с записью журнала WAL.

Эта стратегия дает вам атомарную и долговечную кислоту, но вы не получаете согласованность и изоляцию. Если вы работаете в масштабе, требующем чего-то вроде cassandra, вам, вероятно, все равно придется отказаться от полных ACID-транзакций.

1 голос
/ 17 февраля 2012

Возможно, вы захотите попробовать AppScale или TyphoonAE для размещения приложений, созданных для App Engine на вашем собственном оборудовании.

Если вы разрабатываете под Python, у вас естьочень интересные варианты отладки с отладчиком Werkzeug .

...