[ https://issues.apache.org/jira/browse/HDFS-11106?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James Clampffer updated HDFS-11106: ----------------------------------- Status: Patch Available (was: Open) > libhdfs++: Some refactoring to better organize files > ---------------------------------------------------- > > Key: HDFS-11106 > URL: https://issues.apache.org/jira/browse/HDFS-11106 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client > Reporter: James Clampffer > Assignee: James Clampffer > Attachments: HDFS-11106.HDFS-8707.000.patch > > > I propose splitting some of the files that have grown wild over time into > files that align with more specific functionality. It's probably best to do > this in a few pieces so it doesn't invalidate anyone's patches in progress. > Here's what I have in mind, looking for feedback if 1) it's not worth doing > for some reason 2) it will break your patch and you'd like this to wait. I'd > also like to consolidate related functions, mostly protobuf helpers, that are > spread around the library into dedicated files. > Targets (can split each into a separate patch): > * split hdfs.cc into hdfs.cc and hdfs_ext.cc. Already have a separate > hdfs_ext.h for C bindings for libhdfs++ specific extensions so > implementations of those that live in hdfs.cc would be moved out. Just makes > things a little cleaner. > * separate the implementation of operations from async shim code in files > like filesystem.cc (make a filesystem_shims.cc). The shims are just > boilerplate code that only need to change if the signature of their async > counterparts change. > * split apart various RPC code based on classes. Things like Request and > RpcConnection get defined in rpc_engine.h and then implemented in a handful > of files which get confusing to navigate e.g. why would one expect Request's > implementation to be in rpc_connection.cc. > * Move all of the protobuf<->C++ struct conversion helpers and protobuf wire > serialization/deserialization functions into a single file. Gives us less > protobuf header includes and less accidental duplication of these sorts of > functions. > * merge base64.cc into util.cc; base64.cc only contains a single utility > function. > * rename hdfs_public_api.h/cc to hdfs_ioservice.h/cc. Originally all of the > implementation declarations of the public API classes like FileSystemImpl > were going to live in here. Currently only the hdfs::IoServiceImpl lives in > there and the other Impl classes have their own dedicated files. > Like any refactoring some of it comes down to personal preferences. My hope > is that by breaking these into smaller patches/commits relatively fast > forward progress can be made on stuff everyone agrees while things that > people are concerned about can be worked out in a way that satisfies everyone. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org