私はmongodbのYCSBを実行しており、このドキュメントに従っています。
以下を使用してデータをロードするとき:
./bin/ycsb ロード mongodb -s -P ワークロード/ワークロードa > outputLoad.txt
1 つのドキュメントが mongodb に挿入されています。しかし、ホスト名と接続文字列に関連する次の奇妙な名前を取得します。
0 sec: 0 operations;
Found server connection string
Found server connection string l
Found server connection string o
Found server connection string c
Found server connection string a
Found server connection string l
Found server connection string h
Found server connection string o
Found server connection string s
Found server connection string t
Found server connection string :
Found server connection string 2
Found server connection string 7
Found server connection string 0
Found server connection string 1
Found server connection string 7
10 sec: 1 operations; 0.1 current ops/sec; [INSERT AverageLatency(us)=1106185]
Couldn't insert key user8517097267634966620
com.mongodb.MongoTimeoutException: Timed out after 10000 ms while waiting for a server that matches AnyServerSelector{}. Client view of cluster state is {type=Unknown, servers=[{address=l:27017, type=Unknown, state=Connecting, exception={com.mongodb.MongoException$Network: Exception opening the socket}, caused by {java.net.UnknownHostException: l: Name or service not known}}]
at com.mongodb.BaseCluster.getServer(BaseCluster.java:82)
at com.mongodb.DBTCPConnector.getServer(DBTCPConnector.java:656)
at com.mongodb.DBTCPConnector.access$500(DBTCPConnector.java:40)
at com.mongodb.DBTCPConnector$MyPort.getConnection(DBTCPConnector.java:505)
at com.mongodb.DBTCPConnector$MyPort.get(DBTCPConnector.java:448)
at com.mongodb.DBTCPConnector.getPrimaryPort(DBTCPConnector.java:407)
at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:184)
at com.mongodb.DBCollectionImpl.insert(DBCollectionImpl.java:167)
at com.mongodb.DBCollection.insert(DBCollection.java:93)
at com.mongodb.DBCollection.insert(DBCollection.java:78)
at com.mongodb.DBCollection.insert(DBCollection.java:120)
at com.yahoo.ycsb.db.MongoDbClient.insert(MongoDbClient.java:254)
at com.yahoo.ycsb.DBWrapper.insert(DBWrapper.java:148)
at com.yahoo.ycsb.workloads.CoreWorkload.doInsert(CoreWorkload.java:461)
at com.yahoo.ycsb.ClientThread.run(Client.java:269)
11 sec: 1 operations; 0 current ops/sec; [INSERT AverageLatency(us)=10005522] [CLEANUP AverageLatency(us)=10127]
また、l: Name or service not known in stack trace が表示されます。ここで、 lはlocalhostから抽出されたようです。
問題を見つけようとしましたが、このコード テストがうまくいきません。
誰かが接続文字列の問題を見つけることができますか? mongodb サーバーは正常に稼働しています。問題が発生したとき、mongo ログにエラーは記録されませんでした。bind_ip:0.0.0.0 とlocalhostとは異なるホスト名でテストしました。
Mongodb バージョン 3.0.4、mmapv1、Apache Maven 3.0.5。