当前位置: 首页 > 知识库问答 >
问题:

Aerospike:写入单节点Aerospike时出现无效节点异常。

唐运诚
2023-03-14

我使用的是Aerospike3.12.1.1和Java4客户端。

Aerospike命名空间配置为在内存中。我的意图是使用20个线程并行地向内存单仓名称空间中写入1亿个整数,其中每个线程写入500万个整数。

Exception in thread "pool-1-thread-15"     com.aerospike.client.AerospikeException$InvalidNode: Error Code -3: Invalid node
at com.aerospike.client.cluster.Cluster.getRandomNode(Cluster.java:717)
at com.aerospike.client.command.Command.getSequenceNode(Command.java:1050)
at com.aerospike.client.command.Command.getNode(Command.java:1020)
at com.aerospike.client.command.SyncCommand.execute(SyncCommand.java:61)
at com.aerospike.client.AerospikeClient.put(AerospikeClient.java:360)
at Write.run(Write.java:50)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)




import com.aerospike.client.AerospikeClient;
import com.aerospike.client.Host;
import com.aerospike.client.policy.ClientPolicy;
import com.aerospike.client.Bin;
import com.aerospike.client.Key;
import com.aerospike.client.Record;

import java.io.*;

public class Write implements Runnable{
        int start;
        int count;
        int end;
        private long unixTime;
        private long timeTaken;
        private long totalTimeTaken;
        private long totalRequests;
        private long minLatency;
        private long maxLatency;
        private double avgLatency;
        private FileOutputStream out;

        public  Write(int s, int c){
                this.start = s;
                this.count = c;
                this.end = this.count;
                this.totalTimeTaken = 0;
                this.totalRequests = 0;
                this.minLatency = 1000000;
                this.maxLatency = 0;
                //try{
                //  this.out = new FileOutputStream("output.txt");
                //}catch(Exception e){
                //}

        }

        public void run(){
                Host[] hosts = new Host[] {
                        new Host("127.0.0.1", 3000),
                };
                AerospikeClient client = new AerospikeClient(new ClientPolicy(), hosts);
                for(int k=this.start; k<=(this.end); k++){
                        Key key = new Key("mem", null, k);
                        Bin bin1 = new Bin("m", k+count);
                        Bin bin2 = new Bin("n", k+count);
                        Bin bin3 = new Bin("b", k+count);
                        //Bin bin = Bin.asNull("b");
                        unixTime = System.nanoTime();
                        client.put(null, key, bin1, bin2, bin3);
                        timeTaken = System.nanoTime() - unixTime;
                        totalTimeTaken += timeTaken;
                        if(timeTaken < minLatency){
                                minLatency = timeTaken;
                        }
                        if(timeTaken > maxLatency){
                                maxLatency = timeTaken;
                        }
                        totalRequests ++;
                }

                avgLatency = totalTimeTaken / totalRequests;
                System.out.println("TotalReqs:" + totalRequests + " TotalTime:" + totalTimeTaken + " MinLatency:" + ((float)minLatency/1000000.0) + " MaxLatency:" + ((float)maxLatency/1000000.0) + " AvgLatency:" + ((float)avgLatency/1000000.0));


        }
}

共有1个答案

张砚
2023-03-14

为此命名空间定义的内存大小是多少?您是否使用此命名空间的默认hwm(60%)和默认停止写入(90%)?此节点上可用的RAM是多少?

 类似资料:
  • Aerospike是一个以分布式为核心基础,可基于行随机存取内存中索引、数据或SSD存储中数据的数据库。 Aerospike主要用于广告业务,作为一个服务器端的cookie存储来使用,在这种场景下读取和写入性能是至关重要的。 Aerospike 提供免费社区版本。

  • 只是尝试使用Express服务器执行签名和验证JSON Web令牌的基本实现,但“验证”函数不断返回“无效令牌”错误。 当将生成的令牌从/路由粘贴到jwt.io调试器中时,它最初会说“无效签名”,但当我选中“秘密是base 64编码的”复选框时,调试器会验证签名,因此我尝试了base 64编码/解码我的秘密在签名和验证端,但没有任何工作。 我目前正在使用名为“REST Client”的VS代码扩充

  • 对于单个节点,我们以类型object为例,会进入reconcileSingleElement 你可以从这里看到reconcileSingleElement源码 const isObject = typeof newChild === 'object' && newChild !== null; if (isObject) { // 对象类型,可能是 REACT_ELEMENT_T

  • 首先,我为我的英语感到抱歉。我有一个问题与Java API传输客户端。我有一个主节点和三个数据节点。我的Elasticsearch版本是5.0.2,我使用5.0.2 API。 我尝试用传输客户端连接到群集,然后响应 这是我的客户端代码: 传输客户端的端口-9300,我的所有节点都在此端口下通信。我看到了很多和我一样的问题,我试图遵循其中包含的建议。但我也有同样的例外。 如果需要更多的信息或任何文件

  • 本文向大家介绍实现双向链表删除一个节点P,在节点P 后插入一个节点,写出这两个函数。相关面试题,主要包含被问及实现双向链表删除一个节点P,在节点P 后插入一个节点,写出这两个函数。时的应答技巧和注意事项,需要的朋友参考一下 【参考答案】

  • 如果我没弄错的话,树通常是一个列表,其中的元素按特定顺序排列。孩子们不在他们自己的子列表中,他们都在同一个列表中。 所以,我试图创建一个Tree类,其中包含TreeNodes(类)使用Tree类中的List。 我如何跟踪父母/孩子/叶子?如果父母“父母1”,有两个孩子“孩子A”和“孩子B”,我如何将他们联系在一起?