[MDSAL-217] Cache support API to improve clustered data reads performance Created: 09/Jan/17 Updated: 31/Oct/18 Resolved: 31/Oct/18 |
|
| Status: | Resolved |
| Project: | mdsal |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 3.0.2 |
| Type: | Improvement | ||
| Reporter: | Ravit Peretz | Assignee: | Jie Han |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Issue Links: |
|
||||||||
| Description |
|
Clustered data reads may be time-consuming, therefore a requirement for a cache was raised by netvirt and genius, yet this capability can be useful across odl projects. This cache should be initially populated and maintained going forward. discussing this topic in mdsal-dev list, a suggestion to enhance the current API to support this requirement was made: https://lists.opendaylight.org/pipermail/mdsal-dev/2016-December/000881.html More info, copied from Robert's mail: list foo { list bar { container baz { leaf baz; } } All of these are valid subscriptions: The first two do not have a binding representation, but they are valid at DOM level. All except the last one are wildcards. I think the current discussion is making an implicit assumption what the relationship between the registration YIID and the one reported to the listener. With concrete YIIDs, they are YangInstanceIdentifier.equals(). It is critical the API contract of the proposed method is defined with this difference in mind. =========================================================================== Please note that this issue is different from: The difference is that this issue makes an assumption on follower locality, while the cache does not. This is an important distinction in clusters where there is no shard presence (leader/follower) on some nodes. |
| Comments |
| Comment by Michael Vorburger [ 17/Sep/18 ] |
|
JieHan2017 FYI in the genius project tpantelis and me use our DataObjectCache (and InstanceIdDataObjectCache), see sources in https://github.com/opendaylight/genius/tree/master/mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/cache - I thought this may interest you here. |
| Comment by Jie Han [ 18/Sep/18 ] |
|
Thank you very much, M. |