本文整理了Java中com.datastax.driver.core.Metadata.getReplicas()
方法的一些代码示例,展示了Metadata.getReplicas()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Metadata.getReplicas()
方法的具体详情如下:
包路径:com.datastax.driver.core.Metadata
类名称:Metadata
方法名:getReplicas
[英]Returns the set of hosts that are replica for a given token range.
Note that it is assumed that the input range does not overlap across multiple host ranges. If the range extends over multiple hosts, it only returns the replicas for those hosts that are replicas for the last token of the range. This behavior may change in a future release, see JAVA-1355.
Also note that this information is refreshed asynchronously by the control connection, when schema or ring topology changes. It might occasionally be stale (or even empty).
[中]返回给定令牌范围内的复制主机集。
请注意,假设输入范围不会在多个主机范围之间重叠。如果范围扩展到多个主机,它只返回那些主机的副本,这些主机是范围最后一个令牌的副本。这种行为可能会在未来的版本中发生变化,请参见JAVA-1355。
还请注意,当模式或环拓扑发生更改时,控制连接会异步刷新此信息。它可能偶尔会过时(甚至是空的)。
代码示例来源:origin: prestodb/presto
@Override
public Set<Host> getReplicas(String caseSensitiveSchemaName, TokenRange tokenRange)
{
requireNonNull(caseSensitiveSchemaName, "keyspace is null");
requireNonNull(tokenRange, "tokenRange is null");
return executeWithSession(session ->
session.getCluster().getMetadata().getReplicas(validSchemaName(caseSensitiveSchemaName), tokenRange));
}
代码示例来源:origin: prestodb/presto
@Override
public Set<Host> getReplicas(String caseSensitiveSchemaName, ByteBuffer partitionKey)
{
requireNonNull(caseSensitiveSchemaName, "keyspace is null");
requireNonNull(partitionKey, "partitionKey is null");
return executeWithSession(session ->
session.getCluster().getMetadata().getReplicas(validSchemaName(caseSensitiveSchemaName), partitionKey));
}
代码示例来源:origin: hugegraph/hugegraph
private Map<TokenRange, Set<Host>> getRangeMap() {
Metadata metadata = this.session.metadata();
return metadata.getTokenRanges().stream().collect(Collectors.toMap(
p -> p,
p -> metadata.getReplicas('"' + this.keyspace + '"', p)));
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
return childPolicy.newQueryPlan(keyspace, statement);
final Set<Host> replicas = clusterMetadata.getReplicas(Metadata.quote(keyspace), partitionKey);
if (replicas.isEmpty()) return childPolicy.newQueryPlan(loggedKeyspace, statement);
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
@BeforeMethod(groups = "unit")
public void initMocks() {
CodecRegistry codecRegistry = new CodecRegistry();
cluster = mock(Cluster.class);
Configuration configuration = mock(Configuration.class);
ProtocolOptions protocolOptions = mock(ProtocolOptions.class);
Metadata metadata = mock(Metadata.class);
childPolicy = mock(LoadBalancingPolicy.class);
when(cluster.getConfiguration()).thenReturn(configuration);
when(configuration.getCodecRegistry()).thenReturn(codecRegistry);
when(configuration.getProtocolOptions()).thenReturn(protocolOptions);
when(protocolOptions.getProtocolVersion()).thenReturn(ProtocolVersion.NEWEST_SUPPORTED);
when(cluster.getMetadata()).thenReturn(metadata);
when(metadata.getReplicas(Metadata.quote("keyspace"), routingKey))
.thenReturn(Sets.newLinkedHashSet(host1, host2));
when(childPolicy.newQueryPlan("keyspace", statement))
.thenReturn(Sets.newLinkedHashSet(host4, host3, host2, host1).iterator());
when(childPolicy.distance(any(Host.class))).thenReturn(HostDistance.LOCAL);
when(host1.isUp()).thenReturn(true);
when(host2.isUp()).thenReturn(true);
when(host3.isUp()).thenReturn(true);
when(host4.isUp()).thenReturn(true);
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
@Test(groups = "short", dataProvider = "newKeyspaceName")
public void should_notify_of_keyspace_drop(String keyspace) throws InterruptedException {
execute(CREATE_KEYSPACE, keyspace);
for (SchemaChangeListener listener : listeners) {
ArgumentCaptor<KeyspaceMetadata> added = ArgumentCaptor.forClass(KeyspaceMetadata.class);
verify(listener, timeout(NOTIF_TIMEOUT_MS).times(1)).onKeyspaceAdded(added.capture());
assertThat(added.getValue()).hasName(handleId(keyspace));
}
for (Metadata m : metadatas())
assertThat(m.getReplicas(keyspace, Bytes.fromHexString("0xCAFEBABE"))).isNotEmpty();
execute(CREATE_TABLE, keyspace); // to test table drop notifications
execute(DROP_KEYSPACE, keyspace);
for (SchemaChangeListener listener : listeners) {
ArgumentCaptor<TableMetadata> table = ArgumentCaptor.forClass(TableMetadata.class);
verify(listener, timeout(NOTIF_TIMEOUT_MS).times(1)).onTableRemoved(table.capture());
assertThat(table.getValue()).hasName("table1").isInKeyspace(handleId(keyspace));
ArgumentCaptor<KeyspaceMetadata> ks = ArgumentCaptor.forClass(KeyspaceMetadata.class);
verify(listener, timeout(NOTIF_TIMEOUT_MS).times(1)).onKeyspaceRemoved(ks.capture());
assertThat(ks.getValue()).hasName(handleId(keyspace));
}
for (Metadata m : metadatas()) {
assertThat(m.getKeyspace(keyspace)).isNull();
assertThat(m.getReplicas(keyspace, Bytes.fromHexString("0xCAFEBABE"))).isEmpty();
}
}
代码示例来源:origin: jsevellec/cassandra-unit
private Map<TokenRange, Set<Host>> getRangeMap(String keyspace, Metadata metadata)
{
return metadata.getTokenRanges()
.stream()
.collect(toMap(p -> p, p -> metadata.getReplicas('"' + keyspace + '"', p)));
}
代码示例来源:origin: com.strapdata.cassandra/cassandra-all
private Map<TokenRange, Set<Host>> getRangeMap(String keyspace, Metadata metadata)
{
return metadata.getTokenRanges()
.stream()
.collect(toMap(p -> p, p -> metadata.getReplicas('"' + keyspace + '"', p)));
}
代码示例来源:origin: org.apache.cassandra/cassandra-all
private Map<TokenRange, Set<Host>> getRangeMap(String keyspace, Metadata metadata)
{
return metadata.getTokenRanges()
.stream()
.collect(toMap(p -> p, p -> metadata.getReplicas('"' + keyspace + '"', p)));
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
/** JAVA-684: Empty TokenRange returned in a one token cluster */
@Test(groups = "short")
public void should_return_single_non_empty_range_when_cluster_has_one_single_token() {
cluster().manager.controlConnection.refreshNodeListAndTokenMap();
Metadata metadata = cluster().getMetadata();
Set<TokenRange> tokenRanges = metadata.getTokenRanges();
assertThat(tokenRanges).hasSize(1);
TokenRange tokenRange = tokenRanges.iterator().next();
assertThat(tokenRange)
.startsWith(Token.M3PToken.FACTORY.minToken())
.endsWith(Token.M3PToken.FACTORY.minToken())
.isNotEmpty()
.isNotWrappedAround();
Set<Host> hostsForRange = metadata.getReplicas(keyspace, tokenRange);
Host host1 = TestUtils.findHost(cluster(), 1);
assertThat(hostsForRange).containsOnly(host1);
ByteBuffer randomPartitionKey = Bytes.fromHexString("0xCAFEBABE");
Set<Host> hostsForKey = metadata.getReplicas(keyspace, randomPartitionKey);
assertThat(hostsForKey).containsOnly(host1);
Set<TokenRange> rangesForHost = metadata.getTokenRanges(keyspace, host1);
assertThat(rangesForHost).containsOnly(tokenRange);
}
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
metadata.getReplicas(
ks1,
TypeCodec.cint()
foundRange = range;
assertThat(metadata.getReplicas(ks1, range)).contains(replica);
代码示例来源:origin: com.baidu.hugegraph/hugegraph-cassandra
private Map<TokenRange, Set<Host>> getRangeMap() {
Metadata metadata = this.session.metadata();
return metadata.getTokenRanges().stream().collect(Collectors.toMap(
p -> p,
p -> metadata.getReplicas('"' + this.keyspace + '"', p)));
}
代码示例来源:origin: org.apache.cassandra/cassandra-all
public NativeRingCache(Configuration conf, Metadata metadata)
{
this.partitioner = ConfigHelper.getOutputPartitioner(conf);
this.metadata = metadata;
String keyspace = ConfigHelper.getOutputKeyspace(conf);
this.rangeMap = metadata.getTokenRanges()
.stream()
.collect(toMap(p -> p, p -> metadata.getReplicas('"' + keyspace + '"', p)));
}
代码示例来源:origin: jsevellec/cassandra-unit
public NativeRingCache(Configuration conf, Metadata metadata)
{
this.partitioner = ConfigHelper.getOutputPartitioner(conf);
this.metadata = metadata;
String keyspace = ConfigHelper.getOutputKeyspace(conf);
this.rangeMap = metadata.getTokenRanges()
.stream()
.collect(toMap(p -> p, p -> metadata.getReplicas('"' + keyspace + '"', p)));
}
代码示例来源:origin: com.strapdata.cassandra/cassandra-all
public NativeRingCache(Configuration conf, Metadata metadata)
{
this.partitioner = ConfigHelper.getOutputPartitioner(conf);
this.metadata = metadata;
String keyspace = ConfigHelper.getOutputKeyspace(conf);
this.rangeMap = metadata.getTokenRanges()
.stream()
.collect(toMap(p -> p, p -> metadata.getReplicas('"' + keyspace + '"', p)));
}
代码示例来源:origin: com.facebook.presto/presto-cassandra
@Override
public Set<Host> getReplicas(String caseSensitiveSchemaName, ByteBuffer partitionKey)
{
requireNonNull(caseSensitiveSchemaName, "keyspace is null");
requireNonNull(partitionKey, "partitionKey is null");
return executeWithSession(session ->
session.getCluster().getMetadata().getReplicas(validSchemaName(caseSensitiveSchemaName), partitionKey));
}
代码示例来源:origin: prestosql/presto
@Override
public Set<Host> getReplicas(String caseSensitiveSchemaName, ByteBuffer partitionKey)
{
requireNonNull(caseSensitiveSchemaName, "keyspace is null");
requireNonNull(partitionKey, "partitionKey is null");
return executeWithSession(session ->
session.getCluster().getMetadata().getReplicas(validSchemaName(caseSensitiveSchemaName), partitionKey));
}
代码示例来源:origin: com.facebook.presto/presto-cassandra
@Override
public Set<Host> getReplicas(String caseSensitiveSchemaName, TokenRange tokenRange)
{
requireNonNull(caseSensitiveSchemaName, "keyspace is null");
requireNonNull(tokenRange, "tokenRange is null");
return executeWithSession(session ->
session.getCluster().getMetadata().getReplicas(validSchemaName(caseSensitiveSchemaName), tokenRange));
}
代码示例来源:origin: prestosql/presto
@Override
public Set<Host> getReplicas(String caseSensitiveSchemaName, TokenRange tokenRange)
{
requireNonNull(caseSensitiveSchemaName, "keyspace is null");
requireNonNull(tokenRange, "tokenRange is null");
return executeWithSession(session ->
session.getCluster().getMetadata().getReplicas(validSchemaName(caseSensitiveSchemaName), tokenRange));
}
代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core
Lists.newArrayList(cluster.getMetadata().getReplicas("keyspace", routingKey));
assertThat(replicas)
.containsExactly(
内容来源于网络,如有侵权,请联系作者删除!