Skip to content

Conversation

@cmccoy
Copy link
Collaborator

@cmccoy cmccoy commented Aug 19, 2015

See #272.
This change breaks HBaseClient10 into a separate module, and downgrades the HBase version used by the hbase binding to v0.98.13.

Note that the HBase 1.0 binding is now accessed via hbase1, instead of hbase-10 so that the runner script maps to the correct binding.

I tested against HBase v0.98.13 (with hbase) and v1.0.1.1 (with hbase1). The naming is a bit confusing...does anyone have an opinion on this naming shceme versus an hbase09 and hbase1 binding?

@cmccoy cmccoy added the hbase label Aug 19, 2015
@busbey
Copy link
Collaborator

busbey commented Aug 19, 2015

I'd like us to support HBase 0.94, and that won't work with the HBase 0.98 jars.

Do we want to have per-major-client-version bindings?

that would mean:

  • HBase 0.94
  • HBase 0.98
  • HBase 1.y

That would mean we couldn't, e.g. take advantage of client-side optimizations in minor versions (atleast not without gymnastics). I certainly like this better than the alternative of per-minor-client-version bindings.

Unrelated, does keeping the 1.y API stuff in a module allow that module to build against the HBase 2.0.0-SNAPSHOT? Just wondering if we can close out #379 via this.

@busbey
Copy link
Collaborator

busbey commented Aug 19, 2015

wrt naming, what if we introduce a means for bindings to have submodules and a way to tell us which class corresponds to a version request?

Essentially, something that would let us do:

$ ycsb load hbase --binding-version 1.0

or

$ ycsb load hbase --binding-version 0.94

instead of having it tied to the binding name directly.

@busbey
Copy link
Collaborator

busbey commented Aug 19, 2015

the travis failure is because the distribution assembly pom needs to list the hbase1 binding as a dependency

@cmccoy
Copy link
Collaborator Author

cmccoy commented Aug 19, 2015

Fixed the travis failure, thanks. I'll try to see if this addresses #379 tomorrow.

Re: the --binding-version flag...how would we handle new (and backwards compatible) versions? Would there be some mapping from DB version to binding version?

@cmccoy
Copy link
Collaborator Author

cmccoy commented Aug 20, 2015

OK, I separated the HBase bindings into three versions:

  • HBase 1.x (hbase10)
  • HBase 0.98.x (hbase098)
  • HBase 0.94.x (hbase094)

The hbase094 binding has no actual code, it just pulls in hbase098 and replaces dependencies. I don't have a lot of experience with Maven; LMK if there's a tidier way of doing this.

I'd like to get this in and put off adding a --binding-version flag.

@busbey
Copy link
Collaborator

busbey commented Aug 20, 2015

I'm fine waiting on the binding-version flag.

@gkamat do you have time to review this?

@cmccoy are you wanting to get this into the release this weekend?

@busbey
Copy link
Collaborator

busbey commented Aug 20, 2015

as the patch currently stands, we'd have to make the next release version 0.4.0, since the "hbase" binding target goes away.

@cmccoy
Copy link
Collaborator Author

cmccoy commented Aug 20, 2015

I'm happy targeting this for the next release (leaving it out of 0.3.1).

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think with this patch there is no "hbase" binding, right?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this doc error is the only fix-before-push thing I see.

hbase/ now contains the HBase v0.9 binding code.
hbase1/ now contains the HBase 1.0 binding code.
HBase 0.94 requires an additional dependency on hadoop-core, but has no
source-level changes to the client.
Remove deprecated methods:
Put.add -> Put.addColumn.
KeyValue -> Cell.
@cmccoy
Copy link
Collaborator Author

cmccoy commented Sep 16, 2015

Sorry for the delay. All comments addressed - thanks!

@busbey
Copy link
Collaborator

busbey commented Sep 16, 2015

+1

cmccoy added a commit that referenced this pull request Sep 16, 2015
[hbase] Separate HBase v0.9x and v1.x bindings
@cmccoy cmccoy merged commit 9be8bf4 into brianfrankcooper:master Sep 16, 2015
@cmccoy cmccoy deleted the separate-hbase branch September 16, 2015 16:59
@allanbank allanbank mentioned this pull request Sep 17, 2015
jaricftw pushed a commit to jaricftw/YCSB that referenced this pull request Jul 19, 2016
[hbase] Separate HBase v0.9x and v1.x bindings
jaricftw pushed a commit to jaricftw/YCSB that referenced this pull request Jul 19, 2016
[hbase] Separate HBase v0.9x and v1.x bindings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants