On Wed, Jul 20, 2011 at 01:42, Chuck Remes <[email protected]> wrote: > On Jul 19, 2011, at 11:52 PM, Brian Granger wrote: > >> On Mon, Jul 18, 2011 at 5:26 AM, Pieter Hintjens <[email protected]> wrote: >>> Hi all, >>> >>> A question to the list about release policies[1] and the 3.x development. >>> >>> Background: we are removing ZMQ_IDENTITY from the product, it's a >>> necessary step to continuing to improve the product. (Incidentally, if >>> you are using ZMQ_IDENTITY, let us know your use case). >> >> We use ZMQ_IDENTITY extensively to route to specific hosts. We also >> do this in a chained, multihop manner as well. We have a massive, >> complex architecture that uses it in multiple contexts. Here is a web >> page that documents (with nice diagrams!) our zmq socket architecture: >> >> http://ipython.org/ipython-doc/dev/development/parallel_connections.html >> >> In general anywhere you see an XREP/XREQ pair, we are using ZMQ_IDENTITY. > > Lovely stuff. I really dig those diagrams! > > Now, what I am about to say may be completely wrong. As I've followed this > issue over the last several weeks, I have always thought the problem that > Martin had with ZMQ_IDENTITY was the ability to set a *custom* identity. > Using a byte array of arbitrary length (up to 255 bytes) was holding him back > from making some design improvements. I think he wanted to replace the 255 > byte identity with a 32-bit or 64-bit number. > > So, if I am right about this so far, then we would only be losing > ZMQ_IDENTITY for zmq_setsockopt(). It would still exist for zmq_getsockopt() > because the identity would always be generated by the library. > > If this is correct so far, then your use-case would continue to function. You > could still route to specific hosts by their identity. The new complexity > would be somehow mapping these library-generated identities to the actual > endpoints. Judging by the diagrams, you aren't afraid of using dedicated > sockets for passing specific bits of information around.
Yes, as long as there is identity-based routing we don't have to set the identities ourselves, though we do currently. This helps us consolidate tracking who sent what, because clients and engines both set the identity for all their sockets to a single value per entity. This means that for a client to identify itself to the Hub, it merely has to send a message, because its identity is included in every request. Instead, we would have to send the identities of all sockets for a given client, so the Hub will have half a dozen sets of identities, all corresponding exactly to the same collection of clients. -MinRK > > Corrections welcome... > > cr > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
