• R/O
  • SSH
  • HTTPS

okuyama: 提交


Commit MetaInfo

修訂1005 (tree)
時間2013-01-17 21:11:17
作者okuyamaoo

Log Message

(empty log message)

Change Summary

差異

--- trunk/src/okuyama/imdst/helper/KeyManagerHelper.java (revision 1004)
+++ trunk/src/okuyama/imdst/helper/KeyManagerHelper.java (revision 1005)
@@ -232,6 +232,7 @@
232232
233233 // クライアントからのパラメータ分解
234234 // clientParameterList = clientParametersStr.split(ImdstDefine.keyHelperClientParamSep);
235+
235236 clientParameterList = clientParameterSplit(clientParametersStr, ImdstDefine.keyHelperClientParamSep);
236237 // 処理番号を取り出し
237238 if(clientParameterList[0] == null || clientParameterList[0].equals("")) clientParameterList[0] = "-1";
@@ -278,6 +279,44 @@
278279 // メソッド呼び出し
279280 this.setDatanode(requestHashCode, requestDataNode, transactionCode);
280281 break;
282+ case 1001 :
283+
284+ // Key値とDataNode名を格納する
285+
286+ int readDataLen = Integer.parseInt(((String)br.readLine()));
287+ char[] strBufChar = new char[readDataLen];
288+ int readLen = br.read(strBufChar);
289+
290+ while (readLen != readDataLen) {
291+ int nowRead = br.read(strBufChar, readLen, (readDataLen - readLen));
292+ readLen = readLen + nowRead;
293+ }
294+
295+ String readStr = new String(strBufChar);
296+
297+ clientParameterList = clientParameterSplit(readStr, ImdstDefine.keyHelperClientParamSep);
298+ requestHashCode = clientParameterList[1];
299+ transactionCode = clientParameterList[2];
300+ requestDataNode = clientParameterList[3];
301+
302+ // 値の中にセパレータ文字列が入っている場合もデータとしてあつかう
303+ if (clientParameterList.length > 4) {
304+ requestDataNode = requestDataNode +
305+ ImdstDefine.keyHelperClientParamSep +
306+ clientParameterList[4];
307+ }
308+
309+ // メソッド呼び出し
310+long startAAA = System.nanoTime();
311+ retParams = this.setDatanode(requestHashCode, requestDataNode, transactionCode);
312+long endAAA = System.nanoTime();
313+System.out.println((endAAA - startAAA));
314+ retParamBuf.append(retParams[0]);
315+ retParamBuf.append(ImdstDefine.keyHelperClientParamSep);
316+ retParamBuf.append(retParams[1]);
317+ retParamBuf.append(ImdstDefine.keyHelperClientParamSep);
318+ retParamBuf.append(retParams[2]);
319+ break;
281320 case 2 :
282321
283322 // Key値でDataNode名を返す
@@ -2017,8 +2056,11 @@
20172056
20182057 public String[] clientParameterSplit(String targetStr, String sep) {
20192058
2020- if (targetStr.indexOf("2,") == 0) {
2059+ if (targetStr.indexOf("1001,") == 0) {
20212060
2061+ return targetStr.split(sep);
2062+ } else if (targetStr.indexOf("2,") == 0) {
2063+
20222064 // Get
20232065 String[] retSplit = new String[2];
20242066 retSplit[0] = "2";
@@ -2041,5 +2083,4 @@
20412083 }
20422084 }
20432085
2044-
20452086 }
\ No newline at end of file
--- trunk/src/okuyama/imdst/helper/MasterManagerHelper.java (revision 1004)
+++ trunk/src/okuyama/imdst/helper/MasterManagerHelper.java (revision 1005)
@@ -5243,11 +5243,9 @@
52435243 // 遅延指定確認
52445244 // Subが指定だれていてdelay指定がtrueの場合
52455245 if (!delayFlg) {
5246-
52475246 // 同期
52485247 keyNodeConnector.println(sendStr);
52495248 keyNodeConnector.flush();
5250-
52515249 // スレーブノードが存在する場合は送信まで済ませておく
52525250 if (subKeyNodeName != null) {
52535251
--- trunk/src/okuyama/imdst/helper/KeyManagerConnectHelper.java (revision 1004)
+++ trunk/src/okuyama/imdst/helper/KeyManagerConnectHelper.java (revision 1005)
@@ -61,6 +61,7 @@
6161 if (param == null || param.length < 1) continue;
6262
6363 Socket socket = (Socket)param[0];
64+ socket.setTcpNoDelay(true);
6465 PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), ImdstDefine.keyHelperClientParamEncoding)));
6566 //PrintWriter pw = new PrintWriter(socket.getOutputStream());
6667 BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(), ImdstDefine.keyHelperClientParamEncoding));
--- trunk/src/okuyama/imdst/job/KeyManagerJob.java (revision 1004)
+++ trunk/src/okuyama/imdst/job/KeyManagerJob.java (revision 1005)
@@ -265,6 +265,7 @@
265265 }
266266
267267 this.serverSocket = new ServerSocket();
268+
268269 this.serverSocket.bind(bindAddress, this.backLog);
269270
270271 // 共有領域にServerソケットのポインタを格納
--- trunk/src/okuyama/imdst/util/io/KeyNodeConnector.java (revision 1004)
+++ trunk/src/okuyama/imdst/util/io/KeyNodeConnector.java (revision 1005)
@@ -77,7 +77,8 @@
7777 inetAddr = new InetSocketAddress(NodeDnsUtil.getNameToReal(this.nodeName), this.nodePort);
7878 this.socket = new Socket();
7979 this.socket.connect(inetAddr, connectOpenTime);
80-
80+ //this.socket.setTcpNoDelay(ImdstDefine.tcpNoDelay);
81+ this.socket.setTcpNoDelay(true);
8182 this.connectTime = new Long(JavaSystemApi.currentTimeMillis);
8283
8384 // リカバー対象へのコネクションはタイムアウト時間を長くする
@@ -221,8 +222,23 @@
221222 public void println(String str) throws Exception {
222223 try {
223224
224- this.pw.println(str);
225- this.retry = false;
225+ if (str.length() < 50000) {
226+
227+ this.pw.println(str);
228+ this.retry = false;
229+ } else {
230+
231+ if (str.indexOf("1,") == 0) {
232+ this.pw.println("1001," + str.length());
233+ this.pw.println(str.length());
234+ this.pw.flush();
235+ this.pw.print(str);
236+ this.retry = false;
237+ } else {
238+ this.pw.println(str);
239+ this.retry = false;
240+ }
241+ }
226242 } catch (Exception e) {
227243
228244 if (this.retryConnectMode == true && this.retry == false) {
--- trunk/src/okuyama/imdst/client/OkuyamaClient.java (revision 1004)
+++ trunk/src/okuyama/imdst/client/OkuyamaClient.java (revision 1005)
@@ -339,7 +339,7 @@
339339 InetSocketAddress inetAddr = new InetSocketAddress(nodeInfo[0], Integer.parseInt(nodeInfo[1]));
340340
341341 this.socket.connect(inetAddr, ImdstDefine.clientConnectionOpenTimeout);
342-
342+ this.socket.setTcpNoDelay(true);
343343 this.socket.setSoTimeout(ImdstDefine.clientConnectionTimeout);
344344 this.pw = new ClientCustomPrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), OkuyamaClient.connectDefaultEncoding)));
345345 this.bos = new BufferedOutputStream(socket.getOutputStream());
@@ -423,6 +423,7 @@
423423 this.socket = new Socket();
424424 InetSocketAddress inetAddr = new InetSocketAddress(server, port);
425425 this.socket.connect(inetAddr, ImdstDefine.clientConnectionOpenTimeout);
426+ this.socket.setTcpNoDelay(true);
426427 this.socket.setSoTimeout(ImdstDefine.clientConnectionTimeout);
427428
428429 this.pw = new ClientCustomPrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), encoding)));
Show on old repository browser