@Override public void read(Message message) { ReadBuffer in = message.getContent().asReadBuffer(); String senderId = message.getSenderId(); Serializer serializer = graph.getDataSerializer(); MgmtLogType logType = serializer.readObjectNotNull(in, MgmtLogType.class); Preconditions.checkNotNull(logType); if (logType==MgmtLogType.CACHED_TYPE_EVICTION) { long evictionId = VariableLong.readPositive(in); long numEvictions = VariableLong.readPositive(in); for (int i = 0; i < numEvictions; i++) { long typeId = VariableLong.readPositive(in); schemaCache.expireSchemaElement(typeId); } Thread ack = new Thread(new SendAckOnTxClose(evictionId,senderId,graph.getOpenTransactions())); ack.setDaemon(true); ack.start(); } else if (logType == MgmtLogType.CACHED_TYPE_EVICTION_ACK) { String receiverId = serializer.readObjectNotNull(in,String.class); long evictionId = VariableLong.readPositive(in); if (receiverId.equals(graph.getConfiguration().getUniqueGraphId())) { //Acknowledgements targeted at this instance EvictionTrigger evictTrigger = evictionTriggerMap.get(evictionId); if (evictTrigger!=null) { evictTrigger.receivedAcknowledgement(senderId); } else log.error("Could not find eviction trigger for {} from {}",evictionId,senderId); } } else assert logType == MgmtLogType.CONFIG_MUTATION; }
@Override public void read(Message message) { ReadBuffer in = message.getContent().asReadBuffer(); String senderId = message.getSenderId(); Serializer serializer = graph.getDataSerializer(); MgmtLogType logType = serializer.readObjectNotNull(in, MgmtLogType.class); Preconditions.checkNotNull(logType); if (logType==MgmtLogType.CACHED_TYPE_EVICTION) { long evictionId = VariableLong.readPositive(in); long numEvictions = VariableLong.readPositive(in); for (int i = 0; i < numEvictions; i++) { long typeId = VariableLong.readPositive(in); schemaCache.expireSchemaElement(typeId); } Thread ack = new Thread(new SendAckOnTxClose(evictionId,senderId,graph.getOpenTransactions())); ack.setDaemon(true); ack.start(); } else if (logType == MgmtLogType.CACHED_TYPE_EVICTION_ACK) { String receiverId = serializer.readObjectNotNull(in,String.class); long evictionId = VariableLong.readPositive(in); if (receiverId.equals(graph.getConfiguration().getUniqueGraphId())) { //Acknowledgements targeted at this instance EvictionTrigger evictTrigger = evictionTriggerMap.get(evictionId); if (evictTrigger!=null) { evictTrigger.receivedAcknowledgement(senderId); } else log.error("Could not find eviction trigger for {} from {}",evictionId,senderId); } } else assert logType == MgmtLogType.CONFIG_MUTATION; }
@Override public void read(Message message) { ReadBuffer in = message.getContent().asReadBuffer(); String senderId = message.getSenderId(); Serializer serializer = graph.getDataSerializer(); MgmtLogType logType = serializer.readObjectNotNull(in, MgmtLogType.class); Preconditions.checkNotNull(logType); if (logType==MgmtLogType.CACHED_TYPE_EVICTION) { long evictionId = VariableLong.readPositive(in); long numEvictions = VariableLong.readPositive(in); for (int i = 0; i < numEvictions; i++) { long typeId = VariableLong.readPositive(in); schemaCache.expireSchemaElement(typeId); } Thread ack = new Thread(new SendAckOnTxClose(evictionId,senderId,graph.getOpenTransactions())); ack.setDaemon(true); ack.start(); } else if (logType == MgmtLogType.CACHED_TYPE_EVICTION_ACK) { String receiverId = serializer.readObjectNotNull(in,String.class); long evictionId = VariableLong.readPositive(in); if (receiverId.equals(graph.getConfiguration().getUniqueGraphId())) { //Acknowledgements targeted at this instance EvictionTrigger evictTrigger = evictionTriggerMap.get(evictionId); if (evictTrigger!=null) { evictTrigger.receivedAcknowledgement(senderId); } else log.error("Could not find eviction trigger for {} from {}",evictionId,senderId); } } else assert logType == MgmtLogType.CONFIG_MUTATION; }