for high-performance distributed data.
OpenCluster is a distributed hashmap service that is designed for both high performance and scalability.
OpenCluster stores data in maps. The map itself is a container of key/value pairs.
OpenCluster is open-source software, which means that the code is available to be modified to your perticular needs (within the limits of GPL licencing, which essentially means you are free to modify it with no restrictions for your own use, but if you wish to distribute your modified version, you must also include the source code of this modified version)
- 64-bit: Most servers and desktops these days are 64-bit, so it only makes sence that a large data store is also 64-bit in nature too. This gives you almost unlimited data storage. You can still run the software on 32-bit machines though.
- Reverse Maps: Typical hashmap solutions use the key only for lookups. In certain situations, you need to lookup the value to determine the key. For example, if you have a map of 'username' so username = 'fred', username = 'barney', if someone logged in with a username of 'fred', how can that information be used to determine that the index for 'fred' is 0? OpenCluster allows you to specify certain maps as reversible (and the values must be unique) and the data is indexed for a fast lookup of the value to determine the index so that it can be used to lookup other maps such as 'password' and 'fullname'.
- Performance: Designed from the ground up to be able to respond quickly to data requests.
- Scalable: Administrators must be able to add new nodes to the cluster without requiring any downtime on the cluster itself
- Reliability: Data is stored in more that one place, so that if a node fails, the data is still available from another node.
OpenCluster is still in active development. It is currenly available as source code on github.
OpenCluster is still in the early stages of active development, but we hope to have a stable version of the server available by the end of 2012.
Work is being done on Java and C client libraries, with other languages planned for the future.