AI Research and Product Accelerator

Distributed Cloud computing

Topics around how to build scalable distributed systems.

Caching

In order to serve data fast to the client, one can't keep going to databases or ask other systems constantly, the round trip delays will be too high. So there are lot of different caching systems and mechanisms(in memory) has to be adopted.

Questions to ask are.

1. What are the set of data which is most frequently accessed?.

2. How often this data changes?.How do we keep Cached data up-to-date? Ho frequently?. What is the cost for that?.

3. How much do I care about accuracy of some of this data..Every data in the system can't be different.

Good news is, this is solved problem you need to adapt these solutions to your particular problem.

Systems need to cache data at different layers...Ex: At Data Access Layer, data has to be cached to avoid queries to database engine as much as possible. Or Web Apps, cache all static data in Akamai type of systems to serve web page request faster. Or at the Edge of the backend, certain type of data can be cached. Or Each Microservice might have its own caching mechanism.

No matter what the specific user cases are , there are open source systems available.

Start with something like Gemfire.

https://pivotal.io/pivotal-gemfire

https://spring.io/guides/gs/caching-gemfire/

If that is Too heavy, Look at EHCache

http://www.ehcache.org/

 

BlackPepper Labs