Hi, Stephen and I are working on a project to make HBase to run on Ozone.
HBase, born out of the Hadoop project, depends on a number of HDFS specific APIs, including recoverLease() and isInSafeMode(). The HBase community [1] strongly voiced that they don't want the project to have direct dependency on additional FS implementations due to dependency and vulnerability management concerns. To make this project successful, we're exploring options, to push up these APIs to the FileSystem abstraction. Eventually, it would make HBase FS implementation agnostic, and perhaps enable HBase to support other storage systems in the future. We'd use the PathCapabilities API to probe if the underlying FS implementation supports these APIs, and would then invoke the corresponding FileSystem APIs. This is straightforward but the FileSystem would become bloated. Another option is to create a "RecoverableFileSystem" interface, and have both DistributedFileSystem (HDFS) and RootedOzoneFileSystem (Ozone). This way the impact to the Hadoop project and the FileSystem abstraction is even smaller. Thoughts? [1] https://lists.apache.org/thread/tcrp8vxxs3z12y36mpzx35txhpp7tvxv