Java源码示例:org.apache.omid.tso.client.OmidClientConfiguration

示例1
@Override
public PhoenixTransactionClient getTransactionClient(Configuration config, ConnectionInfo connectionInfo) throws SQLException{
    if (transactionManager == null) {
        try {
            HBaseOmidClientConfiguration clientConf = new HBaseOmidClientConfiguration();
            clientConf.setConflictAnalysisLevel(OmidClientConfiguration.ConflictDetectionLevel.ROW);
            transactionManager = (HBaseTransactionManager) HBaseTransactionManager.newInstance(clientConf);
        } catch (IOException | InterruptedException e) {
            throw new SQLExceptionInfo.Builder(
                    SQLExceptionCode.TRANSACTION_FAILED)
                    .setMessage(e.getMessage()).setRootCause(e).build()
                    .buildException();
        }
    }

    return new OmidTransactionClient(transactionManager);
}
 
示例2
@BeforeMethod
public void beforeMethod() throws Exception {

    TSOServerConfig tsoConfig = new TSOServerConfig();
    tsoConfig.setLowLatency(true);
    tsoConfig.setConflictMapSize(1000);
    tsoConfig.setPort(TSO_SERVER_PORT);
    tsoConfig.setNumConcurrentCTWriters(2);
    Module tsoServerMockModule = new TSOMockModule(tsoConfig);
    Injector injector = Guice.createInjector(tsoServerMockModule);

    LOG.info("==================================================================================================");
    LOG.info("======================================= Init TSO Server ==========================================");
    LOG.info("==================================================================================================");

    tsoServer = injector.getInstance(TSOServer.class);
    tsoServer.startAndWait();
    TestUtils.waitForSocketListening(TSO_SERVER_HOST, TSO_SERVER_PORT, 100);

    LOG.info("==================================================================================================");
    LOG.info("===================================== TSO Server Initialized =====================================");
    LOG.info("==================================================================================================");

    pausableTSOracle = (PausableTimestampOracle) injector.getInstance(TimestampOracle.class);
    commitTable = injector.getInstance(CommitTable.class);

    OmidClientConfiguration tsoClientConf = new OmidClientConfiguration();
    tsoClientConf.setConnectionString(TSO_SERVER_HOST + ":" + TSO_SERVER_PORT);

    this.tsoClientConf = tsoClientConf;
    commitTable = injector.getInstance(CommitTable.class);
    replyProcessor = injector.getInstance(ReplyProcessor.class);
}
 
示例3
@Override
public OmidClientConfiguration.ConflictDetectionLevel getConflictDetectionLevel() {
    return null;
}
 
示例4
public OmidClientConfiguration getOmidClientConfiguration() {
    return omidClientConfiguration;
}
 
示例5
public void setOmidClientConfiguration(OmidClientConfiguration omidClientConfiguration) {
    this.omidClientConfiguration = omidClientConfiguration;
}
 
示例6
public OmidClientConfiguration.ConnType getConnectionType() {
    return omidClientConfiguration.getConnectionType();
}
 
示例7
public void setConnectionType(OmidClientConfiguration.ConnType connectionType) {
    omidClientConfiguration.setConnectionType(connectionType);
}
 
示例8
public OmidClientConfiguration getOmidClientConfiguration() {
    return omidClientConfiguration;
}
 
示例9
public void setOmidClientConfiguration(OmidClientConfiguration omidClientConfiguration) {
    this.omidClientConfiguration = omidClientConfiguration;
}
 
示例10
RawTxRunner(final TSOServerBenchmarkConfig expConfig) throws IOException, InterruptedException {

        // Injector configuration
        List<Module> guiceModules = new ArrayList<>();
        guiceModules.add(new Module() {
            @Override
            public void configure(Binder binder) {
                binder.bind(MetricsRegistry.class).toInstance(expConfig.getMetrics());
            }
        });
        guiceModules.add(expConfig.getCommitTableStoreModule());
        Injector injector = Guice.createInjector(guiceModules);

        // Tx Runner config
        this.writesetSize = expConfig.getWritesetSize();
        this.fixedWriteSetSize = expConfig.isFixedWritesetSize();
        this.commitDelayInMs = expConfig.getCommitDelayInMs();
        this.percentageOfReadOnlyTxs = expConfig.getPercentageOfReadOnlyTxs();
        this.cellIdGenerator = expConfig.getCellIdGenerator();
        this.randomGen = new Random(System.currentTimeMillis() * txRunnerId); // to make it channel dependent

        int txRateInReqPerSec = expConfig.getTxRateInRequestPerSecond();
        long warmUpPeriodInSecs = expConfig.getWarmUpPeriodInSecs();

        LOG.info("TxRunner-{} [ Tx Rate (Req per Sec) -> {} ]", txRunnerId, txRateInReqPerSec);
        LOG.info("TxRunner-{} [ Warm Up Period -> {} Secs ]", txRunnerId, warmUpPeriodInSecs);
        LOG.info("TxRunner-{} [ Cell Id Distribution Generator -> {} ]", txRunnerId, expConfig.getCellIdGenerator().getClass());
        LOG.info("TxRunner-{} [ Max Tx Size -> {} Fixed: {} ]", txRunnerId, writesetSize, fixedWriteSetSize);
        LOG.info("TxRunner-{} [ Commit delay -> {} Ms ]", txRunnerId, commitDelayInMs);
        LOG.info("TxRunner-{} [ % of Read-Only Tx -> {} % ]", txRunnerId, percentageOfReadOnlyTxs);

        // Commit table client initialization
        CommitTable commitTable = injector.getInstance(CommitTable.class);
        this.commitTableClient = commitTable.getClient();

        // Stat initialization
        MetricsRegistry metrics = injector.getInstance(MetricsRegistry.class);
        String hostName = InetAddress.getLocalHost().getHostName();
        this.timestampTimer = metrics.timer(name("tx_runner", Integer.toString(txRunnerId), hostName, "timestamp"));
        this.commitTimer = metrics.timer(name("tx_runner", Integer.toString(txRunnerId), hostName, "commit"));
        this.abortTimer = metrics.timer(name("tx_runner", Integer.toString(txRunnerId), hostName, "abort"));
        this.errorCounter = metrics.counter(name("tx_runner", Integer.toString(txRunnerId), hostName, "errors"));
        LOG.info("TxRunner-{} [ Metrics provider module -> {} ]", txRunnerId, expConfig.getMetrics().getClass());

        // TSO Client initialization
        OmidClientConfiguration tsoClientConf = expConfig.getOmidClientConfiguration();
        this.tsoClient = TSOClient.newInstance(tsoClientConf);
        LOG.info("TxRunner-{} [ Connection Type {}/Connection String {} ]", txRunnerId,
                 tsoClientConf.getConnectionType(), tsoClientConf.getConnectionString());

        // Limiter for configured request per second
        this.rateLimiter = RateLimiter.create((double) txRateInReqPerSec, warmUpPeriodInSecs, TimeUnit.SECONDS);
    }
 
示例11
@Override
public PhoenixTransactionService getTransactionService(Configuration config, ConnectionInfo connectionInfo, int port) throws  SQLException{
    TSOServerConfig tsoConfig = new TSOServerConfig();
    TSOServer tso;

    tsoConfig.setPort(port);
    tsoConfig.setConflictMapSize(config.getInt(OMID_TSO_CONFLICT_MAP_SIZE, DEFAULT_OMID_TSO_CONFLICT_MAP_SIZE));
    tsoConfig.setTimestampType(config.get(OMID_TSO_TIMESTAMP_TYPE, DEFAULT_OMID_TSO_TIMESTAMP_TYPE));
    tsoConfig.setWaitStrategy(WAIT_STRATEGY.LOW_CPU.toString());

    Injector injector = Guice.createInjector(new TSOMockModule(tsoConfig));
    tso = injector.getInstance(TSOServer.class);
    tso.startAndWait();

    OmidClientConfiguration clientConfig = new OmidClientConfiguration();
    clientConfig.setConnectionString("localhost:" + port);
    clientConfig.setConflictAnalysisLevel(OmidClientConfiguration.ConflictDetectionLevel.ROW);

    InMemoryCommitTable commitTable = (InMemoryCommitTable) injector.getInstance(CommitTable.class);

    try {
        // Create the associated Handler
        TSOClient client = TSOClient.newInstance(clientConfig);

        HBaseOmidClientConfiguration clientConf = new HBaseOmidClientConfiguration();
        clientConf.setConnectionString("localhost:" + port);
        clientConf.setConflictAnalysisLevel(OmidClientConfiguration.ConflictDetectionLevel.ROW);
        clientConf.setHBaseConfiguration(config);
        commitTableClient = commitTable.getClient();
        commitTableWriter = commitTable.getWriter();
        transactionManager = HBaseTransactionManager.builder(clientConf)
                .commitTableClient(commitTableClient)
                .commitTableWriter(commitTableWriter)
                .tsoClient(client).build();
    } catch (IOException | InterruptedException e) {
        throw new SQLExceptionInfo.Builder(
                SQLExceptionCode.TRANSACTION_FAILED)
                .setMessage(e.getMessage()).setRootCause(e).build()
                .buildException();
    }

    return new OmidTransactionService(tso, transactionManager);
}
 
示例12
@Override
public void setConflictDetectionLevel(OmidClientConfiguration.ConflictDetectionLevel conflictDetectionLevel) {

}