1
4
批量读取是正确的方法。结果将按照列表中指定的键的顺序返回。未找到的记录将返回null。客户端通过节点并行化密钥-等待(与二级索引或扫描不同,客户端中没有回调),并收集所有节点的返回结果,并按原始顺序将其显示回客户端。确保客户端中有足够的内存来保存所有返回的批处理结果。 |
2
3
是否为自定义项? 首先,您不能作为UDF进行批读取,至少不能以任何远程高效的方式进行。 你有两种UDF。第一个是 record UDF ,它仅限于对单个记录进行操作。该记录在UDF执行时被锁定,因此它可以读取或修改数据,但它被沙盒阻止访问其他记录。第二个是 stream UDF ,它是只读的,并针对查询或命名空间或集的完整扫描运行。它的目的是允许您实现聚合。即使您一次检索1000个密钥,使用流UDF仅从更大的集合或命名空间中拾取一批密钥也是非常低效的。除此之外,UDF总是比Aerospike提供的本机操作慢,这对于任何数据库都是如此。 批量读取 阅读文档了解 batch operations ,特别是 batch-index 协议社区论坛中有一对很好的常见问题解答,您应该阅读: 容量规划 最后,如果您的应用程序每秒收到2000个请求,并且每个请求都变成了1000个密钥的批量读取,那么您需要确保您的集群的大小适当,能够处理2000*1000=2Mtps的读取。调整批索引参数将有所帮助,但如果您没有足够的聚合SSD容量来支持每秒200万次的读取, 你的问题是 capacity planning . |