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


Java StorageService.onChange方法代码示例

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


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

示例1: createInitialRing

import org.apache.cassandra.service.StorageService; //导入方法依赖的package包/类
/**
 * Creates initial set of nodes and tokens. Nodes are added to StorageService as 'normal'
 */
public static void createInitialRing(StorageService ss, IPartitioner partitioner, List<Token> endpointTokens,
                               List<Token> keyTokens, List<InetAddress> hosts, List<UUID> hostIds, int howMany)
    throws UnknownHostException
{
    // Expand pool of host IDs as necessary
    for (int i = hostIdPool.size(); i < howMany; i++)
        hostIdPool.add(UUID.randomUUID());

    for (int i=0; i<howMany; i++)
    {
        endpointTokens.add(new BigIntegerToken(String.valueOf(10 * i)));
        keyTokens.add(new BigIntegerToken(String.valueOf(10 * i + 5)));
        hostIds.add(hostIdPool.get(i));
    }

    for (int i=0; i<endpointTokens.size(); i++)
    {
        InetAddress ep = InetAddress.getByName("127.0.0." + String.valueOf(i + 1));
        Gossiper.instance.initializeNodeUnsafe(ep, hostIds.get(i), 1);
        Gossiper.instance.injectApplicationState(ep, ApplicationState.TOKENS, new VersionedValue.VersionedValueFactory(partitioner).tokens(Collections.singleton(endpointTokens.get(i))));
        ss.onChange(ep,
                    ApplicationState.STATUS,
                    new VersionedValue.VersionedValueFactory(partitioner).normal(Collections.singleton(endpointTokens.get(i))));
        hosts.add(ep);
    }

    // check that all nodes are in token metadata
    for (int i=0; i<endpointTokens.size(); ++i)
        assertTrue(ss.getTokenMetadata().isMember(hosts.get(i)));
}
 
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:34,代码来源:Util.java

示例2: createInitialRing

import org.apache.cassandra.service.StorageService; //导入方法依赖的package包/类
/**
 * Creates initial set of nodes and tokens. Nodes are added to StorageService as 'normal'
 */
public static void createInitialRing(StorageService ss, IPartitioner partitioner, List<Token> endpointTokens,
                               List<Token> keyTokens, List<InetAddress> hosts, List<UUID> hostIds, int howMany)
    throws UnknownHostException
{
    // Expand pool of host IDs as necessary
    for (int i = hostIdPool.size(); i < howMany; i++)
        hostIdPool.add(UUID.randomUUID());

    boolean endpointTokenPrefilled = endpointTokens != null && !endpointTokens.isEmpty();
    for (int i=0; i<howMany; i++)
    {
        if(!endpointTokenPrefilled)
            endpointTokens.add(new BigIntegerToken(String.valueOf(10 * i)));
        keyTokens.add(new BigIntegerToken(String.valueOf(10 * i + 5)));
        hostIds.add(hostIdPool.get(i));
    }

    for (int i=0; i<endpointTokens.size(); i++)
    {
        InetAddress ep = InetAddress.getByName("127.0.0." + String.valueOf(i + 1));
        Gossiper.instance.initializeNodeUnsafe(ep, hostIds.get(i), 1);
        Gossiper.instance.injectApplicationState(ep, ApplicationState.TOKENS, new VersionedValue.VersionedValueFactory(partitioner).tokens(Collections.singleton(endpointTokens.get(i))));
        ss.onChange(ep,
                    ApplicationState.STATUS,
                    new VersionedValue.VersionedValueFactory(partitioner).normal(Collections.singleton(endpointTokens.get(i))));
        hosts.add(ep);
    }

    // check that all nodes are in token metadata
    for (int i=0; i<endpointTokens.size(); ++i)
        assertTrue(ss.getTokenMetadata().isMember(hosts.get(i)));
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:36,代码来源:Util.java

示例3: testConvictAfterLeft

import org.apache.cassandra.service.StorageService; //导入方法依赖的package包/类
@Test
public void testConvictAfterLeft() throws UnknownHostException
{
    StorageService ss = StorageService.instance;
    TokenMetadata tmd = ss.getTokenMetadata();
    tmd.clearUnsafe();
    IPartitioner partitioner = new RandomPartitioner();
    VersionedValue.VersionedValueFactory valueFactory = new VersionedValue.VersionedValueFactory(partitioner);

    ArrayList<Token> endpointTokens = new ArrayList<>();
    ArrayList<Token> keyTokens = new ArrayList<>();
    List<InetAddress> hosts = new ArrayList<>();
    List<UUID> hostIds = new ArrayList<>();

    // we want to convict if there is any heartbeat data present in the FD
    DatabaseDescriptor.setPhiConvictThreshold(0);

    // create a ring of 2 nodes
    Util.createInitialRing(ss, partitioner, endpointTokens, keyTokens, hosts, hostIds, 3);

    InetAddress leftHost = hosts.get(1);

    FailureDetector.instance.report(leftHost);

    // trigger handleStateLeft in StorageService
    ss.onChange(leftHost, ApplicationState.STATUS,
                valueFactory.left(Collections.singleton(endpointTokens.get(1)), Gossiper.computeExpireTime()));

    // confirm that handleStateLeft was called and leftEndpoint was removed from TokenMetadata
    assertFalse("Left endpoint not removed from TokenMetadata", tmd.isMember(leftHost));

    // confirm the FD's history for leftHost didn't get wiped by status jump to LEFT
    FailureDetector.instance.interpret(leftHost);
    assertFalse("Left endpoint not convicted", FailureDetector.instance.isAlive(leftHost));
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:36,代码来源:FailureDetectorTest.java


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