19
  • What is Terracotta?
  • What services does it offer?
  • What problems does it solve?
  • What other products solve problems similar to those that Terracotta solves?
Derek Mahar
  • 27,608
  • 43
  • 124
  • 174
  • 1
    I suggest start with http://en.wikipedia.org/wiki/Terracotta_Cluster, and then coming back with a more specific question. – skaffman May 03 '10 at 21:01
  • 1
    Wikipedia claims that "Terracotta's JVM-level clustering can turn single-node, multi-threaded applications into distributed, multi-node applications, often with no code changes." This sounds too good to be true which may be one reason why Wikipedia also claims that the article is "written like an advertisement". – Derek Mahar May 03 '10 at 21:07
  • 1
    Today, Terracotta offers much more (based on several products) but JVM clustering has been Terracotta's flagship technology since the start. Why does it sound too good? Anyway, the code is open source, feel free to check it or try it. – Pascal Thivent May 03 '10 at 21:43
  • 1
    It's the "...often with no code changes" that sounds too good to be true. I might believe "with fewer code changes" than other solutions, but none? – Derek Mahar May 04 '10 at 03:04

4 Answers4

8

Find a great article about Terracotta and how it works at InfoQ written directly by Orion Letizi, co-founder and software engineer at Terracotta:

http://www.infoq.com/articles/open-terracotta-intro

It helped me to prepare for a webcast about terracotta and how it can be used for clustering and scaling grails applications and gave me a good overview about Terracotta.

stefanglase
  • 10,296
  • 4
  • 32
  • 42
5

I like to think about Terracottas DSO in terms of advanced parallel architectures: Terracotta turns your message-passing multicomputer into a usual unified memory multiprocessor. Multicomputers are different from multiprocessors in that processors share memory and, therefore, are easier to program because you just write into memory in usual multithreading way. Though, you it means that you need to explicitly synchronize access to the shared data using a lock, system saves you from the need to explicitly message-passing data marshaling and resolves the biggest parallel programming issue -- the cache coherence -- for you. Multiprocessor marshals the data for you when you take/release the lock. It is, therefore, desirable. But, initially you have a bunch of computers -- a multicomputer.

The magic is achieved by injecting some code into your classes at object field/lock access points. To correspond DB world, Terracotta considers all updates done under a lock atomic (transaction). Likewise multiprocessors can have a global storage, Terracotta allows to back up the locally updated data to disk.

Val
  • 1
  • 8
  • 40
  • 64
2

What other products solve problems similar to those that Terracotta solves?

Try Hazelcast, It is super simple to use. Peer to peer, highly scalable, fully open source clustering technology for Java. It is simply distributed Map, Queue, MultiMap, ExecutorService. You can use its Map as a distributed cache.

Fuad Malikov
  • 2,325
  • 18
  • 20
  • See the companies listed on the frontpage (http://www.hazelcast.com). Also visit the 'Testimonials' to see who used it for what. – Talip Ozturk May 04 '10 at 20:39
0

I found an article in JavaWorld about Terracotta at http://www.javaworld.com/javaworld/jw-01-2009/jw-01-osjp-terracotta.html.

Derek Mahar
  • 27,608
  • 43
  • 124
  • 174