Virtual Machinery logoBTree logo
  B+Tree FAQ
Home B+Tree Product B+Tree Guide B+Tree Performance Demos Licensing and Pricing B+Tree FAQ


Answers to the most commonly asked questions about B+Trees

How do B+Trees 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 usuallly smaller than the data it is very quick to find the key. The Btree 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.

What do I need to install with my code to allow it to use the Virtual Machinery B+Tree library?

Just a BTree library. If you are using Java this will be a .jar file, in an iOS environment it will be a .a file. In the iOS environment you will also require 1 or more .h files

What is the maximum size of a B+Tree?

The maximum size of the B+Tree is 4GB - there is a storage overhead for the data so the B+Tree can contain slightly less than 4GB of data.

What do if I have more data than I can fit in a single B+Tree?

You can have multiple B+Trees. For example you might have 2GB of account data and 3 GB of transaction data - you could use one B+Tree for the account data and one for the Transaction data.

What is the maximum size of a single entry in a B+Tree?

Slightly less than 64k bytes - how much less depends on the size of the index that you use to access the data.

What can I do if I want to have an entry bigger than 64k?

You can split the data over multiple entries - the BTree Media Demo supplied shows how to do this using an example B+Tree which stores photographic and sound data. Click here to download the demos

How good is the performance of the B+Tree?

Typically even for very large B+Trees it is possible to achieve sub-millisecond access times. See the performance statistics provided here.

What is the best way to improve performance?

The Virtual Machinery B+Tree includes a very efficient caching mechanism that allows you to cache both index and data pages. Generally caching index pages is sufficient to obtain dramatic increases in performance at very little cost in terms of memory. You can see the effect of caching on performance here.

Can you have multiple users using the same B+Tree at once?

No. But you can synchronize access to the B+Tree to allow multiple users to access the tree using the same kind of strategies that you would use when multiple users access a HashMap.

Which Mobile development environments do the Virtual Machinery B+Tree libraries support?

  • J2ME - we explicitly support both the standard Oracle J2ME SDK and the Nokia Asha Development environment but the libraries should support any J2ME environment including restricted J2ME environments that do not support JSR75.
  • Android - the standard B+Tree libraries can be used with Android devices. We also provide a specialised library that supports Read-Only access to Virtual Machinery B+Tree datasets packaged in Android applications.
  • iOS - We provide a read-only library for iOS that can be used to read B+Tree datasets created using the Virtual Machinery Java B+Tree libraries.
Working demos for all of these environments (with code) are available from the website.Click here to download the demos

What iOS architectures are supported by Virtual Machinery's B+Tree libraries?

A number of libraries are supplied with the Virtual Machinery B+Tree implementation for iOS:
  • Armv7 - for Apple A4 and A5 processors (iPhone 3Gs/4/4S, iPod Touch, iPad, iPad 2 and mini)
  • Armv7s - for Apple A6 processors (iPhone 5/5c, iPad)
  • Arm64 - for Apple A7 Processors (iPhone 5s/6/6plus, IPad Air/Mini 2/Mini 3)
  • Universal Library - contains all three libraries (armv7, armv7s, arm64) and can be used with any device
  • i386 - for Apple Simulators
  • x86_64 - for 64 bit Apple Simulators
  • Universal Simulator Library - contains both simulator libraries (i386 and x86_64) and can be used with any simulator
Note that the current iOS implementation is read-only. In other words you will be able to read B+Trees created using the Java Virtual Machinery B+Tree libraries

Prices from $94.95.

Click here to find out more about prices, licenses and how to buy Virtual Machinerys BTree implementation online.

Try our product

Click here to download demos for Java SE, Java EE, J2ME, Android and iOS

Contact Us

© 2017 Virtual Machinery   All Rights Reserved.
iOS, iPhone and iPad are all trademarks of Apple. Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions .

Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 2.5 Attribution License.

Some of the icons in this page are generously provided by MySiteMyWay