本文整理汇总了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;未经允许,请勿转载。 |
请发表评论