我想知道你认为哪些NoSQL数据库适合实现像分布式版本控制系统这样的SVN。
特别是,我担心大多数VCS实现的提交优化。 例如,假设我通过提交26个文件来创建VCS存储库的版本1:A.txt .. Z.txt。 然后我通过提交文件A.txt的修订版2来创建VCS存储库的版本2。 为了创建VCS存储库的第2版,我不需要提交存储库中任何其他文件的修订版。
我也关注大多数VCS实施的结账优化。 对于大多数VCS,只将文件的单个修订签出到沙箱中。 SVN通过以下方式实现结账算法来支持这一点: 对于存储库中的每个文件 检查该文件的最大修订版本是否小于或等于请求的存储库版本。 许多NoSQL数据库不支持足够复杂的查询逻辑来支持此优化。通常只能查询单个索引,只支持相等过滤器(而不是这里可能需要的< =),或者“columns”根本不能用于过滤。
对于这个问题,我将重点关注NoSQL数据库提供的索引功能,以便进行这些算法优化。
目前我想假设NoSQL DB中的提交冲突和原子性和隔离级别都很差。也许在结账时或近实时监控。
非常感谢您对此的看法!