我正在做一个正在考虑使用Cassandra作为数据库的项目。考虑到MySQL的可伸缩性,我们希望最终迁移到Cassandra,即使我们一开始就使用它。我知道像Facebook、Digg和最近推特这样的大公司正在使用Cassandra,但我不相信任何这样的网站会偏离轨道。我的问题是,使用Rails使用Cassandra是否可行。需要考虑的几点:
谢谢你的建议。
发布于 2010-03-04 21:51:56
Twitter的大部分前端都在运行rails。动物群的客户端实际上是由twitter构建和发布的,因此您可以相当肯定它在大型工作负载上是最新的和稳定的。回顾提交的历史表明,经常会对其进行改进,这是很棒的。
很可能需要定制Authlogic,以便与Cassandra一起正常工作。特别是,它似乎提供了基于named_scope和关系数据的某些方法。
确实有人在Authlogic中为DataMapper支持构建了一个插件:http://twitter.com/collintmiller/statuses/2064046718。你也许可以用它作为一个起点,使它与卡桑德拉兼容。
祝好运!
发布于 2010-03-04 22:38:14
我不认为从MySQL开始,然后搬到卡桑德拉是个好主意。
Cassandra是一个NoSQL解决方案,而MySQL是一个“经典”的SQL驱动数据库。
这意味着你的模型会有所不同。
如果您从MySQL开始,您将不得不依赖ActiveRecord来创建您的模型。如果然后更改为Cassandra,则必须将所有模型更改为与NoSQL兼容的中间件(如BigRecord)。这不仅意味着更改您的模型,还意味着使用它们的控制器(因为它们的接口不同)。
这就是说,Cassandra等应该被用于非常苛刻的应用程序--比如twitter。
其他的网络应用程序没有那么强烈--你确定你还需要卡桑德拉吗?
PostgreSQL和一个设计良好的数据库,在98%的时间里都是足够好的.
发布于 2010-03-21 23:48:41
如果然后更改为Cassandra,则必须将所有模型更改为NoSQL。
这根本不是真的。如果您已经以这样的方式编程,您的MySQL db执行了大量的连接,那么是的,您可能有一个问题。当我们开始MySQL路由时,我们从一开始就尽量避免加入。然后,当我们开始迁移到卡桑德拉,这是相当容易的,我们这样做的1模式,只是在一开始。然后一次说出4个模型。等。效果很好。事实上,当你阅读twitter的采访时,你会注意到他们在一段时间内并行运行MySQL和Casandra,同时运行相同的模型:http://nosql.mypopescu.com/post/407159447/cassandra-twitter-an-interview-with-ryan-king。
至于Authlogic,您可以将该部分保存在mySQL中,只要您愿意,只需将其与您的Cassandra数据松散耦合即可。
https://stackoverflow.com/questions/2382436
复制相似问题