Apache HBase Native Client

Clone this repo:

Branches

  1. 926a6f9 HBASE-24642 (addendum): Reduce make concurrency and increase container mem limit by Bharath Vissapragada · 7 weeks ago master
  2. 3b81c3d HBASE-24810: Download Boost with other dependencies by Bharath Vissapragada · 8 weeks ago
  3. 3b86174 HBASE-24642 (addendum): Do not run the container as root (#13) by Bharath Vissapragada · 7 weeks ago
  4. 7281fc6 HBASE-24724: Parallelize make with Yetus (#11) by Bharath Vissapragada · 8 weeks ago
  5. 931ecad HBASE-24642: Apache Yetus test-patch and Jenkins integration. (#10) by Bharath Vissapragada · 2 months ago

hbase-native-client

Native client for HBase

This is a C/C++ library that implements a HBase client.

Design Philosphy

Synchronous and Async versions will both be built on the same foundation. The core foundation will be C++. External users wanting a C library will have to choose either async or sync. These libraries will be thin veneers ontop of the C++.

We should try and follow pthreads example as much as possible:

  • Consistent naming.
  • Opaque pointers as types so that binary compat is easy.
  • Simple setup when the defaults are good.
  • Attr structs when lots of paramters could be needed.

Naming

All public C files will start with hbase_*.{h, cc}. This is to keep naming conflicts to a minimum. Anything without the hbase_ prefix is assumed to be implementation private.

All C apis and typedefs will be prefixed with hb_.

All typedefs end with _t.

Docker

The build environment is docker. This should keep a consistent build environment for everyone. Buck the build system works best with mmap'd files. On OSX this means that vmwarefusion works the best. However it should work with just the defaults.