我正在考虑实现一个CouchDB服务器,以提供对我们为内部业务操作存储的某些元数据的临时搜索。
我们在内部流程中存储了许多“属性”,例如大小,来源,提交日期和“工作”的URL。
在我们的关系数据库中,这一切都很好,但是我们的用户希望通过提供类似于Google搜索的“搜索条件”来建立相似工作的列表。因此,用户可以说“向我显示所有大于XXX且在YYY之后提交的作业”,并返回描述和URL的列表。
对于Couch来说,这听起来很完美,而根据我的研究,它似乎可以很好地工作。
我的问题是,使用适当的硬件可以很好地扩展吗?我们有150-200百万个此类文档,每个文档有11-30个属性。元数据的大小最多为几KB。
我最初希望使用四核服务器(VM)进行测试,但我需要将其扩展以同时支持100-250个用户。
我知道我可以在大多数数据库服务器上做到这一点,但是我正在寻找可以提供即席查询方面的功能(通过REST或HTTP可以使用我们自己的搜索工具)。
有没有人有过设置Couch并将其用于此级别的生产负载的经验?
最佳答案
并发连接不是问题,erlang和CouchDB是为实现并发性能而构建的。
您是否认为必须动态生成新的地图函数,使其听起来像这样?
每当您添加新的视图地图功能时,都会在初始视图生成中遇到很大的瓶颈。
如果您使用erlang视图,则它们生成的速度比javascript视图快得多,因为它们没有执行JSON序列化步骤,这可以显着提高视图生成的性能。
生成视图后,即使您要讨论的大小也将非常快。