Project

General

Profile

Feature #48388

Tasks #36451: mgr/dashboard: Scalability testing

mgr,mgr/dashboard: implement multi-layered caching

Added by Ernesto Puerta about 2 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
dashboard/general
Target version:
% Done:

0%

Source:
Development
Tags:
performance scalability
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

In order to reduce the chances of mgr modules and, specifically, dashboard to compromise the Ceph cluster performance by an increase in the frequency of API calls (unlike other mgr Modules, Dashboard load is predominantly user-driven), a multi-layered caching approach should be put in place.

Layers:
  • Ceph-mgr API:
    • C++: this is optimal, as the cached data is shared across modules. However is less trivial to implement.
    • Python: cachetools
  • Dashboard back-end:
    • Python: cachetools
    • CherryPy Cache (it also takes care of the HTTP caching)
  • Dashboard front-end:
Pros:
  • Reduced load in ceph-mgr
  • Shorter response times
Cons:
  • Increased memory usage
  • Stale data (while TTL caches can improve this)
  • Data serializations issues
  • Leaks/ref counting issues

Also available in: Atom PDF