[
https://issues.apache.org/jira/browse/HBASE-22075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16869948#comment-16869948
]
Vladimir Rodionov commented on HBASE-22075:
-------------------------------------------
So, basically what we have discovered and confirmed is : *MOB feature is not
safe to use*. We have a patch, which fixes race condition issue and related
data loss, but the patch is quite large and a major rework of a MOB feature
itself. It has both: pluses and minuses: On a plus side - MOB compaction is not
Master orchestrated anymore and can be run in parallel, on a minus side - MOB
data is compacted during normal regular major compactions and it imposes
additional I/O load. Kind of pro- and contra- thing.
Meanwhile, the simplest mitigation/solution to a data loss is conversion MOB
table back to a regular one by setting *MOB_THRESHOLD* to a very large value,
which must to be large than any potential MOB value size:
# Alter MOB table
{code}
hbase shell> disable ‘table’
hbase shell> alter ‘table’, {NAME => ‘column-family’, MOB_THRESHOLD =>
10000000000}
hbase shell> enable ‘table’
{code}
# Run major compaction on this table
# Clean up MOB directory data for the table (its under
/hbase/data/mobdir/data/'table')
> Potential data loss when MOB compaction fails
> ---------------------------------------------
>
> Key: HBASE-22075
> URL: https://issues.apache.org/jira/browse/HBASE-22075
> Project: HBase
> Issue Type: Bug
> Components: mob
> Affects Versions: 2.1.0, 2.0.0, 2.0.1, 2.1.1, 2.0.2, 2.0.3, 2.1.2, 2.0.4,
> 2.1.3
> Reporter: Vladimir Rodionov
> Assignee: Vladimir Rodionov
> Priority: Critical
> Labels: compaction, mob
> Fix For: 2.0.6, 2.2.1, 2.1.6
>
> Attachments: HBASE-22075-v1.patch, HBASE-22075-v2.patch,
> HBASE-22075.test-only.0.patch, HBASE-22075.test-only.1.patch,
> HBASE-22075.test-only.2.patch, ReproMOBDataLoss.java
>
>
> When MOB compaction fails during last step (bulk load of a newly created
> reference file) there is a high chance of a data loss due to partially loaded
> reference file, cells of which refer to (now) non-existent MOB file. The
> newly created MOB file is deleted automatically in case of a MOB compaction
> failure, but some cells with the references to this file might be loaded to
> HBase.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)