本文整理汇总了Java中org.apache.cassandra.net.MessageOut类的典型用法代码示例。如果您正苦于以下问题:Java MessageOut类的具体用法?Java MessageOut怎么用?Java MessageOut使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MessageOut类属于org.apache.cassandra.net包,在下文中一共展示了MessageOut类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: finishParentSession
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public synchronized void finishParentSession(UUID parentSession, Set<InetAddress> neighbors, boolean doAntiCompaction) throws InterruptedException, ExecutionException, IOException
{
try
{
if (doAntiCompaction)
{
for (InetAddress neighbor : neighbors)
{
AnticompactionRequest acr = new AnticompactionRequest(parentSession);
MessageOut<RepairMessage> req = acr.createMessage();
MessagingService.instance().sendOneWay(req, neighbor);
}
List<Future<?>> futures = doAntiCompaction(parentSession);
FBUtilities.waitOnFutures(futures);
}
}
finally
{
parentRepairSessions.remove(parentSession);
}
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:22,代码来源:ActiveRepairService.java
示例2: sendReplicationNotification
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
/**
* Sends a notification to a node indicating we have finished replicating data.
*
* @param remote node to send notification to
*/
private void sendReplicationNotification(InetAddress remote)
{
// notify the remote token
MessageOut msg = new MessageOut(MessagingService.Verb.REPLICATION_FINISHED);
IFailureDetector failureDetector = FailureDetector.instance;
if (logger.isDebugEnabled())
logger.debug("Notifying {} of replication completion\n", remote);
while (failureDetector.isAlive(remote))
{
AsyncOneResponse iar = MessagingService.instance().sendRR(msg, remote);
try
{
iar.get(DatabaseDescriptor.getRpcTimeout(), TimeUnit.MILLISECONDS);
return; // done
}
catch(TimeoutException e)
{
// try again
}
}
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:27,代码来源:StorageService.java
示例3: makeRequests
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void makeRequests(ReadCommand readCommand, Iterable<InetAddress> endpoints)
{
MessageOut<ReadCommand> message = null;
boolean hasLocalEndpoint = false;
for (InetAddress endpoint : endpoints)
{
if (isLocalRequest(endpoint))
{
hasLocalEndpoint = true;
continue;
}
logger.trace("reading {} from {}", readCommand.isDigestQuery() ? "digest" : "data", endpoint);
if (message == null)
message = readCommand.createMessage();
MessagingService.instance().sendRR(message, endpoint, handler);
}
// We delay the local (potentially blocking) read till the end to avoid stalling remote requests.
if (hasLocalEndpoint)
{
logger.trace("reading {} locally", readCommand.isDigestQuery() ? "digest" : "data");
StageManager.getStage(Stage.READ).maybeExecuteImmediately(new LocalReadRunnable(command, handler));
}
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:27,代码来源:AbstractReadExecutor.java
示例4: sendGossip
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
/**
* Returns true if the chosen target was also a seed. False otherwise
*
* @param message
* @param epSet a set of endpoint from which a random endpoint is chosen.
* @return true if the chosen endpoint is also a seed.
*/
private boolean sendGossip(MessageOut<GossipDigestSyn> message, Set<InetAddress> epSet)
{
List<InetAddress> liveEndpoints = ImmutableList.copyOf(epSet);
int size = liveEndpoints.size();
if (size < 1)
return false;
/* Generate a random number from 0 -> size */
int index = (size == 1) ? 0 : random.nextInt(size);
InetAddress to = liveEndpoints.get(index);
if (logger.isTraceEnabled())
logger.trace("Sending a GossipDigestSyn to {} ...", to);
MessagingService.instance().sendOneWay(message, to);
return seeds.contains(to);
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:23,代码来源:Gossiper.java
示例5: doGossipToSeed
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void doGossipToSeed(MessageOut<GossipDigestSyn> prod)
{
int size = seeds.size();
if (size > 0)
{
if (size == 1 && seeds.contains(FBUtilities.getBroadcastAddress()))
{
return;
}
if (liveEndpoints.size() == 0)
{
sendGossip(prod, seeds);
}
else
{
/* Gossip with the seed with some probability. */
double probability = seeds.size() / (double) (liveEndpoints.size() + unreachableEndpoints.size());
double randDbl = random.nextDouble();
if (randDbl <= probability)
sendGossip(prod, seeds);
}
}
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:25,代码来源:Gossiper.java
示例6: doVerb
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public void doVerb(MessageIn<ReadCommand> message, int id)
{
if (StorageService.instance.isBootstrapMode())
{
throw new RuntimeException("Cannot service reads while bootstrapping!");
}
ReadCommand command = message.payload;
Keyspace keyspace = Keyspace.open(command.ksName);
Row row;
try
{
row = command.getRow(keyspace);
}
catch (TombstoneOverwhelmingException e)
{
// error already logged. Drop the request
return;
}
MessageOut<ReadResponse> reply = new MessageOut<ReadResponse>(MessagingService.Verb.REQUEST_RESPONSE,
getResponse(command, row),
ReadResponse.serializer);
Tracing.trace("Enqueuing response to {}", message.from);
MessagingService.instance().sendReply(reply, id, message.from);
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:27,代码来源:ReadVerbHandler.java
示例7: sendReplicationNotification
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
/**
* Sends a notification to a node indicating we have finished replicating data.
*
* @param remote node to send notification to
*/
private void sendReplicationNotification(InetAddress remote)
{
// notify the remote token
MessageOut msg = new MessageOut(MessagingService.Verb.REPLICATION_FINISHED);
IFailureDetector failureDetector = FailureDetector.instance;
if (logger.isDebugEnabled())
logger.debug("Notifying " + remote.toString() + " of replication completion\n");
while (failureDetector.isAlive(remote))
{
AsyncOneResponse iar = MessagingService.instance().sendRR(msg, remote);
try
{
iar.get(DatabaseDescriptor.getRpcTimeout(), TimeUnit.MILLISECONDS);
return; // done
}
catch(TimeoutException e)
{
// try again
}
}
}
开发者ID:pgaref,项目名称:ACaZoo,代码行数:27,代码来源:StorageService.java
示例8: makeDigestRequests
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
protected void makeDigestRequests(Iterable<InetAddress> endpoints)
{
ReadCommand digestCommand = command.copy();
digestCommand.setDigestQuery(true);
MessageOut<?> message = digestCommand.createMessage();
for (InetAddress endpoint : endpoints)
{
if (isLocalRequest(endpoint))
{
logger.trace("reading digest locally");
StageManager.getStage(Stage.READ).execute(new LocalReadRunnable(digestCommand, handler));
}
else
{
logger.trace("reading digest from {}", endpoint);
MessagingService.instance().sendRR(message, endpoint, handler);
}
}
}
开发者ID:pgaref,项目名称:ACaZoo,代码行数:20,代码来源:AbstractReadExecutor.java
示例9: makeRequests
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void makeRequests(ReadCommand readCommand, Iterable<InetAddress> endpoints)
{
boolean hasLocalEndpoint = false;
for (InetAddress endpoint : endpoints)
{
if (StorageProxy.canDoLocalRequest(endpoint))
{
hasLocalEndpoint = true;
continue;
}
if (traceState != null)
traceState.trace("reading {} from {}", readCommand.isDigestQuery() ? "digest" : "data", endpoint);
logger.trace("reading {} from {}", readCommand.isDigestQuery() ? "digest" : "data", endpoint);
MessageOut<ReadCommand> message = readCommand.createMessage(MessagingService.instance().getVersion(endpoint));
MessagingService.instance().sendRRWithFailure(message, endpoint, handler);
}
// We delay the local (potentially blocking) read till the end to avoid stalling remote requests.
if (hasLocalEndpoint)
{
logger.trace("reading {} locally", readCommand.isDigestQuery() ? "digest" : "data");
StageManager.getStage(Stage.READ).maybeExecuteImmediately(new LocalReadRunnable(command, handler));
}
}
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:27,代码来源:AbstractReadExecutor.java
示例10: maybeGossipToSeed
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void maybeGossipToSeed(MessageOut<GossipDigestSyn> prod)
{
int size = seeds.size();
if (size > 0)
{
if (size == 1 && seeds.contains(FBUtilities.getBroadcastAddress()))
{
return;
}
if (liveEndpoints.size() == 0)
{
sendGossip(prod, seeds);
}
else
{
/* Gossip with the seed with some probability. */
double probability = seeds.size() / (double) (liveEndpoints.size() + unreachableEndpoints.size());
double randDbl = random.nextDouble();
if (randDbl <= probability)
sendGossip(prod, seeds);
}
}
}
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:25,代码来源:Gossiper.java
示例11: stop
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public void stop()
{
EndpointState mystate = endpointStateMap.get(FBUtilities.getBroadcastAddress());
if (mystate != null && !isSilentShutdownState(mystate))
{
logger.info("Announcing shutdown");
addLocalApplicationState(ApplicationState.STATUS, StorageService.instance.valueFactory.shutdown(true));
MessageOut message = new MessageOut(MessagingService.Verb.GOSSIP_SHUTDOWN);
for (InetAddress ep : liveEndpoints)
MessagingService.instance().sendOneWay(message, ep);
Uninterruptibles.sleepUninterruptibly(Integer.getInteger("cassandra.shutdown_announce_in_ms", 2000), TimeUnit.MILLISECONDS);
}
else
logger.warn("No local state or state is in silent shutdown, not announcing shutdown");
if (scheduledGossipTask != null)
scheduledGossipTask.cancel(false);
}
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:18,代码来源:Gossiper.java
示例12: enqueue
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public synchronized void enqueue(MessageOut<?> message, int id) throws IOException {
long timestamp = System.currentTimeMillis();
out.writeInt(MessagingService.PROTOCOL_MAGIC);
if (targetVersion < MessagingService.VERSION_20)
out.writeUTF(String.valueOf(id));
else
out.writeInt(id);
out.writeInt((int) timestamp);
message.serialize(out, targetVersion);
out.flush();
}
开发者ID:tolbertam,项目名称:sstable-tools,代码行数:13,代码来源:StorageConnection.java
示例13: doVerb
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public void doVerb(MessageIn<SnapshotCommand> message, int id)
{
SnapshotCommand command = message.payload;
if (command.clear_snapshot)
{
Keyspace.clearSnapshot(command.snapshot_name, command.keyspace);
}
else
Keyspace.open(command.keyspace).getColumnFamilyStore(command.column_family).snapshot(command.snapshot_name);
logger.debug("Enqueuing response to snapshot request {} to {}", command.snapshot_name, message.from);
MessagingService.instance().sendReply(new MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from);
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:13,代码来源:SnapshotVerbHandler.java
示例14: pushSchemaMutation
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private static void pushSchemaMutation(InetAddress endpoint, Collection<Mutation> schema)
{
MessageOut<Collection<Mutation>> msg = new MessageOut<>(MessagingService.Verb.DEFINITIONS_UPDATE,
schema,
MigrationsSerializer.instance);
MessagingService.instance().sendOneWay(msg, endpoint);
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:8,代码来源:MigrationManager.java
示例15: processOutboundMessage
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
public static MessageOut processOutboundMessage(MessageOut message, int id, InetAddress to)
{
if (messageSinks.isEmpty())
return message;
for (IMessageSink ms : messageSinks)
{
message = ms.handleMessage(message, id, to);
if (message == null)
return null;
}
return message;
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:14,代码来源:SinkManager.java
示例16: doGossipToLiveMember
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private boolean doGossipToLiveMember(MessageOut<GossipDigestSyn> message)
{
int size = liveEndpoints.size();
if (size == 0)
return false;
return sendGossip(message, liveEndpoints);
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:8,代码来源:Gossiper.java
示例17: doGossipToUnreachableMember
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void doGossipToUnreachableMember(MessageOut<GossipDigestSyn> message)
{
double liveEndpointCount = liveEndpoints.size();
double unreachableEndpointCount = unreachableEndpoints.size();
if (unreachableEndpointCount > 0)
{
/* based on some probability */
double prob = unreachableEndpointCount / (liveEndpointCount + 1);
double randDbl = random.nextDouble();
if (randDbl < prob)
sendGossip(message, unreachableEndpoints.keySet());
}
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:14,代码来源:Gossiper.java
示例18: markAlive
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
private void markAlive(final InetAddress addr, final EndpointState localState)
{
if (MessagingService.instance().getVersion(addr) < MessagingService.VERSION_20)
{
realMarkAlive(addr, localState);
return;
}
localState.markDead();
MessageOut<EchoMessage> echoMessage = new MessageOut<EchoMessage>(MessagingService.Verb.ECHO, new EchoMessage(), EchoMessage.serializer);
logger.trace("Sending a EchoMessage to {}", addr);
IAsyncCallback echoHandler = new IAsyncCallback()
{
public boolean isLatencyForSnitch()
{
return false;
}
public void response(MessageIn msg)
{
realMarkAlive(addr, localState);
}
};
MessagingService.instance().sendRR(echoMessage, addr, echoHandler);
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:28,代码来源:Gossiper.java
示例19: doShadowRound
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
/**
* Do a single 'shadow' round of gossip, where we do not modify any state
* Only used when replacing a node, to get and assume its states
*/
public void doShadowRound()
{
buildSeedsList();
// send a completely empty syn
List<GossipDigest> gDigests = new ArrayList<GossipDigest>();
GossipDigestSyn digestSynMessage = new GossipDigestSyn(DatabaseDescriptor.getClusterName(),
DatabaseDescriptor.getPartitionerName(),
gDigests);
MessageOut<GossipDigestSyn> message = new MessageOut<GossipDigestSyn>(MessagingService.Verb.GOSSIP_DIGEST_SYN,
digestSynMessage,
GossipDigestSyn.serializer);
inShadowRound = true;
for (InetAddress seed : seeds)
MessagingService.instance().sendOneWay(message, seed);
int slept = 0;
try
{
while (true)
{
Thread.sleep(1000);
if (!inShadowRound)
break;
slept += 1000;
if (slept > StorageService.RING_DELAY)
throw new RuntimeException("Unable to gossip with any seeds");
}
}
catch (InterruptedException wtf)
{
throw new RuntimeException(wtf);
}
}
开发者ID:vcostet,项目名称:cassandra-kmean,代码行数:37,代码来源:Gossiper.java
示例20: testRemoveHostId
import org.apache.cassandra.net.MessageOut; //导入依赖的package包/类
@Test
public void testRemoveHostId() throws InterruptedException
{
// start removal in background and send replication confirmations
final AtomicBoolean success = new AtomicBoolean(false);
Thread remover = new Thread()
{
public void run()
{
try
{
ss.removeNode(removalId.toString());
}
catch (Exception e)
{
System.err.println(e);
e.printStackTrace();
return;
}
success.set(true);
}
};
remover.start();
Thread.sleep(1000); // make sure removal is waiting for confirmation
assertTrue(tmd.isLeaving(removalhost));
assertEquals(1, tmd.getLeavingEndpoints().size());
for (InetAddress host : hosts)
{
MessageOut msg = new MessageOut(host, MessagingService.Verb.REPLICATION_FINISHED, null, null, Collections.<String, byte[]>emptyMap());
MessagingService.instance().sendRR(msg, FBUtilities.getBroadcastAddress());
}
remover.join();
assertTrue(success.get());
assertTrue(tmd.getLeavingEndpoints().isEmpty());
}
开发者ID:scylladb,项目名称:scylla-tools-java,代码行数:41,代码来源:RemoveTest.java
注:本文中的org.apache.cassandra.net.MessageOut类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论