Package com.continuuity.tephra

Examples of com.continuuity.tephra.Transaction


  }

  @Override
  public RegionScanner preScannerOpen(ObserverContext<RegionCoprocessorEnvironment> e, Scan scan, RegionScanner s)
    throws IOException {
    Transaction tx = txCodec.getFromOperation(scan);
    if (tx != null) {
      if (LOG.isTraceEnabled()) {
        LOG.trace("Applying filter to SCAN for transaction " + tx.getWritePointer());
      }
      scan.setMaxVersions(tx.excludesSize() + 1);
      scan.setTimeRange(TxUtils.getOldestVisibleTimestamp(ttlByFamily, tx), TxUtils.getMaxVisibleTimestamp(tx));
      Filter newFilter = Filters.combine(getTransactionFilter(tx), scan.getFilter());
      scan.setFilter(newFilter);
    }
    return s;
View Full Code Here


      }
      return null;
    }

    // construct a dummy transaction from the latest snapshot
    Transaction dummyTx = TxUtils.createDummyTransaction(snapshot);
    Scan scan = new Scan();
    // does not current support max versions setting per family
    scan.setMaxVersions(dummyTx.excludesSize() + 1);
    FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ONE);
    filterList.addFilter(getTransactionFilter(dummyTx));
    filterList.addFilter(new IncludeInProgressFilter(dummyTx.getVisibilityUpperBound(),
                                                     snapshot.getInvalid()));
    scan.setFilter(filterList);

    return new StoreScanner(store, store.getScanInfo(), scan, scanners, type,
                            env.getRegion().getSmallestReadPoint(), earliestPutTs);
View Full Code Here

    zkClient.startAndWait();

    try {
      TransactionServiceClient client = injector.getInstance(TransactionServiceClient.class);
      LOG.info("Starting tx...");
      Transaction tx = client.startShort();
      if (verbose) {
        LOG.info("Started tx details: " + tx.toString());
      } else {
        LOG.info("Started tx: " + tx.getWritePointer() +
                   ", readPointer: " + tx.getReadPointer() +
                   ", invalids: " + tx.getInvalids().length +
                   ", inProgress: " + tx.getInProgress().length);
      }
      LOG.info("Checking if canCommit tx...");
      boolean canCommit = client.canCommit(tx, Collections.<byte[]>emptyList());
      LOG.info("canCommit: " + canCommit);
      if (canCommit) {
View Full Code Here

    Preconditions.checkArgument(timeoutInSeconds > 0, "timeout must be positive but is %s", timeoutInSeconds);
    txMetricsCollector.gauge("start.short", 1);
    Stopwatch timer = new Stopwatch().start();
    long currentTime = System.currentTimeMillis();
    long expiration = currentTime + 1000L * timeoutInSeconds;
    Transaction tx = null;
    // guard against changes to the transaction log while processing
    this.logReadLock.lock();
    try {
      synchronized (this) {
        ensureAvailable();
        tx = createTransaction(nextWritePointer);
        addInProgressAndAdvance(tx.getWritePointer(), tx.getVisibilityUpperBound(), expiration, getNextWritePointer());
      }
      // appending to WAL out of global lock for concurrent performance
      // we should still be able to arrive at the same state even if log entries are out of order
      appendToLog(TransactionEdit.createStarted(tx.getWritePointer(), tx.getVisibilityUpperBound(),
                                                expiration, nextWritePointer));
    } finally {
      this.logReadLock.unlock();
    }
    txMetricsCollector.gauge("start.short.latency", (int) timer.elapsedMillis());
View Full Code Here

   */
  public Transaction startLong() {
    txMetricsCollector.gauge("start.long", 1);
    Stopwatch timer = new Stopwatch().start();
    long currentTime = System.currentTimeMillis();
    Transaction tx = null;
    // guard against changes to the transaction log while processing
    this.logReadLock.lock();
    try {
      synchronized (this) {
        ensureAvailable();
        tx = createTransaction(nextWritePointer);
        addInProgressAndAdvance(tx.getWritePointer(), tx.getVisibilityUpperBound(),
                                -currentTime, getNextWritePointer());
      }
      appendToLog(TransactionEdit.createStarted(tx.getWritePointer(), tx.getVisibilityUpperBound(),
                                                -currentTime, nextWritePointer));
    } finally {
      this.logReadLock.unlock();
    }
    txMetricsCollector.gauge("start.long.latency", (int) timer.elapsedMillis());
View Full Code Here

      if (firstShortTx == Transaction.NO_TX_IN_PROGRESS && !entry.getValue().isLongRunning()) {
        firstShortTx = txId;
      }
    }

    return new Transaction(readPointer, writePointer, invalidArray, array, firstShortTx);
  }
View Full Code Here

  }

  @Override
  public void preGetOp(ObserverContext<RegionCoprocessorEnvironment> e, Get get, List<Cell> results)
    throws IOException {
    Transaction tx = txCodec.getFromOperation(get);
    if (tx != null) {
      get.setMaxVersions(tx.excludesSize() + 1);
      get.setTimeRange(TxUtils.getOldestVisibleTimestamp(ttlByFamily, tx), TxUtils.getMaxVisibleTimestamp(tx));
      Filter newFilter = Filters.combine(getTransactionFilter(tx), get.getFilter());
      get.setFilter(newFilter);
    }
  }
View Full Code Here

  }

  @Override
  public RegionScanner preScannerOpen(ObserverContext<RegionCoprocessorEnvironment> e, Scan scan, RegionScanner s)
    throws IOException {
    Transaction tx = txCodec.getFromOperation(scan);
    if (tx != null) {
      scan.setMaxVersions(tx.excludesSize() + 1);
      scan.setTimeRange(TxUtils.getOldestVisibleTimestamp(ttlByFamily, tx), TxUtils.getMaxVisibleTimestamp(tx));
      Filter newFilter = Filters.combine(getTransactionFilter(tx), scan.getFilter());
      scan.setFilter(newFilter);
    }
    return s;
View Full Code Here

      }
      return null;
    }

    // construct a dummy transaction from the latest snapshot
    Transaction dummyTx = TxUtils.createDummyTransaction(snapshot);
    Scan scan = new Scan();
    // does not current support max versions setting per family
    scan.setMaxVersions(dummyTx.excludesSize() + 1);
    FilterList filterList = new FilterList(FilterList.Operator.MUST_PASS_ONE);
    filterList.addFilter(getTransactionFilter(dummyTx));
    filterList.addFilter(new IncludeInProgressFilter(dummyTx.getVisibilityUpperBound(),
                                                     snapshot.getInvalid()));
    scan.setFilter(filterList);

    return new StoreScanner(store, store.getScanInfo(), scan, scanners,
                            type, store.getSmallestReadPoint(), earliestPutTs);
View Full Code Here

  }

  @Override
  public void preGetOp(ObserverContext<RegionCoprocessorEnvironment> e, Get get, List<Cell> results)
    throws IOException {
    Transaction tx = txCodec.getFromOperation(get);
    if (tx != null) {
      get.setMaxVersions(tx.excludesSize() + 1);
      get.setTimeRange(TxUtils.getOldestVisibleTimestamp(ttlByFamily, tx), TxUtils.getMaxVisibleTimestamp(tx));
      Filter newFilter = Filters.combine(getTransactionFilter(tx), get.getFilter());
      get.setFilter(newFilter);
    }
  }
View Full Code Here

TOP

Related Classes of com.continuuity.tephra.Transaction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.