Message-id management revisited
Mark Taylor
m.b.taylor at bristol.ac.uk
Thu Jun 5 02:38:33 PDT 2008
On Thu, 5 Jun 2008, Alasdair Allan wrote:
>>>> 4. hub provides hub-msg-id -> sender-msg-id translation method
>>>> - OK but slightly messy
>
> Ok, such is life. But... Do you mean the above, option 4?
>
> Up till now this hasn't been actually been functionality the Hub already had
> to implement. It merely had to generate a hub-msg-id that was resolvable (in
> some way) to the sender-msg-id. There was no requirement for the Hub to have
> to serialise this mapping.
>
> For instance I did this,
>
> my $hub_msg_id = $public_id . "_" . "$msg_id";
> $hub_msg_id =~ s/msg-id://;
> $hub_msg_id =~ s/client-id:/msg-id:/;
>
> where the public id is the $public_id of the originating app and the $msg_id
> was the sender-msg-id. Turning a $public_id = "client-d:dhgTjfv8jTYH7fg56kJL"
> and $msg_id = "msg-id:hhjYU6ttgR45dgHHcCvG" to this $hub_msg_id =
> "msg-id:dhgTjfv8jTYH7fg56kJL-hhjYU6ttgR45dgHHcCvG".
>
> So when it got a reply( ) all I did was this,
>
> my ( $public_id, $msg_id) = split "_", $hub_msg_id;
> $public_id =~ s/msg-id:/client-id:/;
> $msg_id = "msg-id:" . $msg_id;
>
> no state was necessary. Suddenly we're adding huge amounts of overhead to the
> Hub. It has to keep track of which message arrived from which sender, where
> it got dispatched to, it has to figure out when these expire (so it can clean
> out its backend cache of such things). Suddenly, there is all this overhead.
> I see absolutely no advantages of adding all this extra book work.
no - this requires no new state and no processing that you're not already
having to do. The implementation of the new method I'm suggesting
would, I think, be:
sub getSenderMsgId {
my $self = shift;
my $private_key = shift;
my $hub_msg_id = shift;
my ( $public_id, $msg_id ) = split "_", $hub_msg_id;
$msg_id = "msg-id:" . $msg_id;
return $msg_id;
}
(but note: if I understand correctly, your implementation would *seem*
to require for correct operation that the msg-id generated by the
sender starts with the string "msg-id:" - this is not good.
I think it's also vulnerable to sender-msg-ids which contain underscores).
--
Mark Taylor Astronomical Programmer Physics, Bristol University, UK
m.b.taylor at bris.ac.uk +44-117-928-8776 http://www.star.bris.ac.uk/~mbt/
More information about the apps-samp
mailing list