Hi Isuru, Is this a distributed cache model?
On Tue, Dec 31, 2013 at 7:21 PM, Isuru Haththotuwa <[email protected]> wrote: > > Hi Devs, > > To persist Subscription information given by a user at the time of cartridge > a subscription, we can use a Registry. Subscription information are not > dynamic, they do not regularly change. However, these data might be required > at runtime for various operations. By using a registry, we can store the > subscription details as a Resource, and access it when required. > > However, one pitfall this approach can have is accessing registry being > relatively expensive. So, if we access the Registry frequently in runtime, it > would lead to a performance degradation. Therefore, I thought to use an > in-memory cache so that we don't have to access the registry each and every > time we need to access some information. The idea is to populate the cache > when required, and in runtime avoid accessing the registry, and use the > cached data. > > I have included a very high level diagram of the proposed solution. Please > share your feedback. > > > The scenarios would be: > > 1. We populate the cache when required (startup time / tenant loading time), > with any existing Subscription details > 2. Subsequent retrievals are catered to with the cached information > 3 & 4. Any changes (very infrequent) or new Subscriptions would be updated in > the cache first, and then the Registry. Ideally, updating the registry should > be a non-blocking call. > > -- > Thanks and Regards, > > Isuru H. > Software Engineer, WSO2 Inc. > +94 716 358 048 > >
