Thursday, May 3, 2012

Coherence Extend vs TCMP member

Coherence* Extend provides lot more operation flexibility at the cost of slight performance because the communication protocol changes from TCMP to TCP and an extra hop. Here are some of the advantages of using C*Extend:

- Client application  and coherence servers can run different coherence versions and can be upgraded independently
- Client and server configuration can be managed independently
- Data Access can be secured more efficiently
- Client application and servers can reside across subnets and WANs

Some of the disadvantages of using C*Extend:
- Extra hop that occurs through the proxy
- Extra JVM and hardware to run and manage proxies including, load balancing proxies, memory allocation for proxies, number of proxies and so on.
- Increased latency due to an extra hop and use of TCP compared to TCMP.

I would recommend to use C*Extend if:

1) client application(s) may join and/or leave the coherence cluster frequently (common reason is client application performing frequent long GCs)
2) client application(s) does not reside in the same subnet as the coherence servers
3) client application(s) are not tightly bound at an application layer to the coherence cluster.
4) client application(s) and coherence servers are managed by two different groups and may have have different upgrade schedules.
5) Requires data access security between client application(s) and coherence servers.

Search This Blog