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 ?