|By Liz McMillan||
|May 15, 2014 10:00 AM EDT||
CodeFutures on Wednesday announced MapDB, a new open source project for Java databases that increases the performance, speed and flexibility of managing and gaining value in Java applications. MapDB supports CodeFutures' focus on making Big Data infrastructures, and the data they store, more agile and readily available for mission-critical, real-time business applications. MapDB is especially beneficial to Java developers, as they now have a native platform to integrate Java applications directly with data stores of virtually any size. This transcends the typical Java heap memory limits, exposing 100s of GBs to terabytes of data via the native Java collections API.
"MapDB has been a fantastic resource, allowing us to transparently move traditionally a SQL-backed application into main memory for performance. It's easy to use, and the examples are quite good," said Michael Rose, senior platform engineer at FullContact. "It definitely follows the principle of ‘least surprise,' and actually surprised me that things just worked and required very little effort to get going. In fact, I replaced a six-table system, relations, secondary indexes, and all into MapDB. It was quite simple and blazing fast."
MapDB was developed by noted database architect Jan Kotek, who is now supported by CodeFutures. The project is provided under the Apache 2.0 License and can be freely integrated into any other open source or commercial project. MapDB 1.0 is available for download at: http://www.mapdb.org.
CodeFutures' vision is to enable an agile approach to Big Data processing - transforming static database repositories into a flexible data infrastructure. This approach reduces the heavyweight, rigid and limiting capabilities of accessing and using data in a meaningful way. Led by industry database veterans, the company is currently developing a new data platform that transforms data into a fluid, easily manageable platform that developers can use to deliver real-time data to enable critical business applications. CodeFutures' "agile" approach represents a major industry breakthrough that aligns data processing and usage with the Agile-based principles of being lightweight, flexible, incrementally scalable and extremely responsive to the needs of customers and the organization.
"Today's databases are very cumbersome and rigid when it comes to streaming and accessing the exact data needed to support the real-time enterprise," said Cory Isaacson, CEO of CodeFutures. "MapDB combines the agility to access data in a form that exactly matches application requirements, all in a way that is totally intuitive to a Java developer."
MapDB supports very large databases (up to 100 GB and billions of rows or objects), with performance that is comparable to many C-language databases, such as Google's LevelDB and Oracle's Berkeley DB. It exposes data functionality via the familiar Java Collections API, which are the most commonly used data structures by Java developers. This makes MapDB extremely natural to use - as it can easily be plugged into any existing project with flexible configuration options. It can be used to create dynamic schema structures to meet specific application needs - including relational-like and index structures, in a very unique and intuitive way. Its tune-ability lets developers adjust MapDB to control caching, storage options and many other features. This provides developers with explicit control over database internals in seconds to obtain desired performance, caching and reliability characteristics.
"Other database options of this performance level are written in native C or C++ languages, making it difficult for Java developers to embed in their code," said Isaacson. "In addition, many of these databases require a commercial license, cannot be freely distributed and must be integrated using the Java Native Interface (JNI) technology, a cumbersome task that often results in compromised performance."
MapDB can be easily used to offload Java heap memory usage, persisting very large databases without taxing Java memory and exceeding memory usage limits. This also results in minimizing Java garbage collection, the automated memory management process used by Java. MapDB can be used with any Java application that requires large collections of objects, and can even be used as a substitute for many relational or NoSQL databases. It is fully transactional, supporting everything from e-Commerce and gaming to advanced analytics applications.