原因:
https://discuss.aerospike.com/t/faq-what-are-the-theories-for-tsvc-timeout/5265
一种常见的原因是:单个key上的读写操作,过于频繁,导致该key的处理队列,出现事务排队;
通常是因为热点数据造成。可以调整
transaction-pending-limit,调整队列的长度,让服务端抛出hot key异常,业务端及时处理。
例如hot key高于一定的频率或者出现次数,就停止读写一定时间,环节服务端压力;
如果数据是写入磁盘,可以考虑read-page-cache;或者直接启用内存模式。
参考:
key-busy
hot-key
read-page-cache
com.aerospike.client.AerospikeException: Error Code 14: Hot keyat com.aerospike.client.command.ReadCommand.parseResult(ReadCommand.java:111)at com.aerospike.client.command.SyncCommand.execute(SyncCommand.java:84)at com.aerospike.client.AerospikeClient.execute(AerospikeClient.java:1620)at cn.tongdun.shenwei.core.storage.AerospikeStorage.calculation(AerospikeStorage.java:386)at cn.tongdun.shenwei.core.callable.TimeStampRunnable.call(TimeStampRunnable.java:50)at java.util.concurrent.FutureTask.run(FutureTask.java:266)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:750)