Code source 7z
Code binary 7z
Platform independant Fat Jar
with all dependancies
Adobe format Presentation
| At tech gig
Test data : Sample data spread sheet, "time to respond" open office
| and as xls
| Sample uses quick cache
t g k pr og at gmail (remove spaces ... and add dot com)
Talk on using caches in our web, desktop, and server side applications. We will touch upon the need, the ways of doing it (in process and external, different implementations), code samples of without and with. How to measure certain code blocks with and without caches. Statistics before, and after caching support. Where to use. How to use, without abusing. Where not to use caches. Summary of implementations and getting started. Cache sample with implementation for resources and application data.
Distributed cache: system where we have n number of nodes that are running caches in our vlan (for example say on three boxes we have two cache servers each). Now each app server is configured to use all 6 caches.
Advantage : more cache memory. apps can share data (like shown in the webinar where one app saved a key and other reads it), if one cache server crashes the whole cache is now down.
Errata on types of cache: as mentioned there are 2 caches : local and remote (also called distributed).
In distributed we have two flavors. In a few like EH Cache and varnish, the cache servers sync up. So a key stored in one is synced up with all the others. Advantage : even if one cache fails, can get same key from other.
Disadvantage : we are limiting memory if a lot data has to be cached. In modern systems the network and the cache server generally do not fail.
The other system is like Memcache or Quick Cache, where the client, during set (store) uses a formula based on the current active list of servers and the key provided to decide on which server this Cachable object should be set.
So the key will be stored on one server by the client. Other JVMs who ask for the same key will also ask the same server first as long as the list of servers is the same.
Advantage : objects are saved in one server only and so more objects can be cached. Face book uses Memcache. Quick server is a java implementation of Memcache
NOTE : 1. There can be configurations to stop a cache from doing things like synching up.
2. can look up EH Cache documentation for more information but I was recently made aware that it has some cool features like being in process and having a config that makes older cache items to be persisted out a file when total memory used by cache is more than a set limit. Thus you can take advantage of a fast in process cache and still have an upper cap on it.
whirly can remove items and in a lot of cases that is fine.