[EISA] Proposal for handling control messages between DAC and EINode - yes.

Sutherland, Hunt A (GE, Research) sutherland at crd.ge.com
Thu Dec 11 12:07:14 CST 2008


James,

I like your proposal - agreed.  Some comments for clarification.

-----Original Message-----
>> From: eisa-bounces at list.isis.vanderbilt.edu
[mailto:eisa-bounces at list.isis.vanderbilt.edu] On Behalf Of James Hill
>> Sent: Thursday, December 11, 2008 12:51 PM
>> To: eisa at list.isis.vanderbilt.edu
>> Subject: [EISA] Proposal for handling control messages between DAC
and EINode
>> 
>> Hey Folks,
>> 
>> I'm currently implementing the code in the EINode for handling
control messages, and I would like to propose a change >> to the control
structure sent between the DAC and EINode. Currently, we are sending the
UUID of the target probe in
>> the message instead of the probes human readable name, which should
not have any spaces. ;-) Although this approach is >> feasible and was
decided to reduce the amount of variable length data, I think it may not
be necessary.

Agreed.

>> I think we should send the name of the target software probe to the
EINode, and let the EINode resolve the probe.

Agreed.

>>I think this is a better approach because:
>> 
>> 1. It will reduce the amount of work done by the DAC;

>> 2. Resolving the probe's UUID at EINode will be more optimal since
the EINode will have to keep track of a LOT of probes on disk, whereas
the EINode's lookup table will be in-memory (and much faster);

Agreed.

>> 3. The EINode will not have to convert the human readable name to a
UUID since it stores the probes by name. ;-) This will prevent the
*Tower of Babel* performance anti-pattern from creeping into our
specification and implementation for this feature of EISA.
>> 4. The current method would require the EINode to parse the EINode's
metadata, which is currently on halt because we need to update XSC. This
is the major showstopper. :-(

Agreed.
>> 
>> These are just a few of the reasons for proposing a new approach. The
current approach for sending a control message to a probe, such as the
heartbeat probe, would like as follows:
>> 
>> [header][options]
>> 
>> Ex. [header][hertz=10]
>> 
>> Where [header] is the standard header for the message, including the
UUID of the probe in binary format. The second block of data is *text
format* options would parse to changes its hertz. Under the proposed
approach, sending a control message to a probe, such as the heartbeat
probe, would be as follows:
>> 

I expanded the notion of the text format.  I think that the probe name
would be optional but required when the command is directed to a probe.

   {header} {[<probe>] <command,options>}

    Ex. {header}{heartbeat hertz=10}
>> 
>> This time the header does not contain the UUID of the target probe.

>> Instead, the probe name is embedded in the second data block (or the
command). If you notice, this look more like a *command* that you
execution from the command prompt, which is what I think we are shooting
for with this features of EISA. 

>> The EINode would look at the first *argument* and determine what
probe to forward the control message. In this
>> example, it would forward the commnd to the *heartbeat* probe. 
>> 
>> If the proposed approach is satisfactory to everyone, then I would
like to implement handling of control messages in this manner. Please
let me know if there are any question/comments.
>> 
>> Thanks,
>> 
>> James
>> 
>> --------------------------------------------
>> James H. Hill - Ph.D. Candidate
>> Research Assistant - ISIS / DOC Group
>> 
>> Department of EECS / Computer Science Program Vanderbilt University,
Nashville, TN
>> 
>> Email: j.hill at vanderbilt.edu
>> URL: http://www.dre.vanderbilt.edu/~hillj
>> _______________________________________________
>> EISA mailing list
>> EISA at list.isis.vanderbilt.edu
>> http://list.isis.vanderbilt.edu/mailman/listinfo/eisa
>> 
>> 
>> 


More information about the EISA mailing list