|
10 | 10 | import java.util.Comparator;
|
11 | 11 | import java.util.List;
|
12 | 12 | import java.util.Map;
|
| 13 | +import java.util.Optional; |
13 | 14 | import java.util.Random;
|
14 | 15 |
|
15 | 16 | import diskCacheV111.poolManager.CostModule;
|
@@ -63,29 +64,29 @@ public P2pPair selectPool2Pool(CostModule cm, List<PoolInfo> src, List<PoolInfo>
|
63 | 64 | filter(dst, new DifferentHost(srcPoolInfo.getHostName())));
|
64 | 65 |
|
65 | 66 | if (!tryList.isEmpty()) {
|
66 |
| - PoolInfo destPoolInfo = selectWritePool(cm, tryList, attributes, attributes.getSize()); |
67 |
| - return new P2pPair(srcPoolInfo, destPoolInfo); |
| 67 | + SelectedPool destPoolInfo = selectWritePool(cm, tryList, attributes, attributes.getSize()); |
| 68 | + return new P2pPair(new SelectedPool(srcPoolInfo), destPoolInfo); |
68 | 69 | }
|
69 | 70 | }
|
70 | 71 |
|
71 | 72 | return null;
|
72 | 73 | }
|
73 | 74 |
|
74 | 75 | @Override
|
75 |
| - public PoolInfo selectReadPool(CostModule cm, List<PoolInfo> pools, FileAttributes attributes) throws CacheException { |
76 |
| - return pools.get(_random.nextInt(pools.size())); |
| 76 | + public SelectedPool selectReadPool(CostModule cm, List<PoolInfo> pools, FileAttributes attributes) throws CacheException { |
| 77 | + return new SelectedPool(pools.get(_random.nextInt(pools.size()))); |
77 | 78 | }
|
78 | 79 |
|
79 | 80 | @Override
|
80 |
| - public PoolInfo selectStagePool(CostModule cm, List<PoolInfo> pools, String previousPool, String previousHost, FileAttributes attributes) throws CacheException { |
| 81 | + public SelectedPool selectStagePool(CostModule cm, List<PoolInfo> pools, Optional<PoolInfo> previousPool, FileAttributes attributes) throws CacheException { |
81 | 82 | return selectWritePool(cm, pools, attributes, attributes.getSize());
|
82 | 83 | }
|
83 | 84 |
|
84 | 85 | @Override
|
85 |
| - public PoolInfo selectWritePool(CostModule cm, List<PoolInfo> pools, FileAttributes attributes, long preallocated) throws CacheException { |
| 86 | + public SelectedPool selectWritePool(CostModule cm, List<PoolInfo> pools, FileAttributes attributes, long preallocated) throws CacheException { |
86 | 87 | WeightedPool weightedPools[] = toWeightedWritePoolsArray(pools);
|
87 | 88 | int index = selectWrandomIndex(weightedPools);
|
88 |
| - return weightedPools[index].getCostInfo(); |
| 89 | + return new SelectedPool(weightedPools[index].getCostInfo()); |
89 | 90 | }
|
90 | 91 |
|
91 | 92 | private WeightedPool[] toWeightedWritePoolsArray(Collection<PoolInfo> costInfos) {
|
|
0 commit comments