This week's book giveaway is in the Agile and Other Processes forum.
We're giving away four copies of DevSecOps Adventures: A Game-Changing Approach with Chocolate, LEGO, and Coaching Games and have Dana Pylayeva on-line!
See this thread for details.

Cameron Purdy

Greenhorn
+ Follow
since Sep 24, 2002
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
In last 30 days
0
Forums and Threads

Recent posts by Cameron Purdy

Originally posted by Jim Port:
I’m building a trading related system, requires high performance and high availability.
Looking at approximately 20K messages/sec. Approximately 100 node LAN.



Our Tangosol Coherence software is used as the clustering & HA backbone for several production Java-based trading systems and trading system clients. This topic came up recently on TSS:

http://www.theserverside.com/news/thread.tss?thread_id=35831

Peace,

Cameron Purdy
Tangosol Coherence: Clustered Shared Memory for Java
19 years ago
Weblogic and jboss clustering have similar goals and feature checklists, but they are two completely different implementations, so they could differ substantially in throughput, reliability, availability, scalability, performance, etc.

Also check out Coherence. It is unparalleled for its scalable performance, supporting sites with loads of over 100,000,000 pages per day.

Peace.
19 years ago
If you're clustering jboss and looking for high throughput and HA (e.g. BetFair) then check out Coherence.

Peace.
19 years ago

clustering often refers to putting a bunch of machines together to solve one big computational problem all together, while load-balancing always means using a bunch of machines to parcel out a stream of individual jobs, each handled by only one machine.


Clustering implies that multiple servers can work together, typically for scalability and/or availability purposes. That "working together" implies that they have some knowledge of each other, as opposed to a "farm" of servers that are independent and need no knowledge of each other.
A load balancer takes incoming load and distributes it across a number of servers, for example a farm or a cluster.
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com/coherence.jsp
21 years ago
Excellent points!
22 years ago
JSP
Frank: "Sharing session information between separate JVMs (be they on the same physical machine or on different machines) is essentially the same problem as sharing any data between separate JVMs."
That's true. What differs is what "qualities of service" you are interested in. For example, should updates be transactional? Should they at least be coordinated? Or can they occur asynchronously? Should the data be in sync among the servers? Or is it OK to approximate coherency?
Frank: "Common solutions include: persisting session data to a ... database"
This is the most common but unfortunately scales very poorly. For performance, it is better to keep the data close to the logic, and the logic is in the application tier, so that is where the data should be (if possible). For scalability, sending traffic from all app servers to the database provides an obvious bottleneck. Even with only one or two app servers, the load on the database can be staggering; the popular site "TheServerSide.com" just ran into this when they implemented a cluster for their site -- they ended up with so much load on the database that it died!
Frank: "All these solutions require that you ensure all data placed in the session is serializable. This is actually a requirement in the servlet specification, but many application servers are lax about enforcing it."
I would add one other issue that we've seen: If you do a "getAttribute" on the session and you change it, you must call "setAttribute" or the change may not be stored (JDBC) or replicated (clustering technology) because the app server doesn't know that the data changed. This is a common problem.
Frank: "However you do this, bear in mind that it adds a lot of overhead and complexity to your applications. If you start sharing session data, you need to make extra sure that you keep an eye on what data gets put in the session. Repeatedly transferring too many large objects about can offset or even defeat the benefits gained from adding extra servers."
That can be true for a replicated cache, but for a distributed (partitioned) cache, it will scale indefinitely. It also has to do with the granularity; some app servers persist the entire session every request, which is expensive, but some implementations (like Coherence) cluster-replicate just modified attributes and properties.
22 years ago
JSP

Originally posted by Subhash Nambiar:
Can anyone suggest me the different pros and cons of the distributed and centralised application server concept in combination with distributed or centralised database or vice versa.


Generally you see distributed app server and centralized database server because you have to keep the transactional data in sync. It's more efficient to distribute both if possible, but it's usually not possible.
Are you considering clustering either the db or the app tier?
Peace,
Cameron Purdy
22 years ago

Originally posted by Dave Landers:
... For example if you have a cluster (several servers accessing the database) ...


To cache in a cluster, check out Coherence:
http://www.tangosol.com/coherence.jsp
Peace,
Cameron Purdy
22 years ago
Tangosol has released Coherence 1.2.1, its pure Java Distributed Cache product for J2EE AppServers. The new version adds configurable redundancy of data and configurable compression of its cluster communication protocol.
Check out Coherence.
Press Release
--------------------------
Somerville Mass -- September 19, 2002 -- Tangosol, Inc. announces immediate availability of Coherence 1.2.1, its enterprise-class clustered data management and caching product. With new support for data redundancy managed by its Distributed Cache service, Coherence is the only Java solution that provides support for massive data caching and management in a clustered J2EE application. By splitting up a massive cache of data among the servers in a cluster, Coherence allows high-scale enterprise applications to increase their effective cache potential through cost-effective horizontal scale. By automatically balancing data management across the cluster, and ensuring that each piece of data is stored redundantly, Coherence-enabled applications can survive server failure, immediately failing over data management responsibilities to available nodes. By leveraging an asynchronous peer-to-peer based clustering protocol, Coherence scales far higher than competing solutions and eliminates all single points of failure.
Also new in release 1.2.1 is improved WAN clustering support through configurable compression of the cluster communication protocol. Coherence is the only clustering software designed to work effectively and efficiently on high-latency low-bandwidth networks, and now it can efficiently communicate higher volumes of data over low-bandwidth networks.
Coherence 1.2.1 provides a new filter API for snapping in network filters, such as encryption filters and compression filters. Coherence customers now have the widest variety of options for managing the security and bandwidth utilization of their clustered applications.
Additionally, Coherence provides:
- Coherence HTTP Session Clustering replicates HTTP sessions in-memory for BEA WebLogic 7, IBM WebSphere 4, Apache Tomcat 4, and all Servlet 2.3 compliant application servers with support for both sticky and stateless load-balancing.
- Coherence is now certified by IBM as a "Powered by WebSphere" application (new!)
- Coherence Clustered Data Stores provide coherent replicated and distributed (network-partitioned) data storage in a cluster using the same standard Java API.
- Coherence Size-Limited Cache provides the only clustered size-limited cache implementation with automatic timed expiration of data, scheduled cache flushes and a combination Most Recently Used + Most Frequently Used algorithm.
- Coherence Network Fault Tolerance gracefully handles physical network interruption.
- Coherence Death Detection automatically and quickly fails over dead and unresponsive servers.
Download a free evaluation today at: http://www.tangosol.com/coherence.jsp
Tangosol Coherence is licensed per CPU for production use, and is available for research and development use for no charge.
Source code for the Coherence HTTP session replication modules for BEA WebLogic 7, IBM WebSphere 4, Apache Tomcat 4, and all Servlet 2.3 compliant application servers is available with a FREE development license. To request your free development license, email sales@tangosol.com.
Don't get fluster-clucked. Get Coherence.
22 years ago