Skip to content
Tatsuya Kawano edited this page Apr 8, 2015 · 9 revisions

Roadmap

Short-term roadmap (as of April 2015)

v0.1 series (stable)

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 use rebar to manage dependencies. (Hibari will continue using repo)
  • 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 and syslog.

v0.3 series (unstable)

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

v0.5 series (unstable)

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 and hibari-admin commands (e.g. control and monitor scavenger)
    • Delete table operation, which is missing in earlier series
    • Server-side counter

v0.6 series (stable)

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 using repo.)
    • Documentation rework
    • More sample codes
    • Playbook for Ansible for automated single-node and multi-node deployments
    • More QuickCheck and EUnit test cases

Unscheduled Features

  • MapReduce (Erlang, Haskell?, Python? or Lua?)
  • SNMP support
  • Big writes/reads (append to a value and partial_read from a value)
  • Multi-datacenter deployment
Clone this wiki locally