Tag: couchdb

数据库索引的sortingstring表(SSTable)或B +树?

使用两个数据库来说明这个例子: CouchDB和Cassandra 。 CouchDB的 CouchDB使用一个B +树来处理文档索引(使用一个巧妙的修改在其append-only环境中工作) – 更具体地说,当文档被修改(插入/更新/删除)时,它们被附加到正在运行的数据库文件以及完整的Leaf – >所有节点的B +树节点path,由文档之后的更新版本实现。 这些分片索引修订内容正好与修改一起内联,使得完整索引是在文件末尾附加的最近的索引修改的联合,以及在数据文件中更远的附加部分,这些附加的部分仍然是相关的,尚未修改。 searchB +树是O(logn)。 卡桑德拉 Cassandra将logging键保存在表中(我们把它们看作是这个问题的数组),并将它们作为单独的(sorting的) sortingstring表格不时地写出来。 我们可以把所有这些表格的集合看作是“索引”(从我的理解)。 Cassandra需要时常压缩/合并这些sortingstring表 ,创build更完整的索引文件表示。 searchsorting的数组是O(logn)。 题 假设维护CouchDB中的部分B +树块与Cassandra中的部分sortingstring索引之间存在类似的复杂度,并且假设两者都提供O(logn)search时间,那么您认为哪一个会更好地表示数据库索引,以及为什么? 我特别好奇的是,如果有一个相对于另一个的实现细节,使其特别具有吸引力,或者如果他们都是洗钱,并且您只是select您喜欢使用的任何数据结构/对开发人员更有意义。 谢谢你的想法。

按值sortingCouchDB视图

我正在testingCouchDB,看看它如何处理日志logging一些search结果。 我想要做的是产生一个视图,我可以从结果中产生最高的查询。 目前我有这样的事情: 示例文档部分 { "query": "+dangerous +dogs", "hits": "123" } 地图function (不完全是我需要/想要的,但它足够testing) function(doc) { if (doc.query) { var split = doc.query.split(" "); for (var i in split) { emit(split[i], 1); } } } 减lessfunction function (key, values, rereduce) { return sum(values); } 现在这将使我得到一个格式的结果,其中一个查询项是关键和右边的这个术语的计数,这是很好的。 但我希望按价值sorting,而不是按键。 从它的声音,这是不可能与CouchDB。 那么,有没有人有任何想法,我怎样才能得到一个视图,我有一个有序的查询条款及其相关计数版本? 我对CouchDB非常陌生,我不能想到如何编写所需的function。

CouchApps和用户authentication

我把这个问题的一个变种发布到了CouchDB的用户列表,还没有收到答复。 我很想知道是否有人build立了所谓的“CouchApp”。 一个直接在CouchDB中托pipe的纯HTML / JavaScript应用程序。 如果是这样,你是如何处理用户身份validation? 我希望能够创build一个典型的login表单(用户名,密码),然后使用这些凭据对视图或其他机制,然后将用户传递到应用程序(同时将其(encryption)用户ID存储在cookie,据推测)。 我习惯于通过像couchdb-python和一个普通的Web服务器这样的简单代理,但想知道在这些types的CouchApps中对用户进行身份validation的最佳实践。 编辑:一年后,这是现在内置到CouchDB。 这个video是一个很好的示范。 (谢谢Daniel!)

Redis,CouchDB还是Cassandra?

各种NoSQL数据库有哪些优势和劣势? 特别是Redis似乎很难在多个服务器上分配写入负载。 是这样吗? 这是一个大问题吗? 在这之前,服务需要增长多less可能是一个重大问题?

selectMongoDb / CouchDb / RavenDb – 性能和可伸缩性的build议

我们正在寻找一种具有故障转移群集function的文档数据库存储解决scheme,用于某些读/写密集型应用程序。 我们将平均每秒钟写入数据库的并发写入(平均每秒高达70,000次),并可能有几乎相似的读取次数。 我们还需要一个db的机制来通知新写入的logging(在db级别的某种触发器)。 在正确select文档数据库和相关的容量规划方面,什么是一个好的select? 更新 关于期望的更多细节。 平均而言,我们预计在3-4个数据库/文档集合中,每秒插入(新文档)数量为40,000(40K)。 峰值可能高达12万(120K)插入 Inserts应该是可以立即读取的 – 几乎是实时的 与此同时,我们预计每秒大约5000次更新或删除 与此同时,我们也期望500-600个并发查询访问数据。 这些查询和执行计划在某种程度上是已知的,尽pipe这可能需要在一周左右更新一次。 系统应支持存储端的故障转移群集

CouchDB一个真实世界的例子

今天晚上在我的日常技术Googlesearch中,我看到很多关于如何比任何RDBM执行好一百到几百倍的演示之后,发现了couchDB,它将如何帮我们节省SQL语言,表格,主键等等。 我决定自己尝试一下。 唯一的问题,似乎我无法弄清楚它是如何工作的。 就像一开始,我想使用couchDB编写一个web联系人pipe理器。 该项目将使用户能够做一些基本的东西 创build/编辑/删除联系人 看到他们订购的联系清单 search他们在各种标准 那么我该如何开始? 这里有一些我的想法 像7月,Ann那样为每个用户创build一个数据库 在这些数据库中,添加一些types联系的文件,文件首先看起来像这样代码1 创build/编辑/删除很简单,只需要在好的数据库中执行PUT,POST,DELETE search将像dnolenbuild议的那样由couchdb-lucene处理 现在这里来了困难的一部分,我真的不明白整个地图/减less的概念,以及如何使用它来做我以前用SQL做的工作。 还有意见如何处理分页,也分组。 我想build立一个像这样的分页链接的屏幕 John,Doe Johny,Hallyday Jon,Skeet ABCDEF ** J **等…. < – 这些链接,以查看具有该名字的人 我应该创造什么样的观点来实现这一点,如果你能提供样品,那就太好了。 联系文件。 { type: 'contact', firstname: 'firstname', lastname: 'lastname', email: ['home': 'foobar@foobar.net', 'work': 'foobar@foobar-working.net'], phone: ['home': '+81 00 0000 0000'], address: [] … some other fields maybe … […]

分页在CouchDB?

我将如何去执行分页所需的查询? 基本上,当请求页面1时,获得前5个条目。 对于第2页,得到下一个5等等。 我打算通过couchdb-python模块来使用它,但是这对实现没有任何影响。

困惑于如何在Android上使用CouchDB

我想让CouchDB作为我的移动应用程序的后端运行,取代SQlite。 作为这个技术的新手,我感到非常困惑,因为除了Couchbase去年发布的所有类似的testing产品(Couchbase,Couchbase Single Server,Membase,Couchbase Mobile)之外,他们现在似乎正在将所有这些产品到一个单一的项目,Couchbase服务器。 但是,这实际上是Membase,而不是CouchDB。 最重要的是,CouchDB的创build者不再需要在CouchDB上工作。 然而,似乎有一个关于CouchDB的非常活跃的社区。 这是我所知道的: 据我所知,该公司的Couchbase不再提供CouchDB的分布。 据我所知,Couchbase服务器是Couchbase公司的新焦点,根本不是CouchDB,它与CouchDB不兼容。 它不实现CouchDB使用的HTTP API,它使用从Membase发展而来的二进制协议。 所有关于CouchDB Mobile的最新信息似乎都指向了Couchbase Mobile。 我的问题归结为: 在Android设备上还可以使用CouchDB吗? 特别是CouchDB,而不是Couchbase服务器,因为这些API不兼容 如果还有可能,我该怎么做? 源代码在哪里? 任何示例应用程序 对不起,如果我的问题变得困惑。 说实话,我在网上浏览大量看似矛盾的post的时候很难。 我只想在Android上运行CouchDB! 🙂

有一个托pipe的CouchDB服务提供商吗?

我想了解CouchDB,并想知道是否有提供CouchDB服务的主机提供商。 如果您使用过,请详细介绍您的经验。 更新: 我发现在虚拟机片上的Ubuntu上可以使用CouchDB。 我对运行VM解决scheme和使用.Net访问数据的经验感兴趣。 使用.Net Web服务器和REST调用Linux上的CouchDB,混合解决scheme是否可行? 你必须采取什么额外的安全措施? 跨站点脚本的问题?

处理由BigCouch中的复制引起的冲突

CouchDB 复制和冲突 wiki页面build议使用_bulk_docs all_or_nothing=true来强制写入文档的新版本,即使这会在写入时引入冲突,然后在后续读取之后立即parsing。 我已经实现了这个概念上,它似乎工作正常。 但BigCouch不支持all_or_nothing语义,因此写入批量文档可能会返回409个冲突结果。 对BigCouch中的复制引入的冲突实施类似的应用程序级冲突解决scheme的最佳做法是什么? 我应该看写时冲突解决吗?