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)