McObject Releases Perst, an Open Source Embedded Database for Java and C#
McObject announced its official release of Perst, an open source, object-oriented embedded database for Java and C#. In addition to high performance and a modest footprint, one of Perst's greatest achievements is its tight integration with Java and C#, resulting in exceptional ‘transparent persistence' and ease in working with objects in these fast-growing programming languages.
Offered since 2003 by its original engineer in Russia, Perst has built an impressive following: more than 1,000 developers have downloaded it, and the database has been adopted for major commercial software products. Effective immediately, McObject is offering Perst as a free download for evaluation and non-commercial use, and spearheading its development in the open source community. McObject also now sells Perst support as well as commercial licenses.
Under Perst's dual license, users can modify database source code and use it freely in non-commercial applications (software that is neither sold nor used internally by a business, and for which source code is made available) under the GNU General Public License (GPL). McObject's commercial license is required if Perst-based software will be sold or used for business, or if source code is to be withheld.
“iSpheres uses Perst to implement streaming data persistence for complex events processing, and to provide time series persistence for XMLBeans, Java Beans and HashMaps. Perst has proven to be an excellent choice for our Java-based, real-time enterprise software application. Its Java implementation is highly readable and understandable. Perst's simplicity of design, along with open source code, has enabled us to optimize certain indexes for working with streaming data.”
- Kal Krishnan, VP of Engineering, iSpheres Corporation
Perst is ideal for Java and C# applications requiring a modest footprint and fast, multi-platform data management—typical uses include embedded systems, packaged software, mobile applications, Web services and industrial systems. With a run-time code footprint of between 30K and 300K, Perst fits well within the resource constraints of many embedded systems applications.
Perst's fundamental achievement lies in making persistent Java and C# objects as efficient and easy to use as possible. In most cases, Perst automatically loads the persistent objects without explicit programmer command. When used with aspect-oriented tools such as AspectJ and JAssist, Perst provides completely transparent persistence.
Perst classes enable efficient filtering of collection elements. For efficient access to persistent objects, Perst also implements specialized collection classes optimized for different data layouts and access patterns, including: a classic B-Tree implementation; R-tree indexes for spatial data representation; main-memory database containers, based on T-Tree indexes, optimized for memory-only access; the Patricia Trie index to support IP address data; a TimeSeries class to efficiently deal with small fixed-size objects; specialized versions of collections for thick indices (indices with many duplicates), and bit indices (keys with a restricted number of possible values).
“Perst not only met our requirements, but excelled in all major categories and handily beat the competition in head-to-head memory and performance comparison."
- Sam Edge, Founder, Impartif
In contrast to object/relational databases, or tools that provide object/relational mapping, Perst stores data directly in Java/C# objects. This eliminates the need for expensive (in performance terms) run-time conversions between the database representation of the data and the Java/C# representation.
Unlike many other object-oriented databases, Perst requires no dedicated compiler, byte code processor or specialized Java run-time environment, yet provides a high degree of application transparency. The Perst API is convenient, flexible and easy to use. Perst requires no end-user administration, and along with its simplicity, Perst ensures integrity via transactions that adhere to the “ACID” properties (Atomicity, Consistency, Isolation and Durability) with very fast recovery.
Perst also provides features such as garbage collection, detection of hanging references, automatic schema evolution, XML import/export utilities, master-slave replication support (with the option to run read-only queries on slave nodes), and integration with AspectJ and JAssist AOP tools.
More information, and Perst database software for Java and .NET, is available from www.mcobject.com/perst.
“Why Perst? It's simply the best in its category. Perst meets Java and C# developers' need for a small-footprint, object-oriented embedded database that matches these languages' productivity, while embracing our core values of developer-friendliness, outstanding performance, and minimal overhead.
“With open source and the Internet, anything is possible. Just as a graduate student in Finland can launch an operating system that thoroughly disrupts software markets, so can a smart programmer in Russia create a database that upends embedded data management for Java and .NET.”
-Steve Graves, CEO and co-founder, McObject
Founded by embedded database and real-time systems experts, McObject offers proven data management technology that makes intelligent devices smarter, more reliable and more cost-effective to develop and maintain. McObject counts among its customers industry leaders such as DaimlerChrysler, EADS, JVC, Tyco Thermal Controls, F5 Networks, Genesis Microchip, Motorola and Boeing. McObject, based in Issaquah, WA, is committed to providing innovative technology and first-rate services to customers and partners. The company can be reached at +1-425-831-5964, or visit www.mcobject.com.
McObject and Perst are registered trademarks of McObject LLC. All other company or product names mentioned herein are trademarks or registered trademarks of their respective owners.