if (last.regionEqual(range)) { assert last.status() == RANGE_STATUS_MOVED; if (first.regionEqual(range)) { assert first.status() == RANGE_STATUS_MOVED; if (midRange.regionEqual(range)) { assert midRange.status() == RANGE_STATUS_MOVED;
/** * Updates range status at given position (will split range into two if necessary). * * @param origIdx Original range index. * @param orig Original range at index. * @param update Range being updated. * @param status New status for range. */ private void updateRangeStatus0(int origIdx, IgfsFileAffinityRange orig, IgfsFileAffinityRange update, int status) { assert F.eq(orig.affinityKey(), update.affinityKey()); assert ranges.get(origIdx) == orig; if (orig.regionEqual(update)) ranges.set(origIdx, new IgfsFileAffinityRange(update, status)); else { // If range was expanded, new one should be larger. assert orig.endOffset() > update.endOffset(); ranges.set(origIdx, new IgfsFileAffinityRange(update, status)); ranges.add(origIdx + 1, new IgfsFileAffinityRange(update.endOffset() + 1, orig.endOffset(), orig.affinityKey())); } }
assertTrue(range.regionEqual(F.first(split))); assertTrue(part.regionEqual(new IgfsFileAffinityRange(0, 4999, affKey))); assertTrue(part.regionEqual(new IgfsFileAffinityRange(5000, 9999, affKey))); assertTrue(part.regionEqual(new IgfsFileAffinityRange(0, 2999, affKey))); assertTrue(part.regionEqual(new IgfsFileAffinityRange(3000, 5999, affKey))); assertTrue(part.regionEqual(new IgfsFileAffinityRange(6000, 8999, affKey))); assertTrue(part.regionEqual(new IgfsFileAffinityRange(9000, 9999, affKey)));
/** * @throws Exception If failed. */ @Test public void testAddUpdateAdd() throws Exception { IgfsFileMap map = new IgfsFileMap(); IgniteUuid affKey = IgniteUuid.randomUuid(); map.addRange(new IgfsFileAffinityRange(0, 9, affKey)); map.updateRangeStatus(new IgfsFileAffinityRange(0, 9, affKey), RANGE_STATUS_MOVING); map.addRange(new IgfsFileAffinityRange(10, 19, affKey)); List<IgfsFileAffinityRange> ranges = map.ranges(); assertEquals(2, ranges.size()); assertEquals(RANGE_STATUS_MOVING, ranges.get(0).status()); assertTrue(ranges.get(0).regionEqual(new IgfsFileAffinityRange(0, 9, affKey))); assertEquals(RANGE_STATUS_INITIAL, ranges.get(1).status()); assertTrue(ranges.get(1).regionEqual(new IgfsFileAffinityRange(10, 19, affKey))); }
assertTrue(ranges.get(idx).regionEqual(new IgfsFileAffinityRange(10, 15, affKey))); assertEquals(RANGE_STATUS_MOVING, ranges.get(idx).status()); idx++; assertTrue(ranges.get(idx).regionEqual(new IgfsFileAffinityRange(16, 19, affKey))); assertEquals(RANGE_STATUS_INITIAL, ranges.get(idx).status()); idx++; assertTrue(ranges.get(idx).regionEqual(new IgfsFileAffinityRange(30, 35, affKey))); assertEquals(RANGE_STATUS_MOVING, ranges.get(idx).status()); idx++; assertTrue(ranges.get(idx).regionEqual(new IgfsFileAffinityRange(36, 39, affKey))); assertEquals(RANGE_STATUS_INITIAL, ranges.get(idx).status()); idx++; assertTrue(ranges.get(idx).regionEqual(new IgfsFileAffinityRange(50, 59, affKey))); assertEquals(RANGE_STATUS_INITIAL, ranges.get(idx).status()); idx++; assertTrue(ranges.get(idx).regionEqual(new IgfsFileAffinityRange(70, 75, affKey))); assertEquals(RANGE_STATUS_MOVING, ranges.get(idx).status()); idx++; assertTrue(ranges.get(idx).regionEqual(new IgfsFileAffinityRange(76, 79, affKey))); assertEquals(RANGE_STATUS_INITIAL, ranges.get(idx).status()); assertTrue(ranges.get(idx).regionEqual(new IgfsFileAffinityRange(10, 15, affKey))); assertEquals(RANGE_STATUS_MOVED, ranges.get(idx).status());
assertTrue(ranges.get(0).regionEqual(new IgfsFileAffinityRange(50, 59, affKey)));
assertTrue(range.regionEqual(new IgfsFileAffinityRange(0, writesCnt * chunkSize - 1, null)));
if (last.regionEqual(range)) { assert last.status() == RANGE_STATUS_MOVED; if (first.regionEqual(range)) { assert first.status() == RANGE_STATUS_MOVED; if (midRange.regionEqual(range)) { assert midRange.status() == RANGE_STATUS_MOVED;
/** * Updates range status at given position (will split range into two if necessary). * * @param origIdx Original range index. * @param orig Original range at index. * @param update Range being updated. * @param status New status for range. */ private void updateRangeStatus0(int origIdx, IgfsFileAffinityRange orig, IgfsFileAffinityRange update, int status) { assert F.eq(orig.affinityKey(), update.affinityKey()); assert ranges.get(origIdx) == orig; if (orig.regionEqual(update)) ranges.set(origIdx, new IgfsFileAffinityRange(update, status)); else { // If range was expanded, new one should be larger. assert orig.endOffset() > update.endOffset(); ranges.set(origIdx, new IgfsFileAffinityRange(update, status)); ranges.add(origIdx + 1, new IgfsFileAffinityRange(update.endOffset() + 1, orig.endOffset(), orig.affinityKey())); } }