Santo
Santo

Reputation: 127

Alternative to distributed caching

There is a technical requirement to scale a new system easily. This new system consists of three tiered applications (as a batch processors). Each tier will contains at least 2 servers with the same application resides on each server.

So, when one of the tier reaches peak performance, we could extend the scalability easily by adding a new server and the same application to off-load some of the processing loads.

The problem is that one or two of the three tiers require heavy caching (about 3 million records and increasing).

I'm thinking of using distributed caching system to overcome this problem but the new distributed caching system will means an additional point of failure as applications now need to interact with additional caching systems for processing.

I'm currently looking at ncache but just wondering if there is an alternatives to this problem? or is there any other comparable distributed caching system that maybe similar or better than ncache and provide enterprise supports too?

Thanks,

Chen

Upvotes: 2

Views: 2397

Answers (2)

VonC
VonC

Reputation: 1327334

You can find in this IBM article (expired) the main actors in DCP (Distributed Caching Platforms) environment.

The alternative we are using (not free) is Gigaspace XAP.

http://wiki.gigaspaces.com/wiki/download/attachments/55935974/XAP%20Architecture%20Overview.jpg

Upvotes: 1

cpurdy
cpurdy

Reputation: 1236

Chen -

It sounds like you could definitely use a distributed caching system, or even an in-memory data grid (IMDG). Here's some highlights of Oracle Coherence (previously Tangosol Coherence):

  • Elastic. Just add nodes. Auto-discovery. Auto-load-balancing. No data loss. No interruption. Every time you add a node, you get more data capacity and more throughput.
  • Use both RAM and flash. Transparently. Easily handle 10s or even 100s of gigabytes per Coherence node (e.g. up to a TB or more per physical server).
  • Automatic high availability (HA). Kill a process, no data loss. Kill a server, no data loss.
  • Datacenter continuous availability (CA). Kill a data center, no data loss.
  • RESTful APIs available from any language. Native APIs and client libraries for C/C++, C#, .NET and Java.
  • In addition to simple key-value (K/V) caching, also support queries (including some SQL), parallel queries, indexes (including custom indexes), a rich eventing model (for event-driven systems like exchanges), transactions (including MVCC), parallel execution of both scalar (EntryProcessor) and aggregate (ParallelAwareAggregator) functions, cache triggers, etc.
  • Easy to integrate with a database via read-through, read-ahead, write-through and write-behind caching. Automatically refreshes just the changed data when changes occur to the database (leveraging Oracle GoldenGate technology).

There's a summary of the In-Memory Data Grid market by Gartner called "Competitive Landscape: In-Memory Data Grids". You can see a copy at: http://www.gartner.com/technology/reprints.do?id=1-1HCCIMJ&ct=130718&st=sb

For the sake of full disclosure, I work at Oracle. The opinions and views expressed in this post are my own, and do not necessarily reflect the opinions or views of my employer.

Upvotes: 0

Related Questions