• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java NetworkTopologyStrategy类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



NetworkTopologyStrategy类属于org.apache.cassandra.locator包,在下文中一共展示了NetworkTopologyStrategy类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getStrategy

import org.apache.cassandra.locator.NetworkTopologyStrategy; //导入依赖的package包/类
static StrategyAdapter getStrategy(final TokenMetadata tokenMetadata, final AbstractReplicationStrategy rs, final InetAddress endpoint)
{
    if (rs instanceof NetworkTopologyStrategy)
        return getStrategy(tokenMetadata, (NetworkTopologyStrategy) rs, rs.snitch, endpoint);
    if (rs instanceof SimpleStrategy)
        return getStrategy(tokenMetadata, (SimpleStrategy) rs, endpoint);
    throw new ConfigurationException("Token allocation does not support replication strategy " + rs.getClass().getSimpleName());
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:9,代码来源:TokenAllocation.java


示例2: testGetIndexNaturalEndpoint

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

    // DC1
    metadata.updateNormalToken(new StringToken("A"), InetAddress.getByName("127.0.0.1"));
    metadata.updateNormalToken(new StringToken("C"), InetAddress.getByName("127.0.0.2"));

    // DC2
    metadata.updateNormalToken(new StringToken("B"), InetAddress.getByName("127.0.0.4"));
    metadata.updateNormalToken(new StringToken("D"), InetAddress.getByName("127.0.0.5"));

    Map<String, String> replicationMap = new HashMap<>();
    replicationMap.put(ReplicationParams.CLASS, NetworkTopologyStrategy.class.getName());

    replicationMap.put("DC1", "1");
    replicationMap.put("DC2", "1");

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

    Optional<InetAddress> naturalEndpoint = ViewUtils.getViewNaturalEndpoint("Keyspace1",
                                                                   new StringToken("CA"),
                                                                   new StringToken("BB"));

    Assert.assertTrue(naturalEndpoint.isPresent());
    Assert.assertEquals(InetAddress.getByName("127.0.0.2"), naturalEndpoint.get());
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:32,代码来源:ViewUtilsTest.java


示例3: testLocalHostPreference

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

    // DC1
    metadata.updateNormalToken(new StringToken("A"), InetAddress.getByName("127.0.0.1"));
    metadata.updateNormalToken(new StringToken("C"), InetAddress.getByName("127.0.0.2"));

    // DC2
    metadata.updateNormalToken(new StringToken("B"), InetAddress.getByName("127.0.0.4"));
    metadata.updateNormalToken(new StringToken("D"), InetAddress.getByName("127.0.0.5"));

    Map<String, String> replicationMap = new HashMap<>();
    replicationMap.put(ReplicationParams.CLASS, NetworkTopologyStrategy.class.getName());

    replicationMap.put("DC1", "2");
    replicationMap.put("DC2", "2");

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

    Optional<InetAddress> naturalEndpoint = ViewUtils.getViewNaturalEndpoint("Keyspace1",
                                                                   new StringToken("CA"),
                                                                   new StringToken("BB"));

    Assert.assertTrue(naturalEndpoint.isPresent());
    Assert.assertEquals(InetAddress.getByName("127.0.0.1"), naturalEndpoint.get());
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:32,代码来源:ViewUtilsTest.java


示例4: testBaseTokenDoesNotBelongToLocalReplicaShouldReturnEmpty

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

    // DC1
    metadata.updateNormalToken(new StringToken("A"), InetAddress.getByName("127.0.0.1"));
    metadata.updateNormalToken(new StringToken("C"), InetAddress.getByName("127.0.0.2"));

    // DC2
    metadata.updateNormalToken(new StringToken("B"), InetAddress.getByName("127.0.0.4"));
    metadata.updateNormalToken(new StringToken("D"), InetAddress.getByName("127.0.0.5"));

    Map<String, String> replicationMap = new HashMap<>();
    replicationMap.put(ReplicationParams.CLASS, NetworkTopologyStrategy.class.getName());

    replicationMap.put("DC1", "1");
    replicationMap.put("DC2", "1");

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

    Optional<InetAddress> naturalEndpoint = ViewUtils.getViewNaturalEndpoint("Keyspace1",
                                                                   new StringToken("AB"),
                                                                   new StringToken("BB"));

    Assert.assertFalse(naturalEndpoint.isPresent());
}
 
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:31,代码来源:ViewUtilsTest.java


示例5: KSMetaData

import org.apache.cassandra.locator.NetworkTopologyStrategy; //导入依赖的package包/类
public KSMetaData(String name, Class<? extends AbstractReplicationStrategy> strategyClass, Map<String, String> strategyOptions, boolean durable_writes, CFMetaData... cfDefs)
{
    this.name = name;
    this.strategyClass = strategyClass == null ? NetworkTopologyStrategy.class : strategyClass;
    this.strategyOptions = strategyOptions;
    Map<String, CFMetaData> cfmap = new HashMap<String, CFMetaData>();
    for (CFMetaData cfm : cfDefs)
        cfmap.put(cfm.cfName, cfm);
    this.cfMetaData = Collections.unmodifiableMap(cfmap);
    this.durable_writes = durable_writes;
}
 
开发者ID:devdattakulkarni,项目名称:Cassandra-KVPM,代码行数:12,代码来源:KSMetaData.java


示例6: inflate

import org.apache.cassandra.locator.NetworkTopologyStrategy; //导入依赖的package包/类
public static KSMetaData inflate(org.apache.cassandra.db.migration.avro.KsDef ks)
{
    Class<? extends AbstractReplicationStrategy> repStratClass;
    try
    {
        String strategyClassName = convertOldStrategyName(ks.strategy_class.toString());
        repStratClass = (Class<AbstractReplicationStrategy>)Class.forName(strategyClassName);
    }
    catch (Exception ex)
    {
        throw new RuntimeException("Could not create ReplicationStrategy of type " + ks.strategy_class, ex);
    }

    Map<String, String> strategyOptions = new HashMap<String, String>();
    if (ks.strategy_options != null)
    {
        for (Map.Entry<CharSequence, CharSequence> e : ks.strategy_options.entrySet())
        {
            String name = e.getKey().toString();
            // Silently discard a replication_factor option to NTS.
            // The history is, people were creating CFs with the default settings (which in the CLI is NTS) and then
            // giving it a replication_factor option, which is nonsensical.  Initially our strategy was to silently
            // ignore this option, but that turned out to confuse people more.  So in 0.8.2 we switched to throwing
            // an exception in the NTS constructor, which would be turned into an InvalidRequestException for the
            // client.  But, it also prevented startup for anyone upgrading without first cleaning that option out.
            if (repStratClass == NetworkTopologyStrategy.class && name.trim().toLowerCase().equals("replication_factor"))
                continue;
            strategyOptions.put(name, e.getValue().toString());
        }
    }
    maybeAddReplicationFactor(strategyOptions, ks.strategy_class.toString(), ks.replication_factor);

    int cfsz = ks.cf_defs.size();
    CFMetaData[] cfMetaData = new CFMetaData[cfsz];
    Iterator<org.apache.cassandra.db.migration.avro.CfDef> cfiter = ks.cf_defs.iterator();
    for (int i = 0; i < cfsz; i++)
        cfMetaData[i] = CFMetaData.inflate(cfiter.next());

    return new KSMetaData(ks.name.toString(), repStratClass, strategyOptions, ks.durable_writes, cfMetaData);
}
 
开发者ID:devdattakulkarni,项目名称:Cassandra-KVPM,代码行数:41,代码来源:KSMetaData.java


示例7: ksFromAvro

import org.apache.cassandra.locator.NetworkTopologyStrategy; //导入依赖的package包/类
@Deprecated
public static KSMetaData ksFromAvro(org.apache.cassandra.db.migration.avro.KsDef ks)
{
    Class<? extends AbstractReplicationStrategy> repStratClass;
    try
    {
        String strategyClassName = KSMetaData.convertOldStrategyName(ks.strategy_class.toString());
        repStratClass = (Class<AbstractReplicationStrategy>)Class.forName(strategyClassName);
    }
    catch (Exception ex)
    {
        throw new RuntimeException("Could not create ReplicationStrategy of type " + ks.strategy_class, ex);
    }

    Map<String, String> strategyOptions = new HashMap<String, String>();
    if (ks.strategy_options != null)
    {
        for (Map.Entry<CharSequence, CharSequence> e : ks.strategy_options.entrySet())
        {
            String name = e.getKey().toString();
            // Silently discard a replication_factor option to NTS.
            // The history is, people were creating CFs with the default settings (which in the CLI is NTS) and then
            // giving it a replication_factor option, which is nonsensical.  Initially our strategy was to silently
            // ignore this option, but that turned out to confuse people more.  So in 0.8.2 we switched to throwing
            // an exception in the NTS constructor, which would be turned into an InvalidRequestException for the
            // client.  But, it also prevented startup for anyone upgrading without first cleaning that option out.
            if (repStratClass == NetworkTopologyStrategy.class && name.trim().toLowerCase().equals("replication_factor"))
                continue;
            strategyOptions.put(name, e.getValue().toString());
        }
    }
    maybeAddReplicationFactor(strategyOptions, ks.strategy_class.toString(), ks.replication_factor);

    int cfsz = ks.cf_defs.size();
    List<CFMetaData> cfMetaData = new ArrayList<CFMetaData>(cfsz);

    for (CfDef cf_def : ks.cf_defs)
    {
        double keysCached = cf_def.key_cache_size == null ? -1 : cf_def.key_cache_size;
        double rowsCached = cf_def.row_cache_size == null ? -1 : cf_def.row_cache_size;

        if (keysCached > 0 && rowsCached > 0)
            cf_def.caching = Caching.ALL.name();
        else if (keysCached <= 0 && rowsCached <= 0)
            cf_def.caching = Caching.NONE.name();
        else if (keysCached > 0 && rowsCached <= 0)
            cf_def.caching = Caching.KEYS_ONLY.name();
        else
            cf_def.caching = Caching.ROWS_ONLY.name();

        cfMetaData.add(cfFromAvro(cf_def));
    }

    return new KSMetaData(ks.name.toString(), repStratClass, strategyOptions, ks.durable_writes, cfMetaData);
}
 
开发者ID:dprguiuc,项目名称:Cassandra-Wasef,代码行数:56,代码来源:Avro.java


示例8: determineBlockFor

import org.apache.cassandra.locator.NetworkTopologyStrategy; //导入依赖的package包/类
@Override
protected int determineBlockFor(String table)
{
    NetworkTopologyStrategy strategy = (NetworkTopologyStrategy) Table.open(table).getReplicationStrategy();
    return (strategy.getReplicationFactor(localdc) / 2) + 1;
}
 
开发者ID:devdattakulkarni,项目名称:Cassandra-KVPM,代码行数:7,代码来源:DatacenterWriteResponseHandler.java


示例9: determineBlockFor

import org.apache.cassandra.locator.NetworkTopologyStrategy; //导入依赖的package包/类
@Override
   public int determineBlockFor(ConsistencyLevel consistency_level, String table)
{
       NetworkTopologyStrategy stategy = (NetworkTopologyStrategy) Table.open(table).getReplicationStrategy();
	return (stategy.getReplicationFactor(localdc) / 2) + 1;
}
 
开发者ID:devdattakulkarni,项目名称:Cassandra-KVPM,代码行数:7,代码来源:DatacenterReadCallback.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java RpcKindProto类代码示例发布时间:2022-05-22
下一篇:
Java FileCleaningTracker类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap