As part of a patch to add idempotency to the xenapi driver, I've modified impl_kombu driver to implement delayed ACKs. This is so RPC messages are retried after nova-compute restarts.
https://review.openstack.org/#/c/7323/ However, this only works with impl_kombu. impl_qpid does not ACK anything, although since it's AMQP based there should be an ACK somewhere, I just don't see it in impl_qpid or the Qpid module so I must be missing something. 0MQ does not have any concept of ACKing messages, which makes sense since there is no message persistence. I'm not aware of any formal discussion on what the RPC layer semantics are, but a set of implied semantics have developed. In particular, that messages in Openstack cannot reliably be persistent at the RPC layer. My changes to impl_kombu are obviously not the path forward since they cannot be implemented in the other RPC drivers, but it's not clear what the best path forward is. Is it a custom layer on top of RPC? Is it an orchestration layer? Something else? Related, should queue persistence be disabled in impl_kombu? JE _______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : [email protected] Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp

