You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Matteo Bertozzi (JIRA)" <ji...@apache.org> on 2014/03/27 21:41:19 UTC

[jira] [Updated] (HBASE-10854) Multiple Row/VisibilityLabels visible while in the memstore

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

Matteo Bertozzi updated HBASE-10854:
------------------------------------

    Description: 
If we update the row multiple times with different visibility labels
we are able to get the "old version" of the row until is flushed
{code}
$ sudo -u hbase hbase shell
hbase> add_labels 'A'
hbase> add_labels 'B'
hbase> create 'tb', 'f1'
hbase> put 'tb', 'row', 'f1:q', 'v1', {VISIBILITY=>'A'}
hbase> put 'tb', 'row', 'f1:q', 'v1all'
hbase> put 'tb', 'row', 'f1:q', 'v1aOrB', {VISIBILITY=>'A|B'}
hbase> put 'tb', 'row', 'f1:q', 'v1aAndB', {VISIBILITY=>'A&B'}
hbase> scan 'tb'
row column=f1:q, timestamp=1395948168154, value=v1aAndB
1 row

$ sudo -u testuser hbase shell
hbase> scan 'tb'
row column=f1:q, timestamp=1395948168102, value=v1all
1 row
{code}

When we flush the memstore we get a single row (the last one inserted)
so the testuser get 0 rows now.
{code}
$ sudo -u hbase hbase shell
hbase> flush 'tb'
hbase> scan 'tb'
row column=f1:q, timestamp=1395948168154, value=v1aAndB
1 row

$ sudo -u testuser hbase shell
hbase> scan 'tb'
0 row
{code}

  was:
If we update the row multiple times with different visibility labels
we are able to get the "old version" of the row until is flushed
{code}
$ sudo -u hbase hbase shell
hbase> add_labels 'A'
hbase> add_labels 'B'
hbase> create 'tb', 'f1'
hbase> put 'tb', 'row', 'f1:q', 'v1', {VISIBILITY=>'A'}
hbase> put 'tb', 'row', 'f1:q', 'v1all'
hbase> put 'tb', 'row', 'f1:q', 'v1aOrB', {VISIBILITY=>'A|B'}
hbase> put 'tb', 'row', 'f1:q', 'v1aAndB', {VISIBILITY=>'A&B'}
hbase> scan 'tb'
row column=f1:q, timestamp=1395948168154, value=v1aAndB
1 row

$ sudo -u hbase hbase shell
hbase> scan 'tb'
row column=f1:q, timestamp=1395948168102, value=v1all
1 row
{code}

When we flush the memstore we get a single row (the last one inserted)
so the testuser get 0 rows now.
{code}
$ sudo -u hbase hbase shell
hbase> flush 'tb'
hbase> scan 'tb'
row column=f1:q, timestamp=1395948168154, value=v1aAndB
1 row

$ sudo -u hbase hbase shell
hbase> scan 'tb'
0 row
{code}


> Multiple Row/VisibilityLabels visible while in the memstore
> -----------------------------------------------------------
>
>                 Key: HBASE-10854
>                 URL: https://issues.apache.org/jira/browse/HBASE-10854
>             Project: HBase
>          Issue Type: Bug
>          Components: security
>    Affects Versions: 0.98.1
>            Reporter: Matteo Bertozzi
>
> If we update the row multiple times with different visibility labels
> we are able to get the "old version" of the row until is flushed
> {code}
> $ sudo -u hbase hbase shell
> hbase> add_labels 'A'
> hbase> add_labels 'B'
> hbase> create 'tb', 'f1'
> hbase> put 'tb', 'row', 'f1:q', 'v1', {VISIBILITY=>'A'}
> hbase> put 'tb', 'row', 'f1:q', 'v1all'
> hbase> put 'tb', 'row', 'f1:q', 'v1aOrB', {VISIBILITY=>'A|B'}
> hbase> put 'tb', 'row', 'f1:q', 'v1aAndB', {VISIBILITY=>'A&B'}
> hbase> scan 'tb'
> row column=f1:q, timestamp=1395948168154, value=v1aAndB
> 1 row
> $ sudo -u testuser hbase shell
> hbase> scan 'tb'
> row column=f1:q, timestamp=1395948168102, value=v1all
> 1 row
> {code}
> When we flush the memstore we get a single row (the last one inserted)
> so the testuser get 0 rows now.
> {code}
> $ sudo -u hbase hbase shell
> hbase> flush 'tb'
> hbase> scan 'tb'
> row column=f1:q, timestamp=1395948168154, value=v1aAndB
> 1 row
> $ sudo -u testuser hbase shell
> hbase> scan 'tb'
> 0 row
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)