Tangosol vs IBM Command Caching

Discussions

Performance and scalability: Tangosol vs IBM Command Caching

  1. Tangosol vs IBM Command Caching (4 messages)

    Our company as established Tangosol's Coherence for object caching. We deploy to Websphere Application Server 5.1 (WAS) running in a clustered environment. I am most familiar with IBM's Command Caching API which accomodates this environment nicely.

    Does anyone have input into Tangosol's solution vs IBM's solution? In particular, I do not want the object cache replicated accross Websphere Application Instances, I want a single cache shared accross instances. Command caching supports this nicely but I don't know how Tangosol would handle this. Within WAS, the EAR is deployed within numerous application instances for horizontal scaling. Wouldn't Tangosol create a cache in each of these instances, possibly replicating between instances?

    Any input is appreciated.

    Threaded Messages (4)

  2. Tangosol is a clustered cache[ Go to top ]

    Hi Bryan,
    In particular, I do not want the object cache replicated accross Websphere Application Instances, I want a single cache shared accross instances.

    So if I understand correctly you want all your application instances to have access to a central cache, but none of the application JVMs should take on responsibility for managing that data. If my understanding is correct you will be interested in a cache client/cache server style architecture , which is a very popular topology with our customers. This type of architecture can be achieved by using the Partitioned Cache. When using this caching topology you can configure on a JVM by JVM basis whether that specific JVM will participate in the management of the cached data. This is what we call local storage (-Dtangosol.coherence.distributed.localstorage=true|false). So your application JVMs would be local storage disabled and you would run stand alone JVMs (i.e. cache servers) that would be responsible for physically managing the cached data.

    Also there is an extension to the Partitioned Cache call the Near Cache that automatically stores the MRU/MFU data in local memory.
    Within WAS, the EAR is deployed within numerous application instances for horizontal scaling. Wouldn't Tangosol create a cache in each of these instances, possibly replicating between instances?Any input is appreciated.

    First, think of a Coherence cache as a single clustered cache spanning all JVMs participating in that cluster (i.e. Coherence handles all the clustering transparently to your application). When a new JVM calls into the Coherence APIs that JVM will automatically join the Coherence cluster and join the caches you request through the APIs.

    Second, while Coherence does support fully replicated caches, most of our customers use our Partitioned Cache. In a partitioned cache topology Coherence transparently/dynamically/automatically partitions the entire cached data set across all nodes participating (except those with local storage disabled of course). This means that as you add JVMs to the Coherence cluster you are actually adding cache capacity to the entire cluster.

    Please email your dedicated resource within Tangosol or support at tangosol dot com if you have any further questions.

    Later,
    Rob Misek
    Tangosol Coherence: Unlimited Cache Capacity
  3. Thank you Rob![ Go to top ]

    Thank you for your quick reply Rob! You provided me exactly what I needed to know. Partition cache is what I am interested in.
  4. Tangosol vs IBM Command Caching[ Go to top ]

    From reading your note, it looks like Tangosol is overkill although if thats you're company standard then by all means take advantage of it.

    You'd lose the IBM Command APIs unless they have patched/plugged in to the command framework.

    As a foundation that you can build on, either Tangosol or our own WebSphere XD ObjectGrid would both be more flexible than the caching that is provided with the application server out of the box.

    But, it's probably overkill given it looks like you just want an in memory cache with no invalidation or at least no distributed invalidation. Not much info on exactly what you need to make a recommendation either way.

    If you need more than this then either Tangosol or ObjectGrid from IBM would fulfil your needs for sure.

    Billy (IBM)
  5. Thanks Billy![ Go to top ]

    Thank you Billy for the quick reply. I have been a fan of Websphere's Command Cache capabilities but Tangosol was established as a standard and is quite nice too. I was not familiar with ObjectGrid so I am looking into this as well.