[openstack-dev] proposal on internal APIs regarding node group membership management

Yun Mao yunmao at gmail.com
Thu Aug 2 18:19:18 UTC 2012


Hello stackers,

Currently nova compute nodes periodically write to the database (every
10 seconds by default) to report their liveness. We (a few folks from
IBM, AT&T and Cloudscaling) have been working on a patch to factor out
this functionality and make it a set of abstract internal APIs with a
pluggable backend implementation. Currently it's named as ServiceGroup
APIs.

With this effort, we are hopeful to see the following benefits:

 * We expect to see more backend implementations in addition to the
default database-based one, such as ZooKeeper (as described in
https://blueprints.launchpad.net/nova/+spec/zk-service-heartbeat) or
rabbitmq heartbeat based.

 * We expect the code to live in openstack-common so projects other
than Nova can take advantage of the internal APIs.

 * Lay the foundations to use lower overhead heartbeat mechanisms
which scale better.

 * Other than reporting whether a node in a service group is up or
down, the code may also be used to query for members.  Other parts of
the code could also take advantage of the new APIs. One noteable
example is the MatchMaker in the rpc library, which may even become
redundant. We have been working with Eric at Cloudscaling to see how
this fits with the matchmaker. It is likely that this code will need
to be used, at least by the peer-to-peer based RPC mechanisms, to
implement the new create_worker method.


The first patch which does the API refactoring with a database backend
is available at
https://github.com/maoy/zknova/tree/monitoring-api

We also have a preliminary implementation of the ZooKeeper backend,
which we will be working on merging once the first patch is in.

Your suggestions are very welcome. We'd like to get your feedbacks,
work on them and submit the code to Gerrit soon for formal reviews to
meet the Folsom-3 deadline.

Thanks,

Yun, Alexey, Pavel, Alex, Eric and Joe



More information about the OpenStack-dev mailing list