Search in sources :

Example 11 with Value

use of com.palantir.atlasdb.keyvalue.api.Value in project atlasdb by palantir.

the class AbstractTransactionTest method testKeyValueRanges2.

@Test
public void testKeyValueRanges2() {
    putDirect("row1", "col1", "", 0);
    putDirect("row2", "col1", "", 0);
    putDirect("row2", "col2", "", 0);
    final RangeRequest allRange = RangeRequest.builder().build();
    final RangeRequest oneRange = RangeRequest.builder().startRowInclusive("row2".getBytes()).build();
    final RangeRequest allRangeBatch = RangeRequest.builder().batchHint(3).build();
    Map<RangeRequest, TokenBackedBasicResultsPage<RowResult<Value>, byte[]>> ranges = keyValueService.getFirstBatchForRanges(TEST_TABLE, ImmutableList.of(allRange, oneRange, allRangeBatch), 1);
    assertTrue(ranges.get(allRange).getResults().size() >= 1);
    assertEquals(2, ranges.get(allRangeBatch).getResults().size());
    assertFalse(ranges.get(allRangeBatch).moreResultsAvailable());
    assertEquals(1, ranges.get(oneRange).getResults().size());
}
Also used : TokenBackedBasicResultsPage(com.palantir.util.paging.TokenBackedBasicResultsPage) RangeRequest(com.palantir.atlasdb.keyvalue.api.RangeRequest) Value(com.palantir.atlasdb.keyvalue.api.Value) Test(org.junit.Test)

Example 12 with Value

use of com.palantir.atlasdb.keyvalue.api.Value in project atlasdb by palantir.

the class AbstractTransactionTest method testRangeAfterTimestampReverse.

@Test
public void testRangeAfterTimestampReverse() {
    if (!supportsReverse()) {
        return;
    }
    putDirect("row1", "col2", "", 0);
    putDirect("row2", "col2", "", 0);
    putDirect("row3", "col2", "", 5);
    RangeRequest rangeRequest = RangeRequest.reverseBuilder().batchHint(1).build();
    Map<RangeRequest, TokenBackedBasicResultsPage<RowResult<Value>, byte[]>> ranges = keyValueService.getFirstBatchForRanges(TEST_TABLE, Collections.singleton(rangeRequest), 1);
    assertEquals(1, ranges.keySet().size());
    TokenBackedBasicResultsPage<RowResult<Value>, byte[]> page = ranges.values().iterator().next();
    assertTrue(page.moreResultsAvailable());
}
Also used : TokenBackedBasicResultsPage(com.palantir.util.paging.TokenBackedBasicResultsPage) RowResult(com.palantir.atlasdb.keyvalue.api.RowResult) RangeRequest(com.palantir.atlasdb.keyvalue.api.RangeRequest) Value(com.palantir.atlasdb.keyvalue.api.Value) Test(org.junit.Test)

Example 13 with Value

use of com.palantir.atlasdb.keyvalue.api.Value in project atlasdb by palantir.

the class AbstractTransactionTest method testRangePagingBatchSizeOne.

@Test
public void testRangePagingBatchSizeOne() {
    int totalPuts = 100;
    for (int i = 0; i < totalPuts; i++) {
        putDirect("row" + i, "col1", "v1", 0);
    }
    RangeRequest rangeRequest = RangeRequest.builder().batchHint(1).build();
    Map<RangeRequest, TokenBackedBasicResultsPage<RowResult<Value>, byte[]>> ranges = keyValueService.getFirstBatchForRanges(TEST_TABLE, Iterables.limit(Iterables.cycle(rangeRequest), 100), 1);
    assertEquals(1, ranges.keySet().size());
    assertEquals(1, ranges.values().iterator().next().getResults().size());
    assertEquals("row0", PtBytes.toString(ranges.values().iterator().next().getResults().iterator().next().getRowName()));
}
Also used : TokenBackedBasicResultsPage(com.palantir.util.paging.TokenBackedBasicResultsPage) RangeRequest(com.palantir.atlasdb.keyvalue.api.RangeRequest) Value(com.palantir.atlasdb.keyvalue.api.Value) Test(org.junit.Test)

Example 14 with Value

use of com.palantir.atlasdb.keyvalue.api.Value in project atlasdb by palantir.

the class AbstractSweepTest method get.

private String get(String row, String column, long ts) {
    Cell cell = Cell.create(row.getBytes(StandardCharsets.UTF_8), column.getBytes(StandardCharsets.UTF_8));
    Value val = kvs.get(TABLE_NAME, ImmutableMap.of(cell, ts)).get(cell);
    return val == null ? null : new String(val.getContents(), StandardCharsets.UTF_8);
}
Also used : Value(com.palantir.atlasdb.keyvalue.api.Value) Cell(com.palantir.atlasdb.keyvalue.api.Cell)

Example 15 with Value

use of com.palantir.atlasdb.keyvalue.api.Value in project atlasdb by palantir.

the class TransactionTestSetup method getDirect.

protected Pair<String, Long> getDirect(TableReference tableRef, String rowName, String columnName, long timestamp) {
    byte[] row = PtBytes.toBytes(rowName);
    Cell cell = Cell.create(row, PtBytes.toBytes(columnName));
    Value valueBytes = keyValueService.get(tableRef, ImmutableMap.of(cell, timestamp)).get(cell);
    return valueBytes != null ? Pair.create(PtBytes.toString(valueBytes.getContents()), valueBytes.getTimestamp()) : null;
}
Also used : Value(com.palantir.atlasdb.keyvalue.api.Value) Cell(com.palantir.atlasdb.keyvalue.api.Cell)

Aggregations

Value (com.palantir.atlasdb.keyvalue.api.Value)74 Cell (com.palantir.atlasdb.keyvalue.api.Cell)55 RangeRequest (com.palantir.atlasdb.keyvalue.api.RangeRequest)20 RowResult (com.palantir.atlasdb.keyvalue.api.RowResult)18 Test (org.junit.Test)18 Entry (java.util.Map.Entry)16 TokenBackedBasicResultsPage (com.palantir.util.paging.TokenBackedBasicResultsPage)15 Map (java.util.Map)15 SortedMap (java.util.SortedMap)13 ImmutableMap (com.google.common.collect.ImmutableMap)12 TableReference (com.palantir.atlasdb.keyvalue.api.TableReference)10 LinkedHashMap (java.util.LinkedHashMap)9 ImmutableList (com.google.common.collect.ImmutableList)7 KeyAlreadyExistsException (com.palantir.atlasdb.keyvalue.api.KeyAlreadyExistsException)7 InsufficientConsistencyException (com.palantir.atlasdb.keyvalue.api.InsufficientConsistencyException)6 RowColumnRangeIterator (com.palantir.atlasdb.keyvalue.api.RowColumnRangeIterator)6 List (java.util.List)6 ImmutableSortedMap (com.google.common.collect.ImmutableSortedMap)5 BatchColumnRangeSelection (com.palantir.atlasdb.keyvalue.api.BatchColumnRangeSelection)5 LocalRowColumnRangeIterator (com.palantir.atlasdb.keyvalue.impl.LocalRowColumnRangeIterator)5