4

我目前开发一个托管在谷歌应用引擎上的应用程序。然而,gae 有很多缺点:它很昂贵,而且很难调试,因为我们不能附加到真实的实例。

我正在考虑将 gae 更改为开源替代方案。不幸的是,现有的令我满意的 NOSQL 解决方案都不支持类似于 gae 事务的事务(gae 支持实体组内的事务)。

您如何看待解决这个问题?我目前正在考虑像 Apache Cassandra 这样的商店 + 一些用于交易的锁定服务(hazelcast)。有没有人有这方面的经验?你能推荐什么

4

2 回答 2

2

有计划在未来支持 cassandra 中的实体组,请参阅CASSANDRA-1684

如果您的数据在没有事务的情况下无法轻松建模,那么是否值得使用非跨国家数据库?您需要可扩展性吗?

在本演示文稿中描述了在 cassandra 中执行类似事务的标准方法,从幻灯片 24 开始。基本上,您将类似于WAL 日志条目的内容写入 1 行,然后在多行上执行实际写入,然后删除 WAL 日志行. 失败时,只需在 WAL 日志中读取并执行操作。由于所有 cassandra 写入都有用户提供的时间戳,因此所有写入都可以是幂等的,只需将写入的时间戳与 WAL 日志条目一起存储即可。

此策略为您提供 ACID 中的 Atomic 和 Durable,但您没有获得 Consistency 和 Isolation。如果您正在大规模工作,需要像 cassandra 这样的东西,那么您可能无论如何都需要放弃完整的 ACID 事务。

于 2012-02-26T05:09:18.623 回答
1

您可能想尝试使用AppScaleTyphoonAE在您自己的硬件上托管为 App Engine 构建的应用程序。

如果您在 Python 下进行开发,您可以使用Werkzeug 调试器提供非常有趣的调试选项。

于 2012-02-17T11:38:39.283 回答