【问题标题】:do any source-control systems use a document database for storage?是否有任何源代码控制系统使用文档数据库进行存储?
【发布时间】:2011-04-17 21:31:40
【问题描述】:

其中一个很难用谷歌搜索的问题。

前几天我们在 svn 存储库的速度上遇到了问题。对此的标准解决方案似乎是“更多 RAM!更多 CPU!”等等。这让我想知道,是否有任何使用文档/nosql 数据库(mongodb、couchdb 等)作为数据库的源代码控制系统?这似乎很自然——但我我不是源代码控制数据库理论的专家。也许有一种方法可以配置更新的源代码控制以使用文档数据库作为存储?

【问题讨论】:

  • 也许你能解释一下“我们前几天在我们的 svn 存储库的速度上遇到了问题”,因为我从来没有遇到过 SVN 的性能问题......(在大型 repos 30GiB ++ 中) ...也许您可以提供有关设置的更多详细信息...
  • @khmarbaise:它只是在一个功率非常低的服务器上,所以它让我思考......

标签: mongodb version-control couchdb document-database nosql


【解决方案1】:

据我所知,没有任何 VCS 使用基于 noSQL/文档的数据库。使用 couchdb 等的想法并不新鲜......但到目前为止还没有人实现过这样的东西......

【讨论】:

    【解决方案2】:

    据我所知没有人这样做,他们也不想这样做。考虑到测试程度的差异,它可能会损害健壮性(对于源代码存储库来说是一件非常糟糕的事情)。由于无法进行增量存储,它也可能最终损害性能。

    请注意,Subversion 有两种截然不同的存储机制,一种由嵌入式 Berkeley DB 支持,另一种由简单文件支持。其中一种可能更适合您的使用。

    另外,由于您提出的问题相当广泛,我将对 Git 和 TFS 发表评论。

    Git 使用文件系统中非常有效的打包文件来存储存储库。通常,整个历史记录小于结帐。对于我实验室的一个非常古老的项目,整个历史记录为 57MiB,而工作树(不计算历史记录)为 56MiB。

    TFS 将大量(可能是全部)数据存储在 SQL 数据库中。

    【讨论】:

    • 另请注意,对于 Subversion,最初只有 Berkeley DB,但由于在某些情况下存在问题,后来添加了文件系统后端(这与jcollum 建议)。
    • @Thilo:相信我,我知道。在 Subversion 开发的早期,我在邮件列表中。
    【解决方案3】:

    Git 像 MongoDB 一样使用内存映射文件 :)

    虽然 Git 实际上并没有使用 MongoDB,但我认为它不会想要。如果您查看 Git,它实际上并不需要 NoSQL DB,它基本上一个 DB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2011-07-01
      • 2011-05-13
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      相关资源
      最近更新 更多