com.palantir.atlasdb.transaction.api.Transaction类的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(8.1k)|赞(0)|评价(0)|浏览(138)

本文整理了Java中com.palantir.atlasdb.transaction.api.Transaction类的一些代码示例,展示了Transaction类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Transaction类的具体详情如下:
包路径:com.palantir.atlasdb.transaction.api.Transaction
类名称:Transaction

Transaction介绍

[英]Provides the methods for a transaction with the key-value store.
[中]提供具有键值存储的事务的方法。

代码示例

代码示例来源:origin: palantir/atlasdb

public void deleteJson(Iterable<UserProfileRow> rows) {
  byte[] col = PtBytes.toCachedBytes("j");
  Set<Cell> cells = Cells.cellsWithConstantColumn(Persistables.persistAll(rows), col);
  Map<Cell, byte[]> results = t.get(tableRef, cells);
  deleteCookiesIdxRaw(results);
  t.delete(tableRef, cells);
}

代码示例来源:origin: palantir/atlasdb

@Override
public void put(Multimap<SnapshotsStreamIdxRow, ? extends SnapshotsStreamIdxColumnValue> values) {
  t.useTable(tableRef, this);
  t.put(tableRef, ColumnValues.toCellValues(values));
  for (SnapshotsStreamIdxTrigger trigger : triggers) {
    trigger.putSnapshotsStreamIdx(values);
  }
}

代码示例来源:origin: palantir/atlasdb

public Optional<LatestSnapshotRowResult> getRow(LatestSnapshotRow row, ColumnSelection columns) {
  byte[] bytes = row.persistToBytes();
  RowResult<byte[]> rowResult = t.getRows(tableRef, ImmutableSet.of(bytes), columns).get(bytes);
  if (rowResult == null) {
    return Optional.empty();
  } else {
    return Optional.of(LatestSnapshotRowResult.of(rowResult));
  }
}

代码示例来源:origin: palantir/atlasdb

private void verifyAllGetRangesImplsNumRanges(Transaction t, Iterable<RangeRequest> rangeRequests, List<String> expectedValues) {
  Iterable<BatchingVisitable<RowResult<byte[]>>> getRangesWithPrefetchingImpl =
      t.getRanges(TEST_TABLE, rangeRequests);
  Iterable<BatchingVisitable<RowResult<byte[]>>> getRangesInParallelImpl =
      t.getRanges(TEST_TABLE, rangeRequests, 2, (rangeRequest, visitable) -> visitable).collect(Collectors.toList());
  Iterable<BatchingVisitable<RowResult<byte[]>>> getRangesLazyImpl =
      t.getRangesLazy(TEST_TABLE, rangeRequests).collect(Collectors.toList());
  assertEquals(expectedValues, extractStringsFromVisitables(getRangesWithPrefetchingImpl));
  assertEquals(expectedValues, extractStringsFromVisitables(getRangesInParallelImpl));
  assertEquals(expectedValues, extractStringsFromVisitables(getRangesLazyImpl));
}

代码示例来源:origin: palantir/atlasdb

public BatchingVisitableView<KeyValueRowResult> getRange(RangeRequest range) {
  if (range.getColumnNames().isEmpty()) {
    range = range.getBuilder().retainColumns(allColumns).build();
  }
  return BatchingVisitables.transform(t.getRange(tableRef, range), new Function<RowResult<byte[]>, KeyValueRowResult>() {
    @Override
    public KeyValueRowResult apply(RowResult<byte[]> input) {
      return KeyValueRowResult.of(input);
    }
  });
}

代码示例来源:origin: palantir/atlasdb

private String getCell(Transaction txn, TableReference tableRef, String rowName, String columnName) {
  Cell cell = createCell(rowName, columnName);
  Map<Cell, byte[]> map = txn.get(tableRef, ImmutableSet.of(cell));
  byte[] valueBytes = map.get(cell);
  return valueBytes != null ? PtBytes.toString(valueBytes) : null;
}

代码示例来源:origin: palantir/atlasdb

@Override
public void delete(Iterable<ValueStreamMetadataRow> rows) {
  List<byte[]> rowBytes = Persistables.persistAll(rows);
  Set<Cell> cells = Sets.newHashSetWithExpectedSize(rowBytes.size());
  cells.addAll(Cells.cellsWithConstantColumn(rowBytes, PtBytes.toCachedBytes("md")));
  t.delete(tableRef, cells);
}

代码示例来源:origin: palantir/atlasdb

@Override
public Iterator<Map.Entry<Cell, byte[]>> getRowsColumnRange(TableReference tableRef, Iterable<byte[]> rows,
    ColumnRangeSelection columnRangeSelection, int batchHint) {
  checkTableName(tableRef);
  return delegate().getRowsColumnRange(tableRef, rows, columnRangeSelection, batchHint);
}

代码示例来源:origin: palantir/atlasdb

private long put(SerializableTransactionManager txm, TableReference table, String row, String val) {
  Cell cell = Cell.create(row.getBytes(StandardCharsets.UTF_8), COL.getBytes(StandardCharsets.UTF_8));
  return txm.runTaskWithRetry(t -> {
    t.put(table, ImmutableMap.of(cell, val.getBytes(StandardCharsets.UTF_8)));
    return t.getTimestamp();
  });
}

代码示例来源:origin: palantir/atlasdb

public <T> Stream<T> getRanges(Iterable<RangeRequest> ranges,
                int concurrencyLevel,
                BiFunction<RangeRequest, BatchingVisitable<KeyValueRowResult>, T> visitableProcessor) {
  return t.getRanges(tableRef, ranges, concurrencyLevel,
      (rangeRequest, visitable) -> visitableProcessor.apply(rangeRequest, BatchingVisitables.transform(visitable, KeyValueRowResult::of)));
}

代码示例来源:origin: palantir/atlasdb

protected long storeEmptyMetadata() {
  Preconditions.checkNotNull(txnMgr, "Transaction manager must not be null");
  return txnMgr.runTaskThrowOnConflict(tx -> {
    putMetadataAndHashIndexTask(tx, tx.getTimestamp(), getEmptyMetadata());
    return tx.getTimestamp();
  });
}

代码示例来源:origin: palantir/atlasdb

@Test
public void writesNotAddedToSweepQueueOrKvsOnWriteWriteConflict() {
  Transaction t1 = txManager.createNewTransaction();
  Transaction t2 = txManager.createNewTransaction();
  put(t1, SINGLE_WRITE);
  put(t2, SINGLE_WRITE);
  t1.commit();
  assertThatThrownBy(t2::commit).isInstanceOf(TransactionConflictException.class);
  verify(sweepQueue, times(1)).enqueue(anyList());
  assertLatestEntryForCellInKvsAtTimestamp(TABLE_CONS, TEST_CELL, t1.getTimestamp());
}

代码示例来源:origin: palantir/atlasdb

@Override
public Stream<BatchingVisitable<RowResult<byte[]>>> getRangesLazy(
    final TableReference tableRef, Iterable<RangeRequest> rangeRequests) {
  return delegate().getRangesLazy(tableRef, rangeRequests);
}

代码示例来源:origin: palantir/atlasdb

public BatchingVisitableView<CreatedIdxRowResult> getRange(RangeRequest range) {
  if (range.getColumnNames().isEmpty()) {
    range = range.getBuilder().retainColumns(allColumns).build();
  }
  return BatchingVisitables.transform(t.getRange(tableRef, range), new Function<RowResult<byte[]>, CreatedIdxRowResult>() {
    @Override
    public CreatedIdxRowResult apply(RowResult<byte[]> input) {
      return CreatedIdxRowResult.of(input);
    }
  });
}

代码示例来源:origin: palantir/atlasdb

@Override
public byte[] getCheckpoint(String extraId, long rangeId, Transaction tx) {
  Cell cell = getCell(extraId, rangeId);
  byte[] value = tx.get(checkpointTable, ImmutableSet.of(cell)).get(cell);
  return fromDb(value);
}

代码示例来源:origin: palantir/atlasdb

@Override
public void delete(Iterable<TodoRow> rows) {
  List<byte[]> rowBytes = Persistables.persistAll(rows);
  Set<Cell> cells = Sets.newHashSetWithExpectedSize(rowBytes.size());
  cells.addAll(Cells.cellsWithConstantColumn(rowBytes, PtBytes.toCachedBytes("t")));
  t.delete(tableRef, cells);
}

代码示例来源:origin: palantir/atlasdb

@Override
public Iterator<Map.Entry<SweepNameToIdRow, SweepNameToIdNamedColumnValue<?>>> getRowsColumnRange(Iterable<SweepNameToIdRow> rows, ColumnRangeSelection columnRangeSelection, int batchHint) {
  Iterator<Map.Entry<Cell, byte[]>> results = t.getRowsColumnRange(getTableRef(), Persistables.persistAll(rows), columnRangeSelection, batchHint);
  return Iterators.transform(results, e -> {
    SweepNameToIdRow row = SweepNameToIdRow.BYTES_HYDRATOR.hydrateFromBytes(e.getKey().getRowName());
    SweepNameToIdNamedColumnValue<?> colValue = shortNameToHydrator.get(PtBytes.toString(e.getKey().getColumnName())).hydrateFromBytes(e.getValue());
    return Maps.immutableEntry(row, colValue);
  });
}

代码示例来源:origin: palantir/atlasdb

public long addTodoWithIdAndReturnTimestamp(long id, Todo todo) {
  return transactionManager.runTaskWithRetry((transaction) -> {
    Cell thisCell = Cell.create(ValueType.FIXED_LONG.convertFromJava(id),
        TodoSchema.todoTextColumn());
    Map<Cell, byte[]> write = ImmutableMap.of(thisCell, ValueType.STRING.convertFromJava(todo.text()));
    transaction.put(TodoSchema.todoTable(), write);
    return transaction.getTimestamp();
  });
}

代码示例来源:origin: palantir/atlasdb

public <T> Stream<T> getRanges(Iterable<RangeRequest> ranges,
                BiFunction<RangeRequest, BatchingVisitable<SweepPriorityRowResult>, T> visitableProcessor) {
  return t.getRanges(tableRef, ranges,
      (rangeRequest, visitable) -> visitableProcessor.apply(rangeRequest, BatchingVisitables.transform(visitable, SweepPriorityRowResult::of)));
}

代码示例来源:origin: palantir/atlasdb

@Override
public void abort() {
  if (isTraceEnabled()) {
    trace(String.format("ABORT: timestamp=%d", delegate.getTimestamp()));
  }
  super.abort();
}

相关文章