[
https://issues.apache.org/jira/browse/HDFS-8766?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
James Clampffer updated HDFS-8766:
----------------------------------
Attachment: HDFS-8766.HDFS-8707.001.patch
Changes in new patch:
-ran clang-format with google style
-simplified hdfs_internal's constructor, can't throw or end up in a bad state.
All of the real work is pushed into the hdfs_internal::connect(nn,port) method.
-got rid of shared_ptrs on promise objects where they weren't needed
-added mechanism for capturing human readable error messages in addition to
setting errno
There seems to be a race condition in the IoService teardown logic or the
underlying library that rarely shows up. Once I can catch that with
gdb+valgrind I'll add a shutdownIoService method to hdfs_internal to get rid of
the duplicate code that handles shutting down asio worker threads.
> Implement a libhdfs(3) compatible API
> -------------------------------------
>
> Key: HDFS-8766
> URL: https://issues.apache.org/jira/browse/HDFS-8766
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: hdfs-client
> Reporter: James Clampffer
> Assignee: James Clampffer
> Attachments: HDFS-8766.HDFS-8707.000.patch,
> HDFS-8766.HDFS-8707.001.patch
>
>
> Add a synchronous API that is compatible with the hdfs.h header used in
> libhdfs and libhdfs3. This will make it possible for projects using
> libhdfs/libhdfs3 to relink against libhdfspp with minimal changes.
> This also provides a pure C interface that can be linked against projects
> that aren't built in C++11 mode for various reasons but use the same
> compiler. It also allows many other programming languages to access
> libhdfspp through builtin FFI interfaces.
> The libhdfs API is very similar to the posix file API which makes it easier
> for programs built using posix filesystem calls to be modified to access HDFS.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)