将大数据对象写入AerospikeDB的最佳方法是什么?

问题描述 投票:0回答:1

我的应用程序根据用户请求调用第三方API以获得搜索结果。我们希望将这些结果存储在缓存中以便于检索。问题是这些搜索结果的大小很大,大约为。大约11MB。由于对象的大小很大且应用程序是多线程的,因此将同时对Aerospike进行多次调用,并且Aerospike不断抛出InvalidNode异常。有没有一种方法可以存储对象并查看低延迟结果?

aerospike
1个回答
0
投票

要存储大对象并将数据库用作缓存,可以使用存储引擎内存,该内存可以存储比持久存储选项大得多的对象(SSD:可配置-最大8MB,默认1MB,最佳SSD性能为128KB)。在您的情况下,延迟将更多地取决于对象的大小和网络数据传输速率。例如,一个11 MB对象(= 88 Mbits),每秒10 G-bits的总节点网络接口(AWS r5实例示例)以及从节点传入和传入节点的复制(占用额外的带宽),您可以在10 * 1024/88 = 116,然后116/3 =〜每个节点每秒38次写入。 (3:客户端写,出副本写,传入副本写)。因此,为了获得更好的延迟,您要么需要每个节点更多的网络带宽,要么水平扩展群集,以便更多的节点处理传入的写入。

评论中讨论的无效节点问题更多是配置/群集/连接性问题-与延迟无关。

© www.soinside.com 2019 - 2024. All rights reserved.