Thanks. Are you planning to use the messaging service as a mechanism to communicate the memory usage?
On Sun, Oct 7, 2018 at 11:28 AM Rob McKinnon <[email protected]> wrote: > I am looking at Helix as a possible solution to help manage and partition > in-memory data across a cluster and I am exploring my options of obtaining > the memory allocation on each of the nodes. The idea is that I would move > data to different node depending on the memory availability. > > On Sun, Oct 7, 2018 at 11:12 AM kishore g <[email protected]> wrote: > >> is the message between spectator and participant? >> >> Unfortunately spectator don’t have a way to receive messages from others- >> controllers and participants can. >> >> Can you describe your usecase, may be I can suggest an alternate >> solution. >> >> On Sun, Oct 7, 2018 at 3:52 AM Rob McKinnon <[email protected]> >> wrote: >> >>> Kishore - I tried the following code: >>> >>> public HelixTaskResult handleMessage() throws InterruptedException { >>> Message msg = getMessage(); >>> System.out.println("working with message"); >>> System.out.println(String.format("sub message %s", >>> msg.getMsgSubType())); >>> >>> ClusterMessagingService service = >>> _notificationContext.getManager().getMessagingService(); >>> >>> Message respmsg = new Message(Message.MessageType.TASK_REPLY.name(), >>> UUID.randomUUID().toString()); >>> respmsg.setCorrelationId(msg.getCorrelationId()); >>> respmsg.setSrcInstanceType(msg.getSrcInstanceType()); >>> respmsg.setMsgState(Message.MessageState.NEW); >>> >>> String srcInstance = msg.getRecord().getSimpleField("SRC_NAME"); >>> >>> Criteria criteria = new Criteria(); >>> criteria.setInstanceName(srcInstance); >>> criteria.setRecipientInstanceType(InstanceType.SPECTATOR); >>> >>> >>> int dest = service.send(criteria, respmsg); >>> >>> >>> HelixTaskResult result = new HelixTaskResult(); >>> result.setMessage("hello"); >>> result.setSuccess(true); >>> return result; >>> } >>> >>> >>> This did not work. >>> >>> On Sat, Oct 6, 2018 at 6:49 PM kishore g <[email protected]> wrote: >>> >>>> You have source instanceID and correlation ID in the message. Send the >>>> response back using those two and set the msg type as TASK_REPLY. Will try >>>> to find an example >>>> >>>> On Sat, Oct 6, 2018 at 10:06 AM Rob McKinnon <[email protected]> >>>> wrote: >>>> >>>>> Kishore - That was helpful. I am also looking on how to send a >>>>> response message back to the caller. When the caller sends a message and >>>>> defines an AsyncCallback, how does the recipient respond so that the >>>>> AsyncCallback is invoked? >>>>> >>>>> On Sat, Oct 6, 2018 at 11:09 AM kishore g <[email protected]> wrote: >>>>> >>>>>> Here is an example from Pinot. >>>>>> >>>>>> https://github.com/linkedin/pinot/blob/7fe310f3eb20dcac0bb5e8d39a21894fdae2b5ee/pinot-server/src/main/java/com/linkedin/pinot/server/starter/helix/SegmentMessageHandlerFactory.java >>>>>> >>>>>> >>>>>> >>>>>> // Register message handler factory >>>>>> SegmentMessageHandlerFactory messageHandlerFactory = >>>>>> new SegmentMessageHandlerFactory(fetcherAndLoader, _serverInstance. >>>>>> getInstanceDataManager()); >>>>>> _helixManager.getMessagingService() >>>>>> .registerMessageHandlerFactory(Message.MessageType.USER_DEFINE_MSG.toString(), >>>>>> messageHandlerFactory); >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Sat, Oct 6, 2018 at 7:51 AM Rob McKinnon <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Is there a good example available for Cluster Messaging? The >>>>>>> tutorial demonstrated how to send a message but didn't didn't go into >>>>>>> detail about how to receive a message. Specifically, I am looking on >>>>>>> how to >>>>>>> send and receive user defined cluster messages. >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> Rob >>>>>>> >>>>>>
