[ 
https://issues.apache.org/jira/browse/HBASE-18784?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sean Busbey updated HBASE-18784:
--------------------------------
    Release Note: 
<!-- markdown -->

If HBase is run on top of Apache Hadoop libraries that support the needed APIs 
it will verify that underlying Filesystem implementations provide the needed 
durability mechanisms to safely operate. The needed APIs *should* be present in 
Hadoop 3 release and Hadoop 2 releases starting in the Hadoop 2.9 series. If 
the APIs are not available, HBase behaves as it has in previous releases (that 
is, it moves forward assuming such a check would pass).

Where this check fails, it is unsafe to rely on HBase in a production setting. 
In the event of process or node failure, the HBase RegionServer process may 
fail to have access to all the data it previously wrote to its write ahead log, 
resulting in data loss. In the event of process or node failure, the HBase 
master process may lose all or part of the write ahead log that it relies on 
for cluster management operations, leaving the cluster in an inconsistent state 
that we aren't sure it could recover from.

Notably, the LocalFileSystem implementation provided by Hadoop reports 
(accurately) via these new APIs that it can not provide the durability HBase 
needs to operate. As such, the current instructions for single-node HBase 
operation have been updated both with a) how to bypass this safety check and b) 
a strong warning about the dire consequences of doing so outside of a dev/test 
environment.

  was:
<!-- markdown -->

If HBase is run on top of Apache Hadoop libraries that support the needed APIs, 
it will verify that underlying Filesystem implementations provide the needed 
durability mechanisms to safely operate. The needed APIs *should* be present in 
Hadoop 3 release and Hadoop 2 releases starting in the Hadoop 2.9 series. If 
the APIs are not available, HBase behaves as it has in previous releases (that 
is, it moves forward assuming such a check would pass).

Where this check fails, it is unsafe to rely on HBase in a production setting. 
In the event of process or node failure, the HBase RegionServer process may 
fail to have access to all the data it previously wrote to its write ahead log, 
resulting in data loss. In the event of process or node failure, the HBase 
master process may lose all or part of the write ahead log that it relies on 
for cluster management operations, leaving the cluster in an inconsistent state 
that we aren't sure it could recover from.

Notably, the LocalFileSystem implementation provided by Hadoop reports 
(accurately) via these new APIs that it can not provide the durability HBase 
needs to operate. As such, the current instructions for single-node HBase 
operation have been updated both with a) how to bypass this safety check and b) 
a strong warning about the dire consequences of doing so outside of a dev/test 
environment.


> Use of filesystem that requires hflush / hsync / append / etc should query 
> outputstream capabilities
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-18784
>                 URL: https://issues.apache.org/jira/browse/HBASE-18784
>             Project: HBase
>          Issue Type: Improvement
>          Components: Filesystem Integration
>    Affects Versions: 1.4.0, 2.0.0-alpha-2
>            Reporter: Sean Busbey
>            Assignee: Sean Busbey
>            Priority: Major
>             Fix For: 2.0.0
>
>         Attachments: HBASE-18784-branch-1.v2.patch, HBASE-18784.0.patch, 
> HBASE-18784.1.patch, HBASE-18784.2.patch
>
>
> In places where we rely on the underlying filesystem holding up the promises 
> of hflush/hsync (most importantly the WAL), we should use the new interfaces 
> provided by HDFS-11644 to fail loudly when they are not present (e.g. on S3, 
> on EC mounts, etc).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to