Couchbase BulkGet in spring 数据

Couchbase BulkGet in spring data couchbase

我正在使用带有 Spring 数据的 Couchbase,并希望实施 bulkGet 的 Couchbase。请让我知道以下内容:

  1. 可以通过Spring数据吗?
    • 如果是,能否分享一个例子?
  2. findAll(使用 _all 视图)在性能方面是否与 bulkGet 相当?
  3. 我可以获取 _id 和 Couchbase 文档吗?

环境:- Couchbase 4.0,Spring 数据 2.0。0.RELEASE,Java 8.

提前致谢!

我假设您是在询问存储库上下文中的批量获取。

首先,Spring Data Couchbase 目前还没有完全支持 "bulkGet"。大部分实现是基于 SDK 同步 API,批量获取通常使用 异步 API,使用 RxJava.

请注意,在 Couchbase 的协议级别没有实际的 "bulkGet" 操作,它只是 SDK 发出多个单个 Get 并将它们批处理在一起。

回答你的第二个问题,以上内容很重要。 Couchbase Java SDK 文档(此处)中讨论的批量获取模式略微提高了性能,因为与同步模式不同,我们不会等待检索一个项目来获取下一个项目。

Spring Data Couchbase 中的 findAll()findAll(Iterable) 方法都在 view 之上运行,它只允许检索与实体类型匹配的文档您的存储库,但引入了一个间接级别,与 key/value gets.

的纯序列相比,它可能会降低性能

因此,您最接近 Spring Data Couchbase 中的批量操作的方法是 了解您感兴趣的所有 ID ,然后 对每个 ID 执行 findOne

在短期内,findAll(Iterable) 签名背后的代码可能会通过在所有提供的 ID 上应用批量获取模式来改进,但这意味着忘记视图引起的类型检查,所以我不确定...