Java 类com.datastax.driver.core.ExecutionInfo 实例源码

项目:spark-cassandra-poc    文件:CassandraConnection.java   
@Override
public ResultSet<CassandraDBContext> execute(Query<CassandraDBContext> query) throws QueryExecutionException {
    try (Cluster cassandraConnection = buildConnection()) {

        final Metadata metadata = cassandraConnection.getMetadata();
        System.out.printf("Connected to cluster: %s", metadata.getClusterName());
        for (final Host host : metadata.getAllHosts()) {
            System.out.printf("Datacenter: %s; Host: %s; Rack: %s", host.getDatacenter(), host.getAddress(),
                    host.getRack());
        }

        try (Session session = cassandraConnection.connect()) {

            String queryToExecute = query.getQuery();
            System.out.println(queryToExecute);
            com.datastax.driver.core.ResultSet resultSet = session.execute(queryToExecute);
            printResultSet(resultSet);

            ExecutionInfo executionInfo = resultSet.getExecutionInfo();
            System.out.println(executionInfo);
        }
    }
    // There isn't any resultset for these use-case
    return new CassandraResultSet();
}
项目:Troilus    文件:AbstractQuery.java   
@Override
public String toString() {
    StringBuilder builder = new StringBuilder(); 
    for (ExecutionInfo info : getAllExecutionInfo())  {

        builder.append("queried=" + info.getQueriedHost());
        builder.append("\r\ntried=")
               .append(Joiner.on(",").join(info.getTriedHosts()));


        if (info.getAchievedConsistencyLevel() != null) {
            builder.append("\r\nachievedConsistencyLevel=" + info.getAchievedConsistencyLevel());
        }

        if (info.getQueryTrace() != null) {
            builder.append("\r\ntraceid=" + info.getQueryTrace().getTraceId());
            builder.append("\r\nevents:\r\n" + Joiner.on("\r\n").join(info.getQueryTrace().getEvents()));
        }
    }
    return builder.toString();
}
项目:cassandra-probe    文件:TestCQLQueryProbe.java   
public void logExecutionInfo(String prefix, ExecutionInfo executionInfo) {
    if (executionInfo != null) {
        StringBuilder msg = new StringBuilder("\n" + prefix);
        msg.append(String.format("\nHost (queried): %s\n", executionInfo.getQueriedHost().toString()));

        for (Host host : executionInfo.getTriedHosts()) {
            msg.append(String.format("Host (tried): %s\n", host.toString()));
        }

        QueryTrace queryTrace = executionInfo.getQueryTrace();
        if (queryTrace != null) {
            msg.append(String.format("Trace id: %s\n\n", queryTrace.getTraceId()));
            msg.append(String.format("%-80s | %-12s | %-20s | %-12s\n", "activity", "timestamp", "source", "source_elapsed"));
            msg.append(String.format("---------------------------------------------------------------------------------+--------------+----------------------+--------------\n"));
            for (QueryTrace.Event event : queryTrace.getEvents()) {
                msg.append(String.format("%80s | %12s | %20s | %12s\n", event.getDescription(), format.format(event.getTimestamp()), event.getSource(), event.getSourceElapsedMicros()));
            }
            LOG.info(msg.toString());
        } else {
            LOG.warn("Query Trace is null\n" + msg);
        }
    } else {
        LOG.warn("Null execution info");
    }
}
项目:hecuba    文件:DataStaxBasedSharedHecubaClientManager.java   
private void write(String query, Object... values) {
    logger.debug("query = {} : values = {}", query, values);
    PreparedStatement stmt = writeStatementCache.getUnchecked(query);

    BoundStatement bind = stmt.bind(values);
    ResultSet rs = session.execute(bind);

    ExecutionInfo executionInfo = rs.getExecutionInfo();
    Host queriedHost = executionInfo.getQueriedHost();
    logger.debug("queried host = {}", queriedHost);

    if (tracingEnabled) {
        QueryTrace queryTrace = executionInfo.getQueryTrace();
        if (queryTrace != null) {
            if (logger.isDebugEnabled()) {
                logger.debug("{}", toString(queryTrace));
            }
        }
    }
}
项目:emodb    文件:AdaptiveResultSet.java   
/**
 * Reduces the fetch size and retries the query.  Returns true if the query succeeded, false if the root cause
 * of the exception does not indicate a frame size issue, if the frame size cannot be adjusted down any further,
 * or if the retried query fails for an unrelated reason.
 */
private boolean reduceFetchSize(Throwable reason) {
    if (!isAdaptiveException(reason) || --_remainingAdaptations == 0) {
        return false;
    }

    ExecutionInfo executionInfo = _delegate.getExecutionInfo();
    Statement statement = executionInfo.getStatement();
    PagingState pagingState = executionInfo.getPagingState();
    int fetchSize = statement.getFetchSize();

    while (fetchSize > MIN_FETCH_SIZE) {
        fetchSize = Math.max(fetchSize / 2, MIN_FETCH_SIZE);
        _log.debug("Retrying query at next page with fetch size {} due to {}", fetchSize, reason.getMessage());
        statement.setFetchSize(fetchSize);
        statement.setPagingState(pagingState);
        try {
            _delegate = _session.execute(statement);
            return true;
        } catch (Throwable t) {
            // Exit the adaptation loop if the exception isn't one where adapting further may help
            if (!isAdaptiveException(t) || --_remainingAdaptations == 0) {
                return false;
            }
        }
    }

    return false;
}
项目:emodb    文件:TestCassandraHealthCheck.java   
private ResultSet createPositiveResultSet(String hostName) {
    ExecutionInfo executionInfo = mock(ExecutionInfo.class);
    Host host = mock(Host.class);
    when(host.toString()).thenReturn(hostName);
    when(executionInfo.getQueriedHost()).thenReturn(host);
    ResultSet resultSet = mock(ResultSet.class);
    when(resultSet.getExecutionInfo()).thenReturn(executionInfo);
    return resultSet;
}
项目:cassandra-health-check    文件:CassandraHealthCheck.java   
public int healthCheck() {
    final Statement health = QueryBuilder.select().all().from(HEALTHCHECK_KEYSPACE_NAME, "healthcheck")
            .where(eq("healthkey", "healthy"));
    health.setConsistencyLevel(ConsistencyLevel.ALL);
    health.enableTracing();
    QueryTrace queryTrace;
    cluster.register(new LoggingLatencyTracker());
    try {
        final ResultSet results = session.execute(health);
        final ExecutionInfo executionInfo = results.getExecutionInfo();
        queryTrace = executionInfo.getQueryTrace();
    } catch (NoHostAvailableException e) {
        LOG.error("No hosts available", e);
        return 2;
    }
    if (retryPolicy.getLastDecision() != null) {
        LOG.warn("Could not query all hosts");
        if (queryTrace != null) {
            final Set<InetAddress> missingHosts = new HashSet<>(hosts.size());
            for (Host host : hosts) {
                missingHosts.add(host.getSocketAddress().getAddress());
            }
            for (QueryTrace.Event event : queryTrace.getEvents()) {
                missingHosts.remove(event.getSource());
                LOG.debug("description={} elapsed={} source={} micros={}",
                        event.getDescription(),
                        millis2Date(event.getTimestamp()),
                        event.getSource(),
                        event.getSourceElapsedMicros());
            }
            if (!missingHosts.isEmpty()) {
                LOG.error("Missing log entries from these hosts: {}", missingHosts);
            }
        }
        return 1;
    }
    return 0;
}
项目:heroic    文件:DatastaxBackend.java   
private AsyncFuture<QueryTrace> buildTrace(
    final Connection c, final QueryTrace.Identifier what, final long elapsed,
    List<ExecutionInfo> info
) {
    final ImmutableList.Builder<AsyncFuture<QueryTrace>> traces = ImmutableList.builder();

    for (final ExecutionInfo i : info) {
        com.datastax.driver.core.QueryTrace qt = i.getQueryTrace();

        if (qt == null) {
            log.warn("Query trace requested, but is not available");
            continue;
        }

        traces.add(getEvents(c, qt.getTraceId()).directTransform(events -> {
            final ImmutableList.Builder<QueryTrace> children = ImmutableList.builder();

            for (final Event e : events) {
                final long eventElapsed =
                    TimeUnit.NANOSECONDS.convert(e.getSourceElapsed(), TimeUnit.MICROSECONDS);
                children.add(QueryTrace.of(QueryTrace.identifier(e.getName()), eventElapsed));
            }

            final QueryTrace.Identifier segment = QueryTrace.identifier(
                i.getQueriedHost().toString() + "[" + qt.getTraceId().toString() + "]");

            final long segmentElapsed =
                TimeUnit.NANOSECONDS.convert(qt.getDurationMicros(), TimeUnit.MICROSECONDS);

            return QueryTrace.of(segment, segmentElapsed, children.build());
        }));
    }

    return async
        .collect(traces.build())
        .directTransform(t -> QueryTrace.of(what, elapsed, ImmutableList.copyOf(t)));
}
项目:Simba    文件:CassandraHandler.java   
public ResultSet getRowWithTracing(String keyspace, String table,
        String key, ConsistencyLevel level) {

    Query select = QueryBuilder.select().all().from(keyspace, table)
            .where(QueryBuilder.eq(KEY, key)).setConsistencyLevel(level)
            .enableTracing();

    ResultSet results = session.execute(select);
    ExecutionInfo executionInfo = results.getExecutionInfo();
    System.out.printf("Host (queried): %s\n", executionInfo
            .getQueriedHost().toString());
    for (Host host : executionInfo.getTriedHosts()) {
        System.out.printf("Host (tried): %s\n", host.toString());
    }
    QueryTrace queryTrace = executionInfo.getQueryTrace();
    System.out.printf("Trace id: %s\n\n", queryTrace.getTraceId());
    System.out.printf("%-38s | %-12s | %-10s | %-12s\n", "activity",
            "timestamp", "source", "source_elapsed");
    System.out
            .println("---------------------------------------+--------------+------------+--------------");
    for (QueryTrace.Event event : queryTrace.getEvents()) {
        System.out.printf("%38s | %12s | %10s | %12s\n",
                event.getDescription(), new Date(event.getTimestamp()),
                event.getSource(), event.getSourceElapsedMicros());
    }
    select.disableTracing();
    return results;
}
项目:hecuba    文件:DataStaxBasedSharedHecubaClientManager.java   
private CassandraResultSet<K, String> read(String query, DataType keyType, DataType columnType,
        Map<String, DataType> valueTypes, Object... values) {
    logger.debug("query = {} : values = {}", query, values);
    PreparedStatement stmt = readStatementCache.getUnchecked(query);

    BoundStatement bind = stmt.bind(values);

    if (statementFetchSize > 0) {
        bind.setFetchSize(statementFetchSize);
    } else {
        bind.setFetchSize(Integer.MAX_VALUE);
    }

    long startTimeNanos = System.nanoTime();
    ResultSet rs = session.execute(bind);
    long durationNanos = System.nanoTime() - startTimeNanos;

    ExecutionInfo executionInfo = rs.getExecutionInfo();
    Host queriedHost = executionInfo.getQueriedHost();
    logger.debug("queried host = {}", queriedHost);

    if (tracingEnabled) {
        QueryTrace queryTrace = executionInfo.getQueryTrace();
        if (queryTrace != null) {
            if (logger.isDebugEnabled()) {
                logger.debug("{}", toString(queryTrace));
            }
        }
    }

    return new DataStaxCassandraResultSet<K>(rs, ObjectUtils.defaultIfNull(keyType, this.keyType),
            columnType, valueTypes, durationNanos);
}
项目:cfs    文件:ConsumerEnd.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return null;
}
项目:cfs    文件:ConsumerEnd.java   
@Override
public List<ExecutionInfo> getAllExecutionInfo() {
    return null;
}
项目:cfs    文件:ProducerEnd.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return null;
}
项目:cfs    文件:ProducerEnd.java   
@Override
public List<ExecutionInfo> getAllExecutionInfo() {
    return null;
}
项目:emodb    文件:AdaptiveResultSet.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return _delegate.getExecutionInfo();
}
项目:emodb    文件:AdaptiveResultSet.java   
@Override
public List<ExecutionInfo> getAllExecutionInfo() {
    return _delegate.getAllExecutionInfo();
}
项目:cassandra-jdbc-wrapper    文件:MetadataResultSet.java   
public ExecutionInfo getExecutionInfo() {
    // TODO Auto-generated method stub
    return null;
}
项目:cassandra-jdbc-wrapper    文件:MetadataResultSet.java   
public List<ExecutionInfo> getAllExecutionInfo() {
    // TODO Auto-generated method stub
    return null;
}
项目:Simba    文件:CassandraHandler.java   
public void putRowWithTracing(String keyspace, String tableName,
        String rowKey, Integer version, List<ColumnData> values,
        ConsistencyLevel level) {

    StringBuilder command = new StringBuilder();
    StringBuilder vals = new StringBuilder();

    command.append("INSERT INTO ")
            .append((keyspace == null) ? keyspaceName : keyspace)
            .append(".").append(tableName).append(" (").append(KEY)
            .append(",").append(VERSION).append(",").append(DELETED)
            .append(",");

    ColumnData pair = values.get(0);
    command.append(pair.getColumn());
    vals.append(pair.getValue());

    for (int i = 1; i < values.size(); i++) {
        pair = values.get(i);
        command.append(",").append(pair.getColumn());
        vals.append(",").append(pair.getValue());
    }

    command.append(") VALUES (").append("'" + rowKey + "',")
            .append(version + ",").append("false,").append(vals.toString())
            .append(");");
    LOG.debug(command.toString());

    SimpleStatement ss = new SimpleStatement(command.toString());
    Query insert = QueryBuilder.batch(ss).setConsistencyLevel(level)
            .enableTracing();

    ResultSet results = session.execute(insert);
    ExecutionInfo executionInfo = results.getExecutionInfo();
    System.out.printf("Host (queried): %s\n", executionInfo
            .getQueriedHost().toString());
    for (Host host : executionInfo.getTriedHosts()) {
        System.out.printf("Host (tried): %s\n", host.toString());
    }
    QueryTrace queryTrace = executionInfo.getQueryTrace();
    System.out.printf("Trace id: %s\n\n", queryTrace.getTraceId());
    System.out.printf("%-38s | %-12s | %-10s | %-12s\n", "activity",
            "timestamp", "source", "source_elapsed");
    System.out
            .println("---------------------------------------+--------------+------------+--------------");
    for (QueryTrace.Event event : queryTrace.getEvents()) {
        System.out.printf("%38s | %12s | %10s | %12s\n",
                event.getDescription(), new Date(event.getTimestamp()),
                event.getSource(), event.getSourceElapsedMicros());
    }
    insert.disableTracing();

}
项目:Troilus    文件:RecordListAdapter.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return list.getExecutionInfo();
}
项目:Troilus    文件:RecordListAdapter.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return list.getAllExecutionInfo();
}
项目:Troilus    文件:RecordAdapter.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return record.getExecutionInfo();
}
项目:Troilus    文件:RecordAdapter.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return record.getAllExecutionInfo();
}
项目:Troilus    文件:DaoImpl.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return recordList.getExecutionInfo();
}
项目:Troilus    文件:DaoImpl.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return recordList.getAllExecutionInfo();
}
项目:Troilus    文件:DaoImpl.java   
static net.oneandone.troilus.java7.ResultList<net.oneandone.troilus.java7.Record> convertToJava7(ResultList<Record> recordList) {

    return new net.oneandone.troilus.java7.ResultList<net.oneandone.troilus.java7.Record>() {

        @Override
        public boolean wasApplied() {
            return recordList.wasApplied();
        }

        @Override
        public ExecutionInfo getExecutionInfo() {
            return recordList.getExecutionInfo();
        }

        @Override
        public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
            return recordList.getAllExecutionInfo();
        }

        public net.oneandone.troilus.java7.FetchingIterator<net.oneandone.troilus.java7.Record> iterator() {

            return new net.oneandone.troilus.java7.FetchingIterator<net.oneandone.troilus.java7.Record>() {

                private final FetchingIterator<Record> iterator = recordList.iterator();

                @Override
                public boolean hasNext() {
                    return iterator.hasNext();
                }

                @Override
                public net.oneandone.troilus.java7.Record next() {
                    return RecordAdapter.convertToJava7(iterator.next());
                }

                @Override
                public int getAvailableWithoutFetching() {
                    return iterator.getAvailableWithoutFetching();
                }

                @Override
                public ListenableFuture<ResultSet> fetchMoreResultsAsync() {
                    return CompletableFutures.toListenableFuture(iterator.fetchMoreResultsAsync());
                }

                @Override
                public boolean isFullyFetched() {
                    return iterator.isFullyFetched();
                }
            };
        }
    };
}
项目:Troilus    文件:SimpleResultList.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return null;
}
项目:Troilus    文件:SimpleResultList.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return null;
}
项目:Troilus    文件:RecordImpl.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return result.getExecutionInfo();
}
项目:Troilus    文件:RecordImpl.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return result.getAllExecutionInfo();
}
项目:Troilus    文件:RecordListImpl.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return rs.getExecutionInfo();
}
项目:Troilus    文件:RecordListImpl.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return ImmutableList.copyOf(rs.getAllExecutionInfo());
}
项目:Troilus    文件:ResultAdapter.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return result.getExecutionInfo();
}
项目:Troilus    文件:ResultAdapter.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return result.getAllExecutionInfo();
}
项目:Troilus    文件:AbstractQuery.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return rs.getExecutionInfo();
}
项目:Troilus    文件:AbstractQuery.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return ImmutableList.copyOf(rs.getAllExecutionInfo());
}
项目:Troilus    文件:Count.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return rs.getExecutionInfo();
}
项目:Troilus    文件:Count.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return ImmutableList.copyOf(rs.getAllExecutionInfo());
}
项目:Troilus    文件:ResultListAdapter.java   
@Override
public ExecutionInfo getExecutionInfo() {
    return recordList.getExecutionInfo();
}
项目:Troilus    文件:ResultListAdapter.java   
@Override
public ImmutableList<ExecutionInfo> getAllExecutionInfo() {
    return recordList.getAllExecutionInfo();
}