简体   繁体   中英

AerospikeException - Error Code 1500: LDT-Not Enabled on Namespace on lmap.put() even though ldt-enabled is set to true

We have Aerospike server version 3.8.3 (which supports LDTs)

We are getting the following exception -

2018-08-01 16:11:31,558 1320573 [task-scheduler-3] ERROR o.s.a.i.SimpleAsyncUncaughtExceptionHandler [SimpleAsyncUncaughtExceptionHandler.java:37] - Unexpected error occurred invoking async method 'public void com.MyClassNameService.storeCurrentBalance(java.lang.String,java.util.Date)'.
com.aerospike.client.AerospikeException: Error Code 1500: /opt/aerospike/sys/udf/lua/ldt/lib_lmap.lua:2620 LDT-Not Enabled on Namespace

At this line lmap.put() -

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));

Above is happening even though ldt-enabled true is set at namespace level in aerospike.conf.

LMap were declared as deprecated in server release 3.5.2 and by 3.8.3 you only have LList remaining.

You should move to using the non-LDT Map API instead. With Aerospike database 4.2 you also have an 8MB write-block-size limit, which should be more than plenty, though you'll need to have enough memory on each node to handle buffering such blocks and loading those potentially very large records. It's also not a great idea from a performance perspective to have multi-MB records, but it'll definitely be higher performance than your LMap situation, so that shouldn't be a barrier to migration.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM