Interface21, the provider of the Spring application Framework, and Tangosol have introduced Coherence Data Grid for Spring, bringing enterprise-class data availability to the Spring Framework. With Coherence Data Grid for Spring, Spring applications can directly tap into the full power and scalability of the data grid to meet increasing information access demands.
Coherence Data Grid manages data in memory across data grids, offering scalable performance that enables true linear growth; automatic, dynamic and transparent reliability of data; and reduced latency and rapid data access for customers, partners, and employees.
Coherence Data Grid for Spring will enable standalone Spring applications to leverage the resiliency of a Coherence Data Grid. Spring applications may then transparently publish messages and share state in a completely recoverable, scalable, and high-performance manner. Spring application events are no longer constrained to the scope of a single JVM, and can now work together, scaling out data and processing capacity across a data grid.
Coherence Data Grid for Spring will feature a new type of Spring component, the Spring Data Grid Bean. Spring Beans may be automatically and transparently managed in highly available data grids built on top of Coherence. This allows Spring Beans to break free of single-server environments and be truly scalable across a data grid. Through the use of innovative Coherence in-memory data management technology, Data Grid Beans appear and behave as if they are traditional Spring Beans, and may be may be queried, indexed, aggregated, and updated in parallel across a data grid. As data grid capacity increases, so too does the capacity of each Spring application.
In addition, Spring applications using Data Grid Beans may fail and recover, or alternatively be restarted, without the need to manually reconstruct the state of their said beans (from databases or disk), thus improving the availability and resilience of Spring applications.
Lastly, based on innovative Coherence data management technologies, Data Grid beans used in Spring may be transparently accessed from other non-Java platforms, without the need for complicated and intrusive bridge/messaging/xml-based technologies.
Coherence Data Grid for Spring will be available for developers this year and generally available in the first quarter of 2007.
Awesome news. We did see Cameron and the Spring guys talk about this to each other a while ago. Nice to see it come out.
Coming to Clustering, would you cluster your data layer (eg: Cluster Hibernate Second Level Cache) or cluster your business layer (Spring Clustering now). Or, do both?
Both :) Basically it depends our requirements.
When using the 'Cache Behind' approach, where Coherence Data Grid is the L2 Cache for Hibernate (et al), you can trust that your objects are safely kept in-memory and accessible in a scalable resilient fashion - removing object read pressure from your underlying data sources.
Unfortunately however this approach tends to limit your application scalability in that they are still required to perform actual queries and analytics against the data source instead of the objects available in the Data Grid. So... while your objects are in a reliable, scalable, low-latency, high-performing grid, your queries are being performed against a high-latency, typically single-point of bottleneck (and failure) resource - the data source. L2 Caching offers some performance improvements (or a lot depending on your application), but for complicated queries it may not help that much.
When using the 'Cache In-Front' approach, Coherence Data Grid becomes the System Of Record and the primary source for application data, with Hibernate (et al) being used solely for data storage (and data recovery if the grid needs to be taken down for some reason).
One of the significant advantages of the Cache In-Front approach is the ability to perform analytics, queries, aggregation of data, transactions and monitoring of events (in real-time) in parallel across the Grid. Unlike the Cache Behind approach, system scalability is no-longer restricted to a single (or few) data sources. Data access scalability is only restricted to the number of resources in the Data Grid.
In short, there are benefits from both approaches and often we see both being used together in systems. One of the great things about Coherence is that system architectures can mix, match and integrate both approaches.
Could somebody compare Coherence+Spring with
Could somebody compare Coherence+Spring with
Yeah, I'd be interested in seeing that as well.
I can only speak on behalf of GigaSpaces, but I would say that the GigaSpaces Spring-based solution is broader in the programming patterns it aims to support.
I have provided a high-level summary of our Spring approach, its goals and how they are achieved here
Please take a look and see if a meaningful comparison is indeed possible.
Write Once Scale Anywhere
It would be nice if GS provided dev edition free of charge: Enterprise Edition limited to two nodes and without permission to use in production (for commercial applications).
Any plans to do so?
PS: Cameron, I would love to see similar Coherence dev edition too.
It would be nice if GS provided dev edition free of charge
Are you familiar with our totally free community edition
You can also download the EE for free evaluation and extend the evaluation period as much as you need.
Does that address what your looking for?
Development and pre-production support with Coherence has always been free - Including with the high-end Data Grid Edition.
All you need to do is register - which is also for free.
Paid Coherence licenses are only required for Production Systems - not for Development, Testing, Performance, QA etc ;)
Hence there is no reason to have a specially packaged 'developer editions' for any version of Tangosol products.
Every edition is available for download.
If you need a longer evaluation period (for more development, poc's etc), you may request one from Tangosol.
Tangosol sets the quality and customer service bar very high. If you don't go into production, Tangosol doesn't get paid.
This is why Tangosol is the leading provider in this space - everything has to work, scale and perform. If the Coherence range of products didn't work, Tangosol wouldn't be in business. Tangosol is completely focused on delivering real solutions of real value to real customers.
Should you want to evaluate and/or develop a system with Coherence, you can get *any* download from here: http://www.tangosol.com/product-downloads.jsp
Data Grid Solutions Architect
actual queries and analytics against the data source instead of the objects available in the Data Grid.
Ok, so if we want to move from 'cache behind' to 'cache in front approach', does it mean that there is a need to re-write the logic expressed in SQL/HQL querries to search against HashMaps instead? Does Coherence provide any support or utilities to help ease this migration, and make it less error prone?
does it mean that there is a need to re-write the logic expressed in SQL/HQL querries to search against HashMaps instead?
GigaSpaces and GemFire allow to access the up-front cache via JDBC interface.
Although complex SQL constructions are not supported...
"Coherence" do you support SQL?
At this instant in time, Tangosol Coherence does not support a feature limited "SQL WHERE CLAUSE" implementation.
However Coherence does support constructing filters over POJOs in a Clustered Distributed Cache or Data Grid, maintaining continuous real-time views and using said filters for real-time event delivery, including multi-platform support (Java, .NET with C++ arriving in 2007).
Importantly Coherence provides a simple mechanism to construct custom filters (by implementing a single interface) for POJOs that contain complex or binary information. Hence Coherence does not restrict customers to the relational database paradigm for querying their data nor forcing them to structure their data in a relational fashion.
Beyond the simple 'WHERE' clause support in the products you mention, Coherence additionally provides powerful aggregation features that enable expressions such as Group By, Distinct, Average, Min, Max, Count to be performed in parallel across a clustered/distributed cache/data grid. As with Filters, Coherence also allows customers to simply and effeciently create their own parallel aggregators, so again, their not restricted to a relational database paradigm.
Through the use of filters, aggregators and custom indexes, Coherence provides an extremely powerful query implementation, perhaps way beyond that of standard SQL.
If you'd like to learn more about filters and parallel aggregation, take a look at the Coherence 3.2 User Guide or the com.tangosol.coherence.filters and aggregators packages.
Hope this helps with your evaluation.
Data Grid Solutions Architect
I don't know about Konstantin, but it helps me. :)