为什么航空秒读/秒比写入/秒要少得多?

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

我正在使用aerospike v4.8,并且向aerospike发出读取和写入请求,其中在我的写入请求中我获得4000个写入/秒的吞吐量,而在读取中该吞吐量仅为10-15个读取/秒,这非常低。

我的查询是:

let query = aerospikeClient.query(nameSpace, set)
        query.select('count', 'targetKey')
        query.predexp = [
            predexp.stringBin('campaignKey'),
            predexp.stringValue(Id1 + ':' + Id2 + ':' + Id3 + ':' + channel),
            predexp.stringEqual(),

            predexp.integerBin('epochDay'),
            predexp.integerValue(epochDay),
            predexp.integerGreaterEq(),

            predexp.integerBin('epochDay'),
            predexp.integerValue(epochDay),
            predexp.integerLessEq(),

            predexp.and(3)
        ]

无法理解这里出了什么问题,需要帮助。

我的配置是:

namespace test {
        replication-factor 2
        memory-size 8G
        default-ttl 7d 
        storage-engine device {
                device /dev/xvdf
                scheduler-mode noop
                write-block-size 16K
                data-in-memory false
        }
}

索引是:

CREATE INDEX campaignIndex ON antiSpamming.userTargetingMatrix (campaignKey) string;
CREATE INDEX targetIndex ON antiSpamming.userTargetingMatrix (targetKey) string;
CREATE INDEX epochDayIndex ON antiSpamming.userTargetingMatrix (epochDay) NUMERIC;
aerospike aerospike-ce
1个回答
1
投票

第一件事,那根本不是真的。 Aerospike读取总是比写入快。要执行写操作,需要更长的代码路径和更多的IO。除非您声明您的操作是REPLACE,否则它将表现为upsert,这意味着它将首先尝试读取同一记录,将数据合并,然后将其写出。

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