(empty log message)
@@ -652,11 +652,14 @@ | ||
652 | 652 | // 全キー取得時の現在のファイル内でのFPの位置 |
653 | 653 | private long nowIterationFpPosition = 0; |
654 | 654 | |
655 | + // 遅延書き込み依頼用のQueueの最大サイズ | |
656 | + private int delayWriteQueueSize = 8000; | |
657 | + | |
655 | 658 | // 遅延書き込み依頼用のQueue |
656 | - private ArrayBlockingQueue delayWriteQueue = new ArrayBlockingQueue(8000); | |
659 | + private ArrayBlockingQueue delayWriteQueue = new ArrayBlockingQueue(delayWriteQueueSize); | |
657 | 660 | |
658 | 661 | // 遅延書き込み前のデータを補完するMap |
659 | - private ConcurrentHashMap delayWriteDifferenceMap = new ConcurrentHashMap(8000, 7900, 32); | |
662 | + private ConcurrentHashMap delayWriteDifferenceMap = new ConcurrentHashMap(delayWriteQueueSize, delayWriteQueueSize - 100, 32); | |
660 | 663 | |
661 | 664 | // 遅延書き込みを依頼した回数 |
662 | 665 | private long delayWriteRequestCount = 0L; |
@@ -922,6 +925,7 @@ | ||
922 | 925 | //end2 = System.nanoTime(); |
923 | 926 | this.delayWriteRequestCount++; |
924 | 927 | |
928 | + if (this.delayWriteQueue.size() > (delayWriteQueueSize - 500)) Thread.sleep(50); | |
925 | 929 | //if (ImdstDefine.fileBaseMapTimeDebug) { |
926 | 930 | // System.out.println("Set 1="+(end1 - start1) + " 2="+(end2 - start2)); |
927 | 931 | //} |