我们有Aerospike服务器版本3.8.3(支持LDT)
我们收到以下异常-
Key key = new Key(aeroconf.getHistoryNamespace(), setName, owner);
LargeMap lmap = client.getLargeMap(null, key, binName, null);
//Some processing here..
lmap.put(Value.get(mapKey), Value.get(monthlyScoreHistory));
在此行lmap.put()-
ldt-enabled true
即使在Aerospike.conf中将SELECT
ORD_CODE,
ORL_EVENT,
ACT_ACT
FROM
R5ORDERS inner join R5ORDERLINES on ORD_CODE = ORL_ORDER
inner join R5ACTIVITIES on ACT_ORDER = ORL_ORDER
WHERE
ORL_EVENT = '144933'
GROUP BY
ORD_CODE, ORL_EVENT, ACT_ACT
ORDER BY
ACT_ACT
设置为名称空间级别,上述情况仍在发生。
答案 0 :(得分:1)
LMap在server release 3.5.2中被声明为已弃用,而到了3.8.3,您只剩下LList。
您应该改为使用非LDT Map API。使用Aerospike database 4.2时,您还有8MB write-block-size
的限制,这应该绰绰有余,尽管您将需要在每个节点上有足够的内存来处理此类块的缓冲并加载可能非常大的记录。从性能的角度来看,拥有多MB记录也不是一个好主意,但是绝对比LMap情况要好,因此这不应成为迁移的障碍。