On Fri, 2007-07-27 at 16:43 -0400, Alan Conway wrote: > Gordon, the broker::queue class is initialized with a "settings" > FieldTable containing various queue attributes that need to be > persisted. > > For clustering I also need to transmit this kind of wiring info, and it > seems like AMQP queue.declare frames are a neat ready-encoded way to do > it. Is there any reason we couldn't replace the queue settings field > table with a queue.declare frame? Same applies to broker::Exchange, and > bindings can be represented by queue.bind frames. That would give us one > single encoded format of wiring data for persistence, clustering and > regular AMQP connections, reduce the amount of shuffling between > equivalent but slightly different data structures. It would also give us > one point of optimization for when we finally sort out qpid's excessive > heap use due to the proliferation of std::string in frames. > > Cheers, > Alan. >
Answer to my own question: yes there is a good reason not to do this, it would tie our broker-internal q/ex/bind representation directly to a protocol version! So change of tack: I'll use your nifty MessageStore API for members joining a cluster - so a wiring brain dump from the cluster is just like reading wiring from disk. I like it :) Cheers, Alan.
