You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@carbondata.apache.org by ravipesala <gi...@git.apache.org> on 2017/04/04 10:32:38 UTC

[GitHub] incubator-carbondata pull request #729: [CARBONDATA-850] Fix the comment def...

Github user ravipesala commented on a diff in the pull request:

    https://github.com/apache/incubator-carbondata/pull/729#discussion_r109628000
  
    --- Diff: format/src/main/thrift/carbondata.thrift ---
    @@ -1,223 +1,226 @@
    -/**
    - * Licensed to the Apache Software Foundation (ASF) under one
    - * or more contributor license agreements.  See the NOTICE file
    - * distributed with this work for additional information
    - * regarding copyright ownership.  The ASF licenses this file
    - * to you under the Apache License, Version 2.0 (the
    - * "License"); you may not use this file except in compliance
    - * with the License.  You may obtain a copy of the License at
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one or more
    + * contributor license agreements.  See the NOTICE file distributed with
    + * this work for additional information regarding copyright ownership.
    + * The ASF licenses this file to You under the Apache License, Version 2.0
    + * (the "License"); you may not use this file except in compliance with
    + * the License.  You may obtain a copy of the License at
      *
    - *     http://www.apache.org/licenses/LICENSE-2.0
    + *    http://www.apache.org/licenses/LICENSE-2.0
      *
    - * Unless required by applicable law or agreed to in writing,
    - * software distributed under the License is distributed on an
    - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    - * KIND, either express or implied.  See the License for the
    - * specific language governing permissions and limitations
    - * under the License.
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
      */
     
     /**
    - * File format description for the carbon file format
    + * File format description for the CarbonData file format
      */
     namespace java org.apache.carbondata.format
     
     include "schema.thrift"
     include "dictionary.thrift"
     
     /**
    -* Information about a segment, that represents one data load
    -*/
    + * Information about a segment, that represents one data load
    + */
     struct SegmentInfo{
    -    1: required i32 num_cols; // Number of columns in this load, because schema can evolve . TODO: Check whether this is really required
    +    1: required i32 num_cols; // Number of columns in this load, because schema can evolve, different segments may have different columns
         2: required list<i32> column_cardinalities; // Cardinality of columns
     }
     
     /**
    -*	Btree index of one blocklet
    -*/
    + * Btree index of one blocklet
    + */
     struct BlockletBTreeIndex{
         1: required binary start_key; // Bit-packed start key of one blocklet
    -    2: required binary end_key;	// Bit-packed start key of one blocklet
    +    2: required binary end_key;	// Bit-packed end key of one blocklet
     }
     
     /**
    -*	Min-max index of one blocklet
    -*/
    + * Min-max index of one blocklet
    + */
     struct BlockletMinMaxIndex{
         1: required list<binary> min_values; //Min value of all columns of one blocklet Bit-Packed
         2: required list<binary> max_values; //Max value of all columns of one blocklet Bit-Packed
     }
     
     /**
    -* Index of one blocklet
    -**/
    + * Index of one blocklet
    + */
     struct BlockletIndex{
         1: optional BlockletMinMaxIndex min_max_index;
         2: optional BlockletBTreeIndex b_tree_index;
     }
     
     /**
    -* Sort state of one column
    -*/
    + * Sort state of one column
    + */
     enum SortState{
         SORT_NONE = 0; // Data is not sorted
         SORT_NATIVE = 1; //Source data was sorted
         SORT_EXPLICIT = 2;	// Sorted (ascending) when loading
     }
     
     /**
    -*	Compressions supported by Carbon Data.
    -*/
    + * Compressions supported by CarbonData.
    + */
     enum CompressionCodec{
         SNAPPY = 0;
     }
     
     /**
    -* Represents the data of one dimension one dimension group in one blocklet
    -*/
    -// add a innger level placeholder for further I/O granulatity
    + * Represents the data of one column page or one column page group in one blocklet.
    + * Currently CarbonData using snappy for compression directly, user can specify the different compression by ChunkCompressionMeta.
    + */
     struct ChunkCompressionMeta{
    -    1: required CompressionCodec compression_codec; // the compressor used
    -    /** total byte size of all uncompressed pages in this column chunk (including the headers) **/
    +    1: required CompressionCodec compression_codec; // The compressor used
    +    /** Total byte size of all uncompressed pages in this column chunk (including the headers) **/
         2: required i64 total_uncompressed_size;
    -    /** total byte size of all compressed pages in this column chunk (including the headers) **/
    +    /** Total byte size of all compressed pages in this column chunk (including the headers) **/
         3: required i64 total_compressed_size;
     }
     
     /**
    -* To handle space data with nulls
    -*/
    + * To handle space data with nulls
    + */
     struct PresenceMeta{
    -    1: required bool represents_presence; // if true, ones in the bit stream reprents presence. otherwise represents absence
    +    1: required bool represents_presence; // If true, ones in the bit stream reprents presence. otherwise represents absence
         2: required binary present_bit_stream; // Compressed bit stream representing the presence of null values
     }
     
     /**
    -* Represents a chunk of data. The chunk can be a single column stored in Column Major format or a group of columns stored in Row Major Format.
    -**/
    + * Represents a chunk of data. The chunk can be a single column stored in Column Major format or a group of columns stored in Row Major Format.
    + * For V1 format.
    + */
     struct DataChunk{
    -    1: required ChunkCompressionMeta chunk_meta; // the metadata of a chunk
    -    2: required bool rowMajor; // whether this chunk is a row chunk or column chunk ? Decide whether this can be replace with counting od columnIDs
    +    1: required ChunkCompressionMeta chunk_meta; // The metadata of a chunk
    +    2: required bool rowMajor; // Whether this chunk is a row chunk or column chunk, Decide whether this can be replace with counting of columnIDs.
     	/** The column IDs in this chunk, in the order in which the data is physically stored, will have atleast one column ID for columnar format, many column ID for row major format**/
         3: required list<i32> column_ids;
         4: required i64 data_page_offset; // Offset of data page
    -    5: required i32 data_page_length; // length of data page
    -    6: optional i64 rowid_page_offset; //offset of row id page, only if encoded using inverted index
    -    7: optional i32 rowid_page_length; //length of row id page, only if encoded using inverted index
    -    8: optional i64 rle_page_offset;	// offset of rle page, only if RLE coded.
    -    9: optional i32 rle_page_length;	// length of rle page, only if RLE coded.
    -    10: optional PresenceMeta presence; // information about presence of values in each row of this column chunk
    +    5: required i32 data_page_length; // Length of data page
    +    6: optional i64 rowid_page_offset; // Offset of row id page, only if encoded using inverted index
    +    7: optional i32 rowid_page_length; // Length of row id page, only if encoded using inverted index
    +    8: optional i64 rle_page_offset;	// Offset of rle page, only if RLE coded.
    +    9: optional i32 rle_page_length;	// Length of rle page, only if RLE coded.
    +    10: optional PresenceMeta presence; // Information about presence of values in each row of this column chunk
         11: optional SortState sort_state;
         12: optional list<schema.Encoding> encoders; // The List of encoders overriden at node level
    -    13: optional list<binary> encoder_meta; // extra information required by encoders
    +    13: optional list<binary> encoder_meta; // Extra information required by encoders
     }
     
     /**
    -* Represents a chunk of data. The chunk can be a single column stored in Column Major format or a group of columns stored in Row Major Format.
    -**/
    + * Represents a chunk of data. The chunk can be a single column stored in Column Major format or a group of columns stored in Row Major Format.
    + * For V2 format.
    + */
     struct DataChunk2{
    -    1: required ChunkCompressionMeta chunk_meta; // the metadata of a chunk
    -    2: required bool rowMajor; // whether this chunk is a row chunk or column chunk ? Decide whether this can be replace with counting od columnIDs
    +    1: required ChunkCompressionMeta chunk_meta; // The metadata of a chunk
    +    2: required bool rowMajor; // Whether this chunk is a row chunk or column chunk, Decide whether this can be replace with counting of columnIDs.
    --- End diff --
    
    `Decide whether this can be replace with counting of columnIDs` we can remove this part as we are deciding based on the schema file.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---