【问题标题】:A good blobstore / memcache solution一个好的 blobstore / memcache 解决方案
【发布时间】:2012-10-07 22:40:05
【问题描述】:

在 Linux 云服务器上设置数据仓库挖掘项目。主要语言是 Python。

希望使用此模式来查询数据和存储数据:

  • SQL 数据库 - SQL 数据库用于查询数据。但是,SQL 数据库只存储需要搜索的字段,它不存储数据本身的“blob”。相反,它在键值 Blobstore 中存储一个引用完整数据“blob”的键。
  • Blobstore - 键值对 Blobstore 用于存储实际的“文档”或“blob”数据。

我们遇到的问题是,我们希望将更频繁访问的数据块自动存储在 RAM 中。我们计划为此使用 Redis。但是,我们想要一种解决方案,该解决方案首先自动尝试从 RAM 中取出数据,如果在那里找不到,则将其转到 blobstore。

是否有一个很好的库或现成的解决方案,我们可以使用而无需自己动手?此外,对于所提议的架构的任何 cmet 和批评也将不胜感激。

非常感谢!

【问题讨论】:

  • 使用 Google App Engine 有什么问题?
  • 由于他们收费的方式以及强制执行某些类型查询的数据库的限制,成本变得天文数字。此外,数据库的限制不允许某些类型的非常重要的查询没有主要的变通方法。

标签: python sql caching redis data-mining


【解决方案1】:

与其使用 Redis 或 Memcached 进行缓存,还不如使用“blobstore”包将内容存储在磁盘上,我建议您查看Couchbase Server,它完全符合您的要求(即从内存中提供热 blob,但是仍然将它们存储到磁盘)。

在我工作的公司中,我们通常将您描述的模式(即在关系数据库中建立索引,加上 blob 存储)用于我们的归档服务器(TB 级数据)。当写入 blob 的 I/O 保持顺序时,它工作得很好。 Blob 永远不会被重写,而只是附加在文件的末尾(这对于归档应用程序来说很好)。

其他人也使用了相同的方法。例如:

【讨论】:

    【解决方案2】:

    任何 SQL 数据库都适用于第一部分。 Blobstore 也可以通过使用 cbfs 获得,本质上是“现成的”。这是一个新项目,建立在 couchbase 2.0 之上,但它似乎处于非常活跃的开发阶段。

    CouchBase 已经尝试在检查磁盘之前从 RAM 缓存中提供结果,并且完全分布式以支持大型数据集。

    CBFS 在其上放置了一个文件系统,并且已经为它编写了一个 FUSE 模块。

    由于文件干实际上是最低公分母,因此您应该很容易从 python 访问它,并且会减少您需要编写的自定义代码的数量。

    博文: http://dustin.github.com/2012/09/27/cbfs.html

    项目存储库: https://github.com/couchbaselabs/cbfs

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-31
      • 1970-01-01
      相关资源
      最近更新 更多