You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "wuchengzhi (JIRA)" <ji...@apache.org> on 2015/01/04 11:48:34 UTC

[jira] [Commented] (PHOENIX-1570) Data missing when using local index

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

wuchengzhi commented on PHOENIX-1570:
-------------------------------------

and i try to select less columns as : 
select a,b,c,d,e,f,g,h,i,j,k,l,n,o,p,q,r,s from Miss_data_table where q = '102218';
+----------+--------------+------+------+------+------+-----------------------+--------+------+-----------+------+------+------+------+---------+--------+------+------+
| A        | B            | C    | D    | E    | F    | G                     | H      | I    | J         | K    | L    | N    | O    | P       | Q      | R    | S    |
+----------+--------------+------+------+------+------+-----------------------+--------+------+-----------+------+------+------+------+---------+--------+------+------+
| 96660688 | hello/TEST-0 | 156  | -1   | -1   | 0    | 2013-02-14 18:34:05.0 | TEST-1 | 0    | 495839182 | 0    | 50   | 0    | 0    | 1818378 | 102218 | 0    | 26   |
+----------+--------------+------+------+------+------+-----------------------+--------+------+-----------+------+------+------+------+---------+--------+------+------+

for select a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t from Miss_data_table where q = '102218';
the keyvalue bytes return by server was:
[-113, -43, 0, 0, 0, 40, 0, 0, 0, 32, 0, 0, 0, 0, 0, 17, 0, 0, 49, 48, 50, 50, 49, 56, 0, -128, 0, 0, 0, 5, -62, -20, -48, 1, 48, 95, 48, 0, 0, 1, 74, 118, -27, 61, 125, 4, 0, 0, 0, -91, 0, 0, 0, 31, 0, 0, 0, 126, 0, 17, 0, 0, 49, 48, 50, 50, 49, 56, 0, -128, 0, 0, 0, 5, -62, -20, -48, 2, 95, 118, 0, 0, 1, 74, 118, -27, 61, 125, 4, 12, 104, 101, 108, 108, 111, 47, 84, 69, 83, 84, 45, 48, -128, 0, 0, -100, 127, -1, -1, -1, 127, -1, -1, -1, -128, 0, 0, 0, 21, 50, 48, 49, 51, 45, 48, 50, 45, 49, 52, 32, 49, 56, 58, 51, 52, 58, 48, 53, 46, 48, 6, 84, 69, 83, 84, 45, 49, -128, 0, 0, 0, 9, 52, 57, 53, 56, 51, 57, 49, 56, 50, -128, 0, 0, 0, 2, 53, 48, -128, 0, 0, 0, -128, 0, 0, 0, 7, 49, 56, 49, 56, 51, 55, 56, -128, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 26, 8, 50, 48, 49, 52, 49, 50, 48, 49, 0, 0, 0, 0, 0, 3, -9, -1, 0, 1]

then try to retrieve the value of each field, but when it call ValueBitSet.get(int nBit),  it retrun false frequently,so the data missing.but the bytes above it contains all the value of the fields.

ValueBitSet.java :
 public boolean get(int nBit) {
        int lIndex = nBit / BITS_PER_LONG;
        int bIndex = nBit % BITS_PER_LONG;
        return (bits[lIndex] & (1L << bIndex)) != 0;
 }

but when i select a,b,c,d,e,f,g,h,i,j,k,l,n,o,p,q,r,s from Miss_data_table where q = '102218'

the keyvalue bytes return by server was:
[-113, -60, 0, 0, 0, 40, 0, 0, 0, 32, 0, 0, 0, 0, 0, 17, 0, 0, 49, 48, 50, 50, 49, 56, 0, -128, 0, 0, 0, 5, -62, -20, -48, 1, 48, 95, 48, 0, 0, 1, 74, 118, -27, 61, 125, 4, 0, 0, 0, -108, 0, 0, 0, 31, 0, 0, 0, 109, 0, 17, 0, 0, 49, 48, 50, 50, 49, 56, 0, -128, 0, 0, 0, 5, -62, -20, -48, 2, 95, 118, 0, 0, 1, 74, 118, -27, 61, 125, 4, 12, 104, 101, 108, 108, 111, 47, 84, 69, 83, 84, 45, 48, -128, 0, 0, -100, 127, -1, -1, -1, 127, -1, -1, -1, -128, 0, 0, 0, 21, 50, 48, 49, 51, 45, 48, 50, 45, 49, 52, 32, 49, 56, 58, 51, 52, 58, 48, 53, 46, 48, 6, 84, 69, 83, 84, 45, 49, -128, 0, 0, 0, 9, 52, 57, 53, 56, 51, 57, 49, 56, 50, -128, 0, 0, 0, 2, 53, 48, -128, 0, 0, 0, -128, 0, 0, 0, 7, 49, 56, 49, 56, 51, 55, 56, -128, 0, 0, 0, -128, 0, 0, 0, 0, 0, 0, 26, -1, -1]

and ValueBitSet.get(int nBit) always return true.

> Data missing when using local index
> -----------------------------------
>
>                 Key: PHOENIX-1570
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1570
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.2.2
>         Environment: ubuntu 
> HBase 0.98.7
> Hadoop 2.5.1
> OS: ubuntu
>            Reporter: wuchengzhi
>            Priority: Critical
>
> 1. crate a table by the schema as below:
> CREATE TABLE IF NOT EXISTS Miss_data_table(
> a BIGINT NOT NULL,
> b VARCHAR,
> c INTEGER,
> d INTEGER,
> e INTEGER,
> f INTEGER,
> g VARCHAR,
> h VARCHAR,
> i INTEGER,
> j VARCHAR,
> k INTEGER,
> l VARCHAR,
> m VARCHAR,
> n INTEGER,
> o INTEGER,
> p VARCHAR,
> q VARCHAR,
> r INTEGER,
> s BIGINT,
> t VARCHAR CONSTRAINT pk PRIMARY KEY(a))
> 2.create local index for the table with column: q
> create local index idx_q on Miss_data_table (q);
> 3.upsert data into table.
> upsert into Miss_data_table values(96660688,'hello/TEST-0',156,-1,-1,0,'2013-02-14 18:34:05.0','TEST-1',0,'495839182',0,'50','',0,0,'1818378','102218',0,26,'20141201')
> 4. execute querys...
> select a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t from Miss_data_table where q = '102218';
> +----------+--------------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+--------+------+------+----------+
> | A        | B            | C    | D    | E    | F    | G    | H    | I    | J    | K    | L    | M    | N    | O    | P    | Q      | R    | S    | T        |
> +----------+--------------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+--------+------+------+----------+
> | 96660688 | hello/TEST-0 | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | 102218 | NULL | 26   | 20141201 |
> +----------+--------------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+--------+------+------+----------+
> select a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t from Miss_data_table where a=96660688;
> +----------+--------------+------+------+------+------+-----------------------+--------+------+-----------+------+------+------+------+------+---------+--------+------+------+----------+
> | A        | B            | C    | D    | E    | F    | G                     | H      | I    | J         | K    | L    | M    | N    | O    | P       | Q      | R    | S    | T        |
> +----------+--------------+------+------+------+------+-----------------------+--------+------+-----------+------+------+------+------+------+---------+--------+------+------+----------+
> | 96660688 | hello/TEST-0 | 156  | -1   | -1   | 0    | 2013-02-14 18:34:05.0 | TEST-1 | 0    | 495839182 | 0    | 50   | NULL | 0    | 0    | 1818378 | 102218 | 0    | 26   | 20141201 |
> +----------+--------------+------+------+------+------+-----------------------+--------+------+-----------+------+------+------+------+------+---------+--------+------+------+----------+
> // execute the query plain ,it shows we fetch data by local index.
> explain select a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t from Miss_data_table where q = '102218';
> +------------------------------------------+
> |                   PLAN                   |
> +------------------------------------------+
> | CLIENT 1-CHUNK PARALLEL 1-WAY RANGE SCAN OVER _LOCAL_IDX_TEST.MISS_DATA_TABLE [-32768,'102218'] |
> | CLIENT MERGE SORT                        |
> +------------------------------------------+



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)