Let's face it, humans are expensive. The cost of humans combined with the dominance of single-threaded applications in the market place spells trouble for companies wishing to seek the greatest return on investment for their latest multi-core servers. Pervasive Software, however, has developed an alternative for companies not wishing to spend valuable man hours on rewriting their software in order to benefit from a symmetric multi-processing environment. DataRush from Pervasive Software is a Java framework that allows software developers to quickly and easily create new or existing applications that are hyper-parallel. Pervasive's DataRush had made its debut last week at JavaOne 2007 and in this article, we have a few words about this unique framework.
During JavaOne 2007 we had sat down with Mike Hoskins, the CTO for Pervasive Software. In this meeting Hoskins had shared with us that DataRush has been in development for roughly the past four years and was originally designed to accelerate their own applications (namely the Pervasive Data Profiler) and then had decided to open this extensive framework to outside developers. The DataRush framework is currently available to the Java community as beta software free of charge, while the final release is expected in a matter of months. Hoskins stated there is no definitive release date but that it will ship whenever he feels that DataRush is ready for primetime. After the beta period has ended, DataRush will be licensed on a per-case basis depending upon the benefits provided by DataRush and the customer's needs. The pricing will also come down to a subscription fee on an annual basis for support. For corporations interested in Pervasive's technology immediately, there is a Lighthouse Customer Program (LCP) that will offer free support and services for one full year (once available).
Not only is DataRush beneficial from the cost point of view, but this framework also prevents developers from having to learn and deal with concurrent programming and maintaining the application to scale each time there are server upgrades. This framework manages threading, queuing, memory management, and deadlocks. However, the DataRush framework is designed solely for applications that handle large amounts of data -- such as fraud detection, analyzing scientific research data, and processing RFID data. At this point in time DataRush is not designed for other types of applications.
Hoskins had also mentioned to us during our JavaOne meet-up that DataRush is able to offer some extremely compelling benefits. In K-Means, a "simple benchmark", the time in seconds to execute was one-eighth the time when using DataRush that it took using Java without on an octal core server. In Pervasive's "Edit Distance Benchmark", DataRush had also possessed some extreme benefits. However, Pervasive Software is still in the process of testing DataRush with some more "advanced" benchmarks -- they hope and expect the results to be promising.
Single-core chips are coming to an end and within three years we will likely see 80-core chips, but software must first be able to take advantage of these additional cores and this is where Pervasive's DataRush will come into play. Granted, any skilled Java developer can write an application to use multiple threads, but DataRush seeks to provide the greatest return on investment and making this option much easier and faster to deploy. We see Pervasive's DataRush as an extremely hopeful framework that can benefit almost any data-intensive Java application. We are still in the process of experimenting with the DataRush framework in-house, and once we have anything to report back or any other findings we will be sure to do so. While the finished version of DataRush will not be free, Pervasive Software is working on opening up as many of their Java components as possible to the open-source community. You can hopefully expect the official launch of DataRush from Pervasive Software later in the year.