Provision for immediate caching of an image
Change-Id: Ieb793afaa6bf4b7c21729408654ec316ba45d816
This commit is contained in:
parent
aeb0fbf6f4
commit
c7bce04f5b
147
specs/zed/approved/glance/instant_caching.rst
Normal file
147
specs/zed/approved/glance/instant_caching.rst
Normal file
@ -0,0 +1,147 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
===========================================
|
||||
Provision for immediate caching of an image
|
||||
===========================================
|
||||
|
||||
Include the URL of your launchpad blueprint:
|
||||
|
||||
https://blueprints.launchpad.net/glance/+spec/instant_caching
|
||||
|
||||
Provision for immediate caching of a given image on a particular glance node.
|
||||
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
In Yoga we have added support for caching related operations under V2 API, but
|
||||
still we need to depend on existing periodic job to cache the actual image.
|
||||
This means user/deployer/admin needs to wait until next periodic job to run
|
||||
for caching of an actual image. Even though default time for periodic job is
|
||||
300 seconds (5 minutes) it may vary deployment wise and the user has to wait
|
||||
until the actual image is cached.
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
We are proposing to remove existing periodic job from glance-api and modify
|
||||
existing ``PUT /v2/cache/{image_id}`` API which will queue an image for caching
|
||||
and start caching it immediately. If any existing instant caching operation is
|
||||
in progress then the latest image will be added to the queue so that it will
|
||||
be picked up for caching as soon as previous operation completes. User can use
|
||||
``GET /v2/cache`` API call to see the size of the queue.
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
Instead of modifying existing API, we can add a new POST API which will start
|
||||
immediate caching of specified image. We can use existing policy `cache_image`
|
||||
so that user with appropriate permissions can perform this operation. To make
|
||||
the policy compatible with secure RBAC we need to pass required parameters
|
||||
like ImageTarget while enforcing the policy. It is recommended to keep
|
||||
`cache_image` operation limited to admin use only.
|
||||
|
||||
Another alternative solution could be, instead of removing the old periodic
|
||||
job, the new API should trigger the periodic job instantly to cache all the
|
||||
images rather than just caching a specified image at a time. This
|
||||
solution need to be thread safe as there might be a chance of existing
|
||||
periodic job is already running or new periodic job will start running while
|
||||
we trigger the same via API.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Notifications impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
Caching is and will remain local to each glance node and as this command
|
||||
will be executed remotely, operator needs to know the direct URL of
|
||||
each glance node which are behind the load balancer. Operator needs to
|
||||
provide this direct URL to glanceclient so that client should hit
|
||||
particular node to trigger immediate caching on that node.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
dansmith or abhishekk
|
||||
|
||||
Other contributors:
|
||||
None
|
||||
|
||||
Reviewers:
|
||||
cyril-roelandt/rosmaita/jokke/pdeore/mrjoshi
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Modify existing API (PUT /v2/cache/{image_id})
|
||||
* Remove the 'cache_prefetcher_interval' config option and related tests.
|
||||
* Modify documentation, update API reference
|
||||
* Tempest coverage for Caching operations
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
* All new cache API should be tested using tempest tests
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
* The API documentation will need to be updated
|
||||
* Need to update Cache documentation as well with new information
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
* https://docs.openstack.org/glance/victoria/admin/cache.html
|
Loading…
Reference in New Issue
Block a user