I just posted a pretty early skeleton(
https://issues.apache.org/jira/browse/HBASE-2182) on what I think a netty
based hbase client/server could look like.
Pros:
- Faster
- Giraph got a 3x perf improvement by droppping hadoop rpc
- Asynhbase trounces our client when JD benchmarked them
- Could encourage things to be a little more modular if everything isn't
hanging directly off of HRegionServer
- Netty is better about thread usage than hadoop rpc server.
- Pretty easy to define an rpc protocol after all of the work on
protobuf (Thanks everyone)
- Decoupling the rpc server library from the hadoop library could allow
us to rev the server code easier.
- The filter model is very easy to work with.
- Security can be just a single filter.
- Logging can ba another
- Stats can be another.
Cons:
- Netty and non apache rpc server's don't play well togther. They might
be able to but I haven't gotten there yet.
- Complexity
- Two different servers in the src
- Confusing users who don't know which to pick
- Non-blocking could make the client a harder to write.
I'm really just trying to gauge what people think of the direction and if
it's still something that is wanted. The code is a loooooong way from even
being a tech demo, and I'm not a netty expert, so suggestions would be
welcomed.
Thoughts ? Are people interested in this? Should I push this to my github
so other can help ?