On February 6, 2006, 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 packaged software, mobile and embedded 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.
"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
What Perst Is and Is Not
What Perst Is
Perst is an object-oriented embedded database for applications that need to
deal with persistent data. It is easy to use and provides high performance. Its
main advantage is its tight integration with the programming language. There is
no gap between the database and the application data models since Perst directly
stores data in language objects. Thus, there is no need for data-packing or
unpacking code to map between the application's data model and the database's
data model, in contrast to the requirements of relational and object-relational
databases.
Unlike many other object-oriented database management systems (OODBMSs),
Perst does not require a special compiler or pre-processor. Yet, it is able to
provide a high level of transparency. The Perst API is convenient, flexible,
easy to use and very fast, as much as four times faster than
alternative commercial Java OODBMS.
Perst is a very compact database system, with a core consisting of only five
thousand lines of code. It makes little demand on system resources. Moreover,
Perst does not require any administration efforts. Despite such simplicity,
Perst supports transactions with the ACID properties, with very fast recovery
after an application error.
There are two implementations of Perst - pure Java and pure C# (C Sharp). The
C# implementation was produced from Java using a Java-to-C # converter (note
that significant manual changes are required to make this work). The C#
implementation supports a larger number of primitive types (C# has unsigned
integer types and enums). In all other respects, the two databases are
completely equivalent and provide the same API. Perst.NET supports standard and
compact .Net frameworks and can therefore be used to develop WinCE and PocketPC
applications.
What Perst Is Not
Perst is not an enterprise-class database management system, nor an
object-relational mapping tool.
Perst is not a client/server architecture database system and cannot support
multiple concurrent processes sharing a common database. (Multiple threads
within a single process are supported.)
Perst does not have a high level query language, such as SQL.
Additional Information
More information, and Perst database software for Java and .NET, is available from www.mcobject.com/perst.
About 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.
While the .NET Framework made building ASP.NET applications easier then it had ever been in the past, .NET 2.0 builds on that foundation in order to take things to the next level. This article shows you to how to construct an N-Tier ASP.NET 2.0 Web application by leveraging the new features of ASP.NET 2.0 and SQL Server 2005.
[Read This Article][Top]
With the release of ASP.NET 2.0, Microsoft has greatly increased the power of ASP.NET by introducing a suite of new features and functionalities. As part of this release, ASP.NET 2.0 also comes with a host of new special files and folders that are meant to be used to implement a specific functionality. This article examines these new files and folders in detail and provides examples that demonstrate how to utilize them to create ASP.NET 2.0 applications.
[Read This Article][Top]
Alex Homer continues his detailed look at the major changes to the DataSet class. In this part, he looks at two features that allow developers to work with data in a more structured and efficient way when using the DataSet with a SQL Server 2005 database server.
[Read This Article][Top]
Alex Homer continues his detailed look at the major changes to the DataSet class. In this part, he looks at two features that allow developers to work with data in a more structured and efficient way when using the DataSet with a SQL Server 2005 database server. [Read This Article][Top]
In this article, Alex Homer looks at the changes between the version 1.x and version 2.0 DataSet and their associated classes, showing you how you can take advantage of the new features to improve your applications' capabilities and performance. [Read This Article][Top]
In this article, Alex Homer looks at the changes between the version 1.x and version 2.0 DataSet and their associated classes, showing you how you can take advantage of the new features to improve your applications' capabilities and performance. [Read This Article][Top]
In ASP.NET 2.0 and Visual Studio 2005, you can quickly program custom authentication pages with the provided Membership Login controls. In this article, Dina Fleet Berry examines the steps involved in using the Login control with a custom SQL Server membership database.
[Read This Article][Top]
In this article, Thiru Thangarathinam examines .NET 2.0's new ClickOnce deployment technology that is designed to ease deployment of Windows forms applications. This new technology not only provides an easy application installation mechanism, it also eases deployment of upgrades to existing applications. [Read This Article][Top]
With ASP.NET 2.0, Microsoft has made great strides in increasing developer productivity and has made implementing previously complex solutions relatively easy. Where this version of ASP.NET really shines, however, is in its new administrative tools that allow developers to spend less time managing the configuration of the servers and software and more time developing great code.
[Read This Article][Top]
Thiru Thangarathinam introduces ASP.NET 2.0's new TreeView control which provides a seamless way to consume and display information from hierarchical data sources. The article discusses this new control in depth and explains how to use this feature rich control in your ASP.NET applications. [Read This Article][Top]
Mailing List
Want to receive email when the next article is published? Just Click Here to sign up.