![]() ![]() Runs as a RpcService configured by Trove/etc/trove/ which defines as the manager - basically this is the entry point for requests arriving through the queue.Entry point - Trove/bin/trove-guestagent.GuestAgent runs on every DB instance, and a dedicated MQ topic is used (identified as the instance's id).Similar to TaskManager in the sense of running as a service that listens on a RabbitMQ topic.The Guest Agent listens for RPC messages through the message bus and performs the requested operation. ![]() The guestagent is a service that runs within the guest instance, responsible for managing and performing operations on the Database itself. Actual handling is usually done in the models.py module.It loads an object from the relevant class with the context and instance_id The Manager then redirect the handling to an object from the models.py module.Trove/openstack/common/rpc/dispatcher.py- RpcDispatcher.dispatch() invokes the proper method in the Manager by some equivalent to reflection.As described above, requests for this component are pushed to MQ from another component using the TaskManager's api module using _cast() or _call() (sync/a-sync) and putting the method's name as a parameter.Entry point - Trove/bin/trove-taskmanager.A service that listens on a RabbitMQ topic.The trove-taskmanager service does the heavy lifting as far as provisioning instances, managing the lifecycle of instances, and performing operations on the Database instance. At this point, an api module of another component (TaskManager, GuestAgent, etc.) is used to send the request onwards through RabbitMQ.Controllers usually redirect implementation to a class in the models.py module.Implementation of the Controllers are under the relevant module (versions/instance/flavor/limits), in the service.py module.The API class (a wsgi Router) wires the REST paths to the appropriate Controllers.Defines the app_factory for the trove app as :app_factory.Defines the pipeline of filters token auth, rate limit, etc.Uses a WSGI launcher configured by Trove/etc/trove/api-paste.ini.The trove-api service provides a RESTful API that supports JSON and XML to provision and manage Trove instances. More detailed Architecture info can be found here trove-api There will be no restrictions on how Nova is configured, since Trove interacts with other OpenStack components purely through the API. Trove is designed to support a single-tenant database within a Nova instance. Initially, the service will focus on providing resource isolation at high performance while automating complex administrative tasks including deployment, configuration, patching, backups, restores, and monitoring. Cloud users and database administrators can provision and manage multiple database instances as needed. It's designed to run entirely on OpenStack, with the goal of allowing users to quickly and easily utilize the features of a relational or non-relational database without the burden of handling complex administrative tasks. Trove is Database as a Service for OpenStack. The OpenStack Open Source Database as a Service Mission: To provide scalable and reliable Cloud Database as a Service provisioning functionality for both relational and non-relational database engines, and to continue to improve its fully-featured and extensible open source framework. ![]()
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |