21

我正在开发一个 php 平台,它将大量使用图像、文档和任何我想到的文件格式,所以我想知道 Cassandra 是否是满足我需求的好选择。

如果没有,你能告诉我应该如何存储文件吗?我想继续使用 cassandra,因为它具有容错性并且在节点之间使用自动复制。

感谢帮助。

4

3 回答 3

15

卡桑德拉维基

Cassandra's public API is based on Thrift, which offers no streaming abilities 
any value written or fetched has to fit in memory. This is inherent to Thrift's 
design and is therefore unlikely to change. So adding large object support to
Cassandra would need a special API that manually split the large objects up 
into pieces. A potential approach is described in http://issues.apache.org/jira/browse/CASSANDRA-265.    
As a workaround in the meantime, you can manually split files into chunks of whatever 
size you are comfortable with -- at least one person is using 64MB -- and making a file correspond 
to a row, with the chunks as column values.

因此,如果您的文件小于 10MB,您应该没问题,只需确保限制文件大小,或将大文件分成块。

于 2012-01-13T06:03:11.050 回答
7

您应该可以使用 10MB 的文件。事实上,如果我没记错的话,DataStax Brisk 将文件系统放在 Cassandra 之上:http ://www.datastax.com/products/enterprise 。

(我与他们没有任何关系——这不是广告)

于 2012-01-12T22:25:48.510 回答
5

作为最新信息,Netflix 为他们的 cassandra 客户端提供了实用程序,称为astyanax,用于将文件存储为已处理的对象存储。描述和示例可以在这里找到。使用 astyanax 编写一些测试并将 Cassandra 评估为文件存储可能是一个很好的起点。

于 2013-09-20T17:24:24.333 回答