基于指针的分页

Coll新万博移动客户端ibra api支持offset-based分页浏览数据的主要方法通过我们休息和Java的端点。这已经被证明有一致性和性能限制,你可以克服使用基于指针的分页。

Offset-based分页

在offset-based分页中,数据浏览页面从记录的集合,总是对它的一些字段排序。每个页面都是一个窗口,从任意指数和结束在另一个任意指数排序的集合。为此,我们将以下参数:

  • 抵消:的索引所需的页面开始。
  • 限制:所需的页面的大小。

https:// < you新万博移动客户端r_collibra_platform_url > /休息/ 2.0 /资产?抵消= 3000限制= 1000

的反应是类似如下:

{“总”:10000000,“抵消”:3000年,“限制”:1000年,“结果”:[…]}

API的消费者可以浏览页面增加抵消一定量。当结果不如在大小的列表提供的限制,这意味着我们已经达到排序的最后记录的集合。

基于偏移的分页支持总额的计算。这可能是一个资源密集型操作,您可以禁用通过提供countLimit参数以零值:https:// < you新万博移动客户端r_collibra_platform_url > /休息/ 2.0 /资产?抵消= 3000限制= 1000 &countlimit = 0

offset-based分页的局限性

Offset-based分页会导致一致性问题的场景,记录被插入或删除的页面位于前你正在浏览的页面。这通常发生在事件的并发用户同时执行这样的操作当你浏览数据。下面的例子演示了这种情况。

考虑以下等记录的集合,是进行排序:

(0,1,2,3,4,5]

如果我们有以下的动作序列:

  1. 用户请求一个第一页抵消= 0限制= 2,返回预期的数据:[0,1]
  2. 用户B插入一个新的记录0.5集合,使得现在看起来像下面的:[0、0.5、1、2、3、4、5)
  3. 用户请求下一个页面,从偏移量对应于下一个页面:抵消= 2限制= 2

返回的数据是[1,2]

在这种情况下的并发操作,用户的页面浏览包含重复信息。记录1本例中出现在两个不同的页面。

如果我们重复实验,有并发用户删除一个记录,而不是插入,然后我们会有一个逆一致性问题记录,可以失踪的页面。

这种一致性问题让技术集成困难写在一个健壮的和安全的方法。

基于指针的分页

基于指针的分页使用指针的概念,它可以被视为一个技术指标排序的记录在记录的集合。指示一个索引,而是在offset-based分页,我们直接指示记录。

每个API调用返回的游标记录下的记录的集合。然后,您可以使用此光标在接下来的请求指示记录开始下一个页面。

因此,在前一页插入或删除记录没有任何逻辑副作用的后续调用。

API的消费者必须提供一个空指针的初始调用:

https:// < you新万博移动客户端r_collibra_platform_url > /休息/ 2.0 /资产?限制= 1000光标= &sortField = ID

的反应是类似如下:

{“总”:1、“抵消”:1、“限制”:1000年,“结果”:[…]“nextCursor”:“QUZURVI6aWQ6ODgxZDc3MjgtOGIwNy00Yjk3LWIwN2UtMjVlMDMxMjQ5Y2U4OnNpZ25pZmllcjowMDAwMDBjZi02N2QzLTQ0ZjMtYjViZS0xYjczMGNmYTY2ZmQ = "}

然后,您可以使用nextCursor值并将其传递给下一个请求:

https:// < you新万博移动客户端r_collibra_platform_url > /休息/ 2.0 /资产?限制= 1000光标= QUZURVI6aWQ6ODgxZDc3MjgtOGIwNy00Yjk3LWIwN2UtMjVlMDMxMjQ5Y2U4OnNpZ25pZmllcjowMDAwMDBjZi02N2QzLTQ0ZjMtYjViZS0xYjczMGNmYTY2ZmQ = &sortField = ID

当没有更多的数据是可用的,不包含的响应nextCursor字段,表示没有其他页面可用。

基于指针的分页总是进行排序的记录。这意味着API使用默认值,这取决于每个API如果不指定sortField参数。

优化使用的字段。目前,只有ID优化排序字段是在我们的api和总是可用的基于指针的api,支持分页。这将导致显著的性能提升,使响应时间统一所有浏览页面。

基于指针和offset-based分页是互斥的。使用参数会导致错误。

性能比较

下面的图片显示了响应时间差异cursor-bases和Collibra offset-based分页数据智能云版本2022.08请求页面时的10.000记录共1000万条记录通过REST API的核心资产资源新万博移动客户端。