public String convertToString(byte[] value) { return convertToString(value, 0).getLhSide(); }
@Test(timeout = 50000) public void testSweepBatchesDownToDeleteBatchSize() { CellsSweeper cellsSweeper = Mockito.mock(CellsSweeper.class); SweepTaskRunner spiedSweepRunner = new SweepTaskRunner(kvs, tsSupplier, tsSupplier, txService, ssm, cellsSweeper); putTwoValuesInEachCell(SMALL_LIST_OF_CELLS); int deleteBatchSize = 1; Pair<List<List<Cell>>, SweepResults> sweptCellsAndSweepResults = runSweep(cellsSweeper, spiedSweepRunner, 8, 8, deleteBatchSize); List<List<Cell>> sweptCells = sweptCellsAndSweepResults.getLhSide(); assertThat(sweptCells).allMatch(list -> list.size() <= 2 * deleteBatchSize); assertThat(Iterables.concat(sweptCells)).containsExactlyElementsOf(SMALL_LIST_OF_CELLS); }
private void testBigValue(int i) { byte[] bytes = new byte[64 * 1024]; new Random().nextBytes(bytes); String encodeHexString = BaseEncoding.base16().lowerCase().encode(bytes); putDirect("row" + i, "col" + i, encodeHexString, 0); Pair<String, Long> pair = getDirect("row" + i, "col" + i, 1); assertEquals(0L, (long) pair.getRhSide()); assertEquals(encodeHexString, pair.getLhSide()); }
private void verifyLockCorrectness() { for (Pair<InvokeEvent, OkEvent> eventPair : locksAtSomePoint) { InvokeEvent invokeEvent = eventPair.getLhSide(); OkEvent okEvent = eventPair.getRhSide(); if (intervalCovered(invokeEvent, okEvent)) { log.error("Lock {} granted to process {} between {} and {}, but lock was already held by " + "another process.", lockName, invokeEvent.process(), invokeEvent.time(), okEvent.time()); errors.add(invokeEvent); errors.add(okEvent); } } }
@Override public Pair<String, Integer> convertToJson(byte[] value, int offset) { Pair<String, Integer> p = convertToString(value, offset); return Pair.create("\"" + p.getLhSide() + "\"", p.getRhSide()); }
@Override public Pair<String, Integer> convertToJson(byte[] value, int offset) { Pair<String, Integer> p = convertToString(value, offset); return Pair.create("\"" + p.getLhSide() + "\"", p.getRhSide()); }
@Test(timeout = 50000) public void testSweepBatchesUpToDeleteBatchSize() { CellsSweeper cellsSweeper = Mockito.mock(CellsSweeper.class); SweepTaskRunner spiedSweepRunner = new SweepTaskRunner(kvs, tsSupplier, tsSupplier, txService, ssm, cellsSweeper); putTwoValuesInEachCell(SMALL_LIST_OF_CELLS); Pair<List<List<Cell>>, SweepResults> sweptCellsAndSweepResults = runSweep(cellsSweeper, spiedSweepRunner, 8, 1, 4); List<List<Cell>> sweptCells = sweptCellsAndSweepResults.getLhSide(); assertEquals(1, sweptCells.size()); assertEquals(SMALL_LIST_OF_CELLS, sweptCells.get(0)); }
@Override public Pair<String, Integer> convertToJson(byte[] value, int offset) { Pair<String, Integer> p = convertToString(value, offset); return Pair.create("\"" + p.getLhSide() + "\"", p.getRhSide()); }
@Override public Pair<String, Integer> convertToJson(byte[] value, int offset) { Pair<String, Integer> p = convertToString(value, offset); return Pair.create(JSONValue.toJSONString(p.getLhSide()), p.getRhSide()); }
@Override public Pair<String, Integer> convertToJson(byte[] value, int offset) { Pair<String, Integer> p = convertToString(value, offset); return Pair.create(JSONValue.toJSONString(p.getLhSide()), p.getRhSide()); }
@Test public void testEmptyValue() { putDirect("row1", "col1", "v1", 0); Pair<String, Long> pair = getDirect("row1", "col1", 1); assertEquals(0L, (long)pair.getRhSide()); assertEquals("v1", pair.getLhSide()); putDirect("row1", "col1", "", 2); pair = getDirect("row1", "col1", 2); assertEquals(0L, (long)pair.getRhSide()); assertEquals("v1", pair.getLhSide()); pair = getDirect("row1", "col1", 3); assertEquals(2L, (long)pair.getRhSide()); assertEquals("", pair.getLhSide()); }
@Test public void testKeyValueDelete4() { putDirect("row1", "col1", "v0", 0); putDirect("row1", "col1", "v1", 10); Pair<String, Long> pair = getDirect("row1", "col1", 11); assertEquals(10L, (long)pair.getRhSide()); assertEquals("v1", pair.getLhSide()); pair = getDirect("row1", "col1", 2); assertEquals(0L, (long)pair.getRhSide()); assertEquals("v0", pair.getLhSide()); }
@Test public void testKeyValueDelete7() { putDirect("row1", "col1", "v2", 2); Pair<String, Long> pair = getDirect("row1", "col1", 3); assertEquals(2L, (long)pair.getRhSide()); assertEquals("v2", pair.getLhSide()); keyValueService.delete(TEST_TABLE, Multimaps.forMap(ImmutableMap.of(createCell("row1", "col1"), 1L))); keyValueService.delete(TEST_TABLE, Multimaps.forMap(ImmutableMap.of(createCell("row1", "col1"), 3L))); pair = getDirect("row1", "col1", 3); assertEquals(2L, (long)pair.getRhSide()); assertEquals("v2", pair.getLhSide()); }
@Test public void testKeyValueDelete2() { putDirect("row1", "col1", "v1", 1); putDirect("row1", "col1", "v2", 2); Pair<String, Long> pair = getDirect("row1", "col1", 3); assertEquals(2L, (long)pair.getRhSide()); assertEquals("v2", pair.getLhSide()); keyValueService.delete(TEST_TABLE, Multimaps.forMap(ImmutableMap.of(createCell("row1", "col1"), 2L))); pair = getDirect("row1", "col1", 3); assertEquals(1L, (long)pair.getRhSide()); assertEquals("v1", pair.getLhSide()); }
@Test public void testKeyValueDelete6() { putDirect("row1", "col1", "v1", 1); putDirect("row1", "col1", "v2", 2); Pair<String, Long> pair = getDirect("row1", "col1", 3); assertEquals(2L, (long)pair.getRhSide()); assertEquals("v2", pair.getLhSide()); keyValueService.delete(TEST_TABLE, Multimaps.forMap(ImmutableMap.of(createCell("row1", "col1"), 1L))); pair = getDirect("row1", "col1", 3); assertEquals(2L, (long)pair.getRhSide()); assertEquals("v2", pair.getLhSide()); }
@Test public void testKeyValueDelete3() { putDirect("row1", "col1", "v0", 0); putDirect("row1", "col1", "v1", 1); Pair<String, Long> pair = getDirect("row1", "col1", 2); assertEquals(1L, (long)pair.getRhSide()); assertEquals("v1", pair.getLhSide()); keyValueService.delete(TEST_TABLE, Multimaps.forMap(ImmutableMap.of(createCell("row1", "col1"), 1L))); pair = getDirect("row1", "col1", 2); assertEquals(0L, (long)pair.getRhSide()); assertEquals("v0", pair.getLhSide()); }
@Test public void testKeyValueDelete5() { putDirect("row1", "col1", "v0", 0); putDirect("row1", "col1", "v1", 1); Pair<String, Long> pair = getDirect("row1", "col1", 2); assertEquals(1L, (long)pair.getRhSide()); assertEquals("v1", pair.getLhSide()); keyValueService.delete(TEST_TABLE, Multimaps.forMap(ImmutableMap.of(createCell("row1", "col1"), 0L))); pair = getDirect("row1", "col1", 2); assertEquals(1L, (long)pair.getRhSide()); assertEquals("v1", pair.getLhSide()); }
@Test public void testStoreCopy() { final byte[] bytes = new byte[2 * StreamTestStreamStore.BLOCK_SIZE_IN_BYTES]; Random rand = new Random(); rand.nextBytes(bytes); long id1 = timestampService.getFreshTimestamp(); long id2 = timestampService.getFreshTimestamp(); ImmutableMap<Long, InputStream> streams = ImmutableMap.of( id1, new ByteArrayInputStream(bytes), id2, new ByteArrayInputStream(bytes)); txManager.runTaskWithRetry(t -> defaultStore.storeStreams(t, streams)); Pair<Long, Sha256Hash> idAndHash1 = defaultStore.storeStream(new ByteArrayInputStream(bytes)); Pair<Long, Sha256Hash> idAndHash2 = defaultStore.storeStream(new ByteArrayInputStream(bytes)); assertThat(idAndHash1.getRhSide(), equalTo(idAndHash2.getRhSide())); //verify hashes are the same assertThat(idAndHash1.getLhSide(), not(equalTo(idAndHash2.getLhSide()))); //verify ids are different }
@Test public void testKeyValueRetainVersions() { putDirect("row1", "col1", "v1", 1); putDirect("row1", "col1", "v2", 2); putDirect("row1", "col1", "v3", 3); putDirect("row1", "col1", "v4", 4); putDirect("row1", "col1", "v5", 5); Pair<String, Long> pair = getDirect("row1", "col1", 6); assertEquals(5L, (long)pair.getRhSide()); assertEquals("v5", pair.getLhSide()); pair = getDirect("row1", "col1", 2); assertEquals(1L, (long)pair.getRhSide()); assertEquals("v1", pair.getLhSide()); }
@Test public void testKeyValueDelete() { putDirect("row1", "col1", "v1", 0); Pair<String, Long> pair = getDirect("row1", "col1", 2); assertEquals(0L, (long)pair.getRhSide()); assertEquals("v1", pair.getLhSide()); keyValueService.delete(TEST_TABLE, Multimaps.forMap(ImmutableMap.of(createCell("row1", "col1"), 0L))); pair = getDirect("row1", "col1", 2); assertNull(pair); }