什么是cassandra的捕获?

时间:2011-05-10 15:02:04

标签: c# java .net linux cassandra

确定。我正在阅读关于cassandra的文章,我读到的每篇文章都提到cassandra中的写作因最终的一致性而非常“快速”。

我在linux机器上设置了cassandra,创建了一个模式,并使用流畅的cassandra客户端通过c#创建了一个客户端。好吧,它没有用,因为我无法通过流利的cassandra客户端访问远程cassandra实例。

所以我在windows上安装了cassandra,创建了架构等。

接下来,我向cassandra插入了100万个条目,大约需要12分钟。客户端和服务器位于同一台机器上,这是四核,内存为8GB。

这不是很快。我和MongoDB做了类似的测试,花了4分钟写了100万个文件。

我用ObjectivityOODBMS进行了一次熟悉的测试,插入100万个物体需要30秒。

卡桑德拉有什么特点,根据我的测试,它并不快? 在具有不同客户端的Linux服务器上,它会在Java上表现不同吗?

1 个答案:

答案 0 :(得分:2)

除了对它进行一些研究之外,我还没有使用过Cassandra,但是使用过MongoDB。希望这些想法/注释会有所帮助。

在一台独立的机器上,使用mongoimport我能够在大约6分钟内将大约2400万个文档加载到MongoDB中。你写4百万分钟的4分钟似乎很慢 - 因素可能是:磁盘速度/你如何插入 - 例如如果你一次插入1个文档,那么它会慢一些。特别是如果你使用SafeMode(我不知道Cassandra是否有同样的东西)。您应该通过其中一个批处理API插入(例如,在C#驱动程序上插入InsertBatch)。同样的事情对于Cassandra也是如此(1比1 =慢速,批量插入=更快)。正是这种能够轻松添加节点以扩展写入/读取的能力,真正为您提供了这些技术的完整(和公平)图片。

显然,在独立的机器上,你会有争用,这可能是一个因素。

需要注意的是,像MongoDB和Cassandra这样的技术可以很容易地扩展。例如在MongoDB术语中,您可以使用分片来扩展写入(即增加吞吐量)。特别是当您获得更大的数据量时,能够有十几个节点同时接受写入显然会有助于IO情况并增加写入。同样,您可以使用副本集扩展读取。

总之,我的问题是你如何插入这些文件 - 它是以最有效/批量的方式完成的吗?