NoSql与我自己的自定义二进制文件?

最初,我只能处理1.5 [TB]的数据。 由于我只是需要快速的写入/读取(没有任何SQL),我devise了自己的平面二进制文件格式(使用python实现),并轻松(快乐地)保存我的数据并在一台机器上操作。 当然,为了备份目的,我添加了2台机器作为精确的镜像(使用rsync )。

目前,我的需求在不断增长,需要构build一个能够成功扩展到20 [TB](甚至更多)数据的解决scheme。 我很乐意继续使用我的平面文件格式进行存储 。 这是快速,可靠,给我我需要的一切。

我关心的是复制,数据一致性等等(显然,数据将不得不分布 – 并不是all data都可以存储在one machine )通过networking。

有没有ready-made解决scheme( Linux / python based ),可以让我继续使用我的文件格式进行存储,但是会处理NoSql解决scheme通常提供的其他组件? (数据一致性/可用性/简单复制)?

基本上,我只想确保我的二进制文件在整个networking中是一致的。 我使用的是60个核心双核机器(每个都有1GB RAM1.5TB disk

方法:用Disco项目减少Python中的分布式地图

似乎是解决您的问题的好方法。 我用过类似问题的迪斯科项目 。

您可以在n台机器(进程)之间分发文件,并实现地图并减少适合您的逻辑的功能。

迪斯科项目教程 ,正确地描述了如何为您的问题实施解决方案。 你会留下深刻的印象,你需要写的代码很少,而且你可以保持二进制文件的格式。

另一个类似的选择是使用Amazon的Elastic MapReduce

也许一些为Tarsnap开发的Kivaloo系统的评论将帮助你决定什么是最合适的: http ://www.daemonology.net/blog/2011-03-28-kivaloo-data-store.html

不知道更多关于您的应用程序(大小/类型的记录,读/写频率)或自定义格式,很难说更多。