com.datastax.driver.core.Metadata.getReplicas()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(10.1k)|赞(0)|评价(0)|浏览(121)

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

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(

相关文章