Btree
Virtual Machinery B+Tree product implements a B+Tree for the Java platform and a read only version for Objective-C (e.g. for iPhone and other iOS implementations) The Java platform distribution includes an implementation for the J2ME platform (incl Android). These classes give fast access times to up to 4Gb of textually indexed data. The B+Tree is platform independant with a small footprint (less than 40k for the version implemented on the Java platform). Transactions are supported with full commit and rollback. User-defined cache levels are also provided. The distribution includes full documentation as well as code examples. Classes are designed in Component form allowing individual classes to be substituted.
Our BTree Product
Virtual Machinery offers a full B+Tree implementation for the Java platform and a read-only B+Tree for iOS platforms. The distribution comes with full documentation and example code. You can download demos of our B+Tree for each supported platform by clicking here.
These classes give fast access times to up to 4Gb of textually indexed data. The B+Tree is platform independent with a small footprint (less than 40k for the implementation for the Java platform). Transactions are supported with full commit and rollback. User-defined cache levels are also provided. The distribution includes full documentation as well as code examples. Classes are designed in Component form allowing individual classes to be substituted. A full toolkit with the ability to examine, compress and repair datasets is also available (this is an additional Java application which can be used on datasets created by a Virtual Machinery B+Tree distribution on any Java platform) .
The Standard Java BTree version can also be used without modification on Google's Android (TM) Mobile Platform.You can download a sample application that uses the implementation by clicking here
Other items in the Distribution
A set of classes which implement a BTree in the Micro Edition of Java (J2ME).This ME version of the BTree provides all the functionality of the original BTree product. The product has been designed for use with Oracle's J2ME SDK and Nokia's Asha SDK. Sample applications which work in these environments can be found here. An extensive guide to the features can be found in the programmers guide that comes with the product.
A set of classes which implement read-only BTrees. Using a read-only BTree gives performance and footprint benefits when used in place of a full BTree. Of course such BTrees are only suitable for use in situations where there is no requirement to modify the data contained in the tree. As a further extension to the Read Only BTree a Read Only BTree which is stored entirely in memory is also provided as a means to increase performance. The Read Only BTree classes are installed as part of the product installation.
A set of classes which implement a B+Tree in Objective-C. These are distributed as a static library (.a file) that can be incorporated in iOS applications e.g. for the iPhone or iPad. This allows data that has been stored in a B+Tree to be distributed with Android, J2ME and iOS environments without modifying the B+Tree for each platform. Sample applications (distributed as XCode projects) which work in the iOS simulator can be found here. An extensive guide to the features can be found in the programmers guide that comes with the product.
Advantages
Fast access to textually keyed data (sub-millisecond access on most platforms when index and data are fully cached).
Forward key compression allows use of meaningful keys with reduced space penalty.
Transaction support with commit and rollback.
User defined cache levels for both index and data pages.
Full source code provided.
Individual datasets can hold up to 4Gb of data.
Set of diagnostic tools available as an additional product (runs on any Java platform) - verify, compress and fix datasets.
Design allows for single classes to be substituted e.g. to use a different type of cache.
Limitations
Single process only.
Key limited to 120 bytes.
Maximum 64k data pages.
Maximum 65024 byte page size.
Further Information
A Quick guide to BTrees gives an overview of the underlying principles of B+Trees. A more extensive guide to the features is supplied with each distribution in the form of a Programmers guide. Full javadoc-generated class documentation is also available. For more information contact info@virtualmachinery.com.
You can find out more about our BTree implementation on the BTree FAQ page.We always welcome feedback on our product and demos - please feel free to contact us using the link at the bottom of the page.
Why Btrees?
BTrees are one of programmings well kept secrets. They are the highly efficient data storage mechanisms underpinning todays most powerful commercial databases. These databases interpose an SQL layer between you and the underlying BTree structure, Virtual Machinery's B+Tree implementation strips away this layer and gives you access to the raw power underneath.Find out more about how you can use this power here
Performance
The B+Tree is one of the most performant disk-based data structures available. This is why it is at the heart of the main industrial-strength database systems. At Virtual Machinery we believe we offer the best balance between performance and data integrity possible. With our 20 years experience in the business we know what users require and we deliver it, offering sub-millisecond response on large datasets. This performance is available on any platform that supports Java from hand held devices to mainframes. We also offer a read-only library for the iOS platform. Find out more about Virtual Machinery's BTree performance by clicking here.
Virtual Machinery B+Tree - same B+Tree different platforms
The images shown below are from the demos supplied with Virtual Machinery's B+Tree. In each case exactly the same B+Tree was used on each platform and contained text, image and sound data. You can download these demos using the link on the right
How do BTrees work?
B+Trees are a structured data storage mechanism which divides the keys used to store the data and the data itself in files in the file system. Since the keys are usually smaller than the data it is very quick to find the key. The B+Tree is organised so that the key points directly to data and it can then be fetched very quickly. You can think of a BTree as being like a persistent hashmap. You can find out more about the theory of B+Trees here.
© Copyright 2000-2023 COGITO SOFTWARE CO.,LTD. All rights reserved