You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Wellington Chevreuil (JIRA)" <ji...@apache.org> on 2018/12/19 13:10:00 UTC

[jira] [Commented] (HBASE-21596) HBase Shell "delete" command can cause older versions to be shown even if VERSIONS is configured as 1

    [ https://issues.apache.org/jira/browse/HBASE-21596?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16724987#comment-16724987 ] 

Wellington Chevreuil commented on HBASE-21596:
----------------------------------------------

Sharing some thoughts I got while investigating this:

1) Real behaviour problem here is when VERSIONS => 1, because deleting a cell at specific TS would cause any previous version to be then available as long those are still in the memstore. It does not make sense to do so, if VERSIONS is set to 1, there should be no more than one version available. Behaviour is also inconsistent, as if memstore containing any previous versions has already been flush, then the given delete would cause no version to be available.

2) I believe the problem is not within Delete itself, it's working as expected, as we do want the ability to delete specific versions, when dealing with VERSIONS > 1. Maybe shell command description should be better written, as I have seen some users confused about the expected behaviour, mainly the sentence below from current hbase shell description:

{noformat}
When scanning, a delete cell suppresses older
versions. To delete a cell from  't1' at row 'r1' under column 'c1'
marked with the time 'ts1', do:
{noformat}

3) I think the ideal solution is to change behaviour from put operation, to actually cleanup or "delete mark" older versions for cells where number of versions is > then configured on family's VERSION attribute. I was thinking on following this direction, any thoughts/ideas are welcome.

> HBase Shell "delete" command can cause older versions to be shown even if VERSIONS is configured as 1
> -----------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-21596
>                 URL: https://issues.apache.org/jira/browse/HBASE-21596
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Wellington Chevreuil
>            Assignee: Wellington Chevreuil
>            Priority: Minor
>
> HBase Shell delete command is supposed to operate over an specific TS. If no TS is informed, it will assume the latest TS for the cell and put delete marker for it. 
> However, for a CF with VERSIONS => 1, if multiple puts were performed for same cell, there may be multiple cell versions on the memstore, so delete would only be "delete marking" one of those, and causing the most recent no marked one to be shown on gets/scans, which then contradicts the CF "VERSIONS => 1" configuration.
> This issue is not seen with deleteall command or using Delete operation from Java API.



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