当前位置: 首页>>代码示例>>Java>>正文


Java TokenMetadata.updateNormalTokens方法代码示例

本文整理汇总了Java中org.apache.cassandra.locator.TokenMetadata.updateNormalTokens方法的典型用法代码示例。如果您正苦于以下问题:Java TokenMetadata.updateNormalTokens方法的具体用法?Java TokenMetadata.updateNormalTokens怎么用?Java TokenMetadata.updateNormalTokens使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.cassandra.locator.TokenMetadata的用法示例。


在下文中一共展示了TokenMetadata.updateNormalTokens方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: allocateTokens

import org.apache.cassandra.locator.TokenMetadata; //导入方法依赖的package包/类
public static Collection<Token> allocateTokens(final TokenMetadata tokenMetadata,
                                               final AbstractReplicationStrategy rs,
                                               final InetAddress endpoint,
                                               int numTokens)
{
    StrategyAdapter strategy = getStrategy(tokenMetadata, rs, endpoint);
    Collection<Token> tokens = create(tokenMetadata, strategy).addUnit(endpoint, numTokens);
    tokens = adjustForCrossDatacenterClashes(tokenMetadata, strategy, tokens);

    if (logger.isWarnEnabled())
    {
        logger.warn("Selected tokens {}", tokens);
        SummaryStatistics os = replicatedOwnershipStats(tokenMetadata, rs, endpoint);
        TokenMetadata tokenMetadataCopy = tokenMetadata.cloneOnlyTokenMap();
        tokenMetadataCopy.updateNormalTokens(tokens, endpoint);
        SummaryStatistics ns = replicatedOwnershipStats(tokenMetadataCopy, rs, endpoint);
        logger.warn("Replicated node load in datacentre before allocation " + statToString(os));
        logger.warn("Replicated node load in datacentre after allocation " + statToString(ns));

        // TODO: Is it worth doing the replicated ownership calculation always to be able to raise this alarm?
        if (ns.getStandardDeviation() > os.getStandardDeviation())
            logger.warn("Unexpected growth in standard deviation after allocation.");
    }
    return tokens;
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:26,代码来源:TokenAllocation.java

示例2: resetGcGraceSeconds

import org.apache.cassandra.locator.TokenMetadata; //导入方法依赖的package包/类
@Before
public void resetGcGraceSeconds()
{
    TokenMetadata tokenMeta = StorageService.instance.getTokenMetadata();
    InetAddress local = FBUtilities.getBroadcastAddress();
    tokenMeta.clearUnsafe();
    tokenMeta.updateHostId(UUID.randomUUID(), local);
    tokenMeta.updateNormalTokens(BootStrapper.getRandomTokens(tokenMeta, 1), local);

    for (CFMetaData table : Schema.instance.getTablesAndViews(KEYSPACE))
        table.gcGraceSeconds(TableParams.DEFAULT_GC_GRACE_SECONDS);
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:13,代码来源:HintTest.java

示例3: generateFakeEndpoints

import org.apache.cassandra.locator.TokenMetadata; //导入方法依赖的package包/类
private void generateFakeEndpoints(TokenMetadata tmd, int numOldNodes, int numVNodes, String dc, String rack) throws UnknownHostException
{
    IPartitioner p = tmd.partitioner;

    for (int i = 1; i <= numOldNodes; i++)
    {
        // leave .1 for myEndpoint
        InetAddress addr = InetAddress.getByName("127." + dc + "." + rack + "." + (i + 1));
        List<Token> tokens = Lists.newArrayListWithCapacity(numVNodes);
        for (int j = 0; j < numVNodes; ++j)
            tokens.add(p.getRandomToken());
        
        tmd.updateNormalTokens(tokens, addr);
    }
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:16,代码来源:BootStrapperTest.java

示例4: allocateTokensForNode

import org.apache.cassandra.locator.TokenMetadata; //导入方法依赖的package包/类
private void allocateTokensForNode(int vn, String ks, TokenMetadata tm, InetAddress addr)
{
    SummaryStatistics os = TokenAllocation.replicatedOwnershipStats(tm, Keyspace.open(ks).getReplicationStrategy(), addr);
    Collection<Token> tokens = BootStrapper.allocateTokens(tm, addr, ks, vn);
    assertEquals(vn, tokens.size());
    tm.updateNormalTokens(tokens, addr);
    SummaryStatistics ns = TokenAllocation.replicatedOwnershipStats(tm, Keyspace.open(ks).getReplicationStrategy(), addr);
    verifyImprovement(os, ns);
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:10,代码来源:BootStrapperTest.java

示例5: testPrimaryRangeForEndpointWithinDCWithVnodes

import org.apache.cassandra.locator.TokenMetadata; //导入方法依赖的package包/类
@Test
public void testPrimaryRangeForEndpointWithinDCWithVnodes() throws Exception
{
    TokenMetadata metadata = StorageService.instance.getTokenMetadata();
    metadata.clearUnsafe();

    // DC1
    Multimap<InetAddress, Token> dc1 = HashMultimap.create();
    dc1.put(InetAddress.getByName("127.0.0.1"), new StringToken("A"));
    dc1.put(InetAddress.getByName("127.0.0.1"), new StringToken("E"));
    dc1.put(InetAddress.getByName("127.0.0.1"), new StringToken("H"));
    dc1.put(InetAddress.getByName("127.0.0.2"), new StringToken("C"));
    dc1.put(InetAddress.getByName("127.0.0.2"), new StringToken("I"));
    dc1.put(InetAddress.getByName("127.0.0.2"), new StringToken("J"));
    metadata.updateNormalTokens(dc1);

    // DC2
    Multimap<InetAddress, Token> dc2 = HashMultimap.create();
    dc2.put(InetAddress.getByName("127.0.0.4"), new StringToken("B"));
    dc2.put(InetAddress.getByName("127.0.0.4"), new StringToken("G"));
    dc2.put(InetAddress.getByName("127.0.0.4"), new StringToken("L"));
    dc2.put(InetAddress.getByName("127.0.0.5"), new StringToken("D"));
    dc2.put(InetAddress.getByName("127.0.0.5"), new StringToken("F"));
    dc2.put(InetAddress.getByName("127.0.0.5"), new StringToken("K"));
    metadata.updateNormalTokens(dc2);

    Map<String, String> configOptions = new HashMap<>();
    configOptions.put("DC1", "1");
    configOptions.put("DC2", "2");

    Keyspace.clear("Keyspace1");
    KSMetaData meta = KSMetaData.newKeyspace("Keyspace1", "NetworkTopologyStrategy", configOptions, false);
    Schema.instance.setKeyspaceDefinition(meta);

    // endpoints in DC1 should have primary ranges which also cover DC2
    Collection<Range<Token>> primaryRanges = StorageService.instance.getPrimaryRangeForEndpointWithinDC(meta.name, InetAddress.getByName("127.0.0.1"));
    assertEquals(8, primaryRanges.size());
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("J"), new StringToken("K"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("K"), new StringToken("L"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("L"), new StringToken("A"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("C"), new StringToken("D"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("D"), new StringToken("E"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("E"), new StringToken("F"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("F"), new StringToken("G"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("G"), new StringToken("H"))));

    // endpoints in DC1 should have primary ranges which also cover DC2
    primaryRanges = StorageService.instance.getPrimaryRangeForEndpointWithinDC(meta.name, InetAddress.getByName("127.0.0.2"));
    assertEquals(4, primaryRanges.size());
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("B"), new StringToken("C"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("A"), new StringToken("B"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("H"), new StringToken("I"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("I"), new StringToken("J"))));

    // endpoints in DC2 should have primary ranges which also cover DC1
    primaryRanges = StorageService.instance.getPrimaryRangeForEndpointWithinDC(meta.name, InetAddress.getByName("127.0.0.4"));
    assertEquals(4, primaryRanges.size());
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("A"), new StringToken("B"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("F"), new StringToken("G"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("K"), new StringToken("L"))));
    // because /127.0.0.4 holds token "B" which is the next to token "A" from /127.0.0.1,
    // the node covers range (L, A]
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("L"), new StringToken("A"))));

    primaryRanges = StorageService.instance.getPrimaryRangeForEndpointWithinDC(meta.name, InetAddress.getByName("127.0.0.5"));
    assertTrue(primaryRanges.size() == 8);
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("C"), new StringToken("D"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("E"), new StringToken("F"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("J"), new StringToken("K"))));
    // ranges from /127.0.0.1
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("D"), new StringToken("E"))));
    // the next token to "H" in DC2 is "K" in /127.0.0.5, so (G, H] goes to /127.0.0.5
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("G"), new StringToken("H"))));
    // ranges from /127.0.0.2
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("B"), new StringToken("C"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("H"), new StringToken("I"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("I"), new StringToken("J"))));
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:79,代码来源:StorageServiceServerTest.java

示例6: testPrimaryRangeForEndpointWithinDCWithVnodes

import org.apache.cassandra.locator.TokenMetadata; //导入方法依赖的package包/类
@Test
public void testPrimaryRangeForEndpointWithinDCWithVnodes() throws Exception
{
    TokenMetadata metadata = StorageService.instance.getTokenMetadata();
    metadata.clearUnsafe();

    // DC1
    Multimap<InetAddress, Token> dc1 = HashMultimap.create();
    dc1.put(InetAddress.getByName("127.0.0.1"), new StringToken("A"));
    dc1.put(InetAddress.getByName("127.0.0.1"), new StringToken("E"));
    dc1.put(InetAddress.getByName("127.0.0.1"), new StringToken("H"));
    dc1.put(InetAddress.getByName("127.0.0.2"), new StringToken("C"));
    dc1.put(InetAddress.getByName("127.0.0.2"), new StringToken("I"));
    dc1.put(InetAddress.getByName("127.0.0.2"), new StringToken("J"));
    metadata.updateNormalTokens(dc1);

    // DC2
    Multimap<InetAddress, Token> dc2 = HashMultimap.create();
    dc2.put(InetAddress.getByName("127.0.0.4"), new StringToken("B"));
    dc2.put(InetAddress.getByName("127.0.0.4"), new StringToken("G"));
    dc2.put(InetAddress.getByName("127.0.0.4"), new StringToken("L"));
    dc2.put(InetAddress.getByName("127.0.0.5"), new StringToken("D"));
    dc2.put(InetAddress.getByName("127.0.0.5"), new StringToken("F"));
    dc2.put(InetAddress.getByName("127.0.0.5"), new StringToken("K"));
    metadata.updateNormalTokens(dc2);

    Map<String, String> configOptions = new HashMap<>();
    configOptions.put("DC1", "1");
    configOptions.put("DC2", "2");
    configOptions.put(ReplicationParams.CLASS, "NetworkTopologyStrategy");

    Keyspace.clear("Keyspace1");
    KeyspaceMetadata meta = KeyspaceMetadata.create("Keyspace1", KeyspaceParams.create(false, configOptions));
    Schema.instance.setKeyspaceMetadata(meta);

    // endpoints in DC1 should have primary ranges which also cover DC2
    Collection<Range<Token>> primaryRanges = StorageService.instance.getPrimaryRangeForEndpointWithinDC(meta.name, InetAddress.getByName("127.0.0.1"));
    assertEquals(8, primaryRanges.size());
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("J"), new StringToken("K"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("K"), new StringToken("L"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("L"), new StringToken("A"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("C"), new StringToken("D"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("D"), new StringToken("E"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("E"), new StringToken("F"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("F"), new StringToken("G"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("G"), new StringToken("H"))));

    // endpoints in DC1 should have primary ranges which also cover DC2
    primaryRanges = StorageService.instance.getPrimaryRangeForEndpointWithinDC(meta.name, InetAddress.getByName("127.0.0.2"));
    assertEquals(4, primaryRanges.size());
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("B"), new StringToken("C"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("A"), new StringToken("B"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("H"), new StringToken("I"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("I"), new StringToken("J"))));

    // endpoints in DC2 should have primary ranges which also cover DC1
    primaryRanges = StorageService.instance.getPrimaryRangeForEndpointWithinDC(meta.name, InetAddress.getByName("127.0.0.4"));
    assertEquals(4, primaryRanges.size());
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("A"), new StringToken("B"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("F"), new StringToken("G"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("K"), new StringToken("L"))));
    // because /127.0.0.4 holds token "B" which is the next to token "A" from /127.0.0.1,
    // the node covers range (L, A]
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("L"), new StringToken("A"))));

    primaryRanges = StorageService.instance.getPrimaryRangeForEndpointWithinDC(meta.name, InetAddress.getByName("127.0.0.5"));
    assertTrue(primaryRanges.size() == 8);
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("C"), new StringToken("D"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("E"), new StringToken("F"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("J"), new StringToken("K"))));
    // ranges from /127.0.0.1
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("D"), new StringToken("E"))));
    // the next token to "H" in DC2 is "K" in /127.0.0.5, so (G, H] goes to /127.0.0.5
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("G"), new StringToken("H"))));
    // ranges from /127.0.0.2
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("B"), new StringToken("C"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("H"), new StringToken("I"))));
    assertTrue(primaryRanges.contains(new Range<Token>(new StringToken("I"), new StringToken("J"))));
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:80,代码来源:StorageServiceServerTest.java


注:本文中的org.apache.cassandra.locator.TokenMetadata.updateNormalTokens方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。