-
Notifications
You must be signed in to change notification settings - Fork 30
Roadmap
Short-term roadmap (as of April 2015)
Hibari v0.1.x are very early releases after forking proprietary Gemini Distributed Storage Service (GDSS). GDSS is a rock-solid key-value store and it has been used in production in Tier 1 telecom sector since 2010. However GDSS only has a native Erlang client and also requires to write Erlang codes to perform basic system administration tasks.
Hibari v0.1.x releases contain bug fixes, updates for recent Erlang/OTP releases (R16 and 17), prototype implementations for non-Erlang client APIs, and Linux shell scripts to perform some of the basic system administration tasks.
These v0.1.x releases are considered stable.
-
v0.1 - Released on July 13, 2010
- First public, open source release of Hibari
-
v0.1.10 - Released on Feb 4, 2013
- Minor bug fixes
- Update for Erlang/OTP R15
- Support for building on Ubuntu, including ARMv7 architecture
- Remove S3 and JSON-RPC components from Hibari distribution (remove
from the
repo
manifests.) S3 and JSON-RPC will become separate projects and will userebar
to manage dependencies. (Hibari will continue usingrepo
)
-
v0.1.11 Released on Apr 5, 2015
- Update for Erlang/OTP 17 and R16. (Note: Erlang/OTP releases prior to R16 are no longer supported)
- Update external libraries such as UBF to the latest versions
- Enhanced client API: server side rename and server side timestamp
- Introduce Basho Lager for
more traditional logging that plays nicely with UNIX logging
tools like
logrotate
andsyslog
.
Hibari v0.3 series will have some scavenger (aka compaction) enhancement and new disk storage format for optimal read performance and disk space efficiency. It will also include support other platforms such as FreeBSD and SmartOS who are equipped with ZFS filesystem.
These v0.3.x releases will be considered unstable.
-
v0.3.0 - Not Released
- New storage format for optimal read performance and space efficiency. The brick private hlogs are replaced by LevelDB (HyperLevelDB) based metadata DB. This eliminates the checkpoint process in the brick server, and also gives faster recovery from server restarting. The long-term log files for value blobs are replaced by brick-private new log format. The new format provides better read performance and better disk space efficiency. Link to GitHub issue
- Scavenger enhancements. The long-term log files for value blobs are now brick-private rather than shared by all bricks on the server. This will give faster scavenger (aka compaction) process, and also makes it easier to relocate a brick from a server to another.
- Support for building and running on FreeBSD (armed with ZFS and DTrace)
- Support for building and running on Joyent SmartOS (an illumos based Solaris variant armed with ZFS, DTrace, Zones and KVM)
-
v0.3.1 - Not Released
- Sample codes for Erlang native client (
brick_simple
) - Basho Bench driver
- Sample codes for Erlang native client (
Hibari v0.5 series will have a complete Thrift-based API for non-Erlang clients.
These v0.5.x releases will be considered unstable.
-
v0.5 - Not Released
- A complete Thrift-based API
- More
hibari
andhibari-admin
commands (e.g. control and monitor scavenger) - Delete table operation, which is missing in earlier series
- Server-side counter
Hibari v0.6 series will be considered stable. These releases will have source code package and Ansible playbooks for easier build and deployment. They will also have major documentation updates and more test cases.
-
v0.6 - Net Released
-
Source code package. Application developers can build Hibari
without
repo
by using this package. (Hibari developers will continue usingrepo
.) - Documentation rework
- More sample codes
- Playbook for Ansible for automated single-node and multi-node deployments
- More QuickCheck and EUnit test cases
-
Source code package. Application developers can build Hibari
without
- MapReduce (Erlang, Haskell?, Python? or Lua?)
- SNMP support
- Big writes/reads (
append
to a value andpartial_read
from a value) - Multi-datacenter deployment