THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
字节数(bytes) | 原字节 (V2) | 含义 (Meaning) | 改动 (V3 difference) | ||
---|---|---|---|---|---|
MAGIC_STRING | 6 | 5473 4669 6c65 | TsFile | ||
VERSION_NUMBER | 6 | 3030 3030 3032 | version: 000002 | version: 000003 | |
Chunk Header | 1 | 01 | chunk header marker | Move to Chunk Header,rename to chunk type,05 means there is only one Page in a chunk without statistics | |
4 | 00 0000 03 | string长度为3 | int -> varInt | ||
3 | 73 2e33 | s.3 | |||
4 | 0000 0053 | Size of Chunk is 83 bytes | int -> varInt | ||
2 | 0003 | Datatype is float | short -> byte | ||
4 | 0000 0001 | Number of pages in chunk | remove this field | ||
2 | 0001 | Compression is Snappy | short 改成 byte | ||
2 | 0006 | Encoding is GORILLA | short 改成 byte | ||
Page Header | 4 | 0000 0020 | Uncompressed size of page data | ||
4 | 0000 001b | Compressed size of page data | int -> varInt | ||
Page Statistics | 8 | 0000 0000 0000 0001 | count | long -> varInt | |
8 | 0000 0000 0000 0001 | start_time | |||
8 | 0000 0000 0000 0001 | end_time | |||
4 | 4000 0000 | min_value(bool, text do not has this field) | |||
4 | 4000 0000 | max_value(bool, text do not has this field) | |||
4 | 4000 0000 | first_value | |||
4 | 4000 0000 | last_value | |||
8 | 4000 0000 0000 0000 | sum(bool, text do not has this field) | bool值需要支持sum,int、bool改成long类型 | ||
Page Data | 27 | 2004 1800 0d01 047f ff09 0138 0000 0000 0000 0001 0000 0040 c447 f8 | 27 bytes of data | 数据里的int类型,以及string前面的 | |
Chunk Group Footer | 1 | 00 | marker | move to chunk group header | |
4 | 0000 0010 | size of deviceId | int → varInt | ||
16 | 726f 6f74 2e74 7572 6269 6e65 312e 6431 | deviceId | |||
8 | 0000 0000 0000 0069 | chunk group data size | remove | ||
4 | 0000 0001 | chunk number | remove | ||
MemTable Version | 1 | 03 | MemTable version marker | remove | |
8 | 00 0000 0000 0000 65 | memtable version is 101 | remove | ||
Metadata Marker | 1 | 02 | the following is metadata | ||
ChunkMetadata(N个) | 4 | 0000 0003 | sensor名长度 | remove | |
4 | 732e 33 | s.1 | remove | ||
8 | 00 0000 0000 0000 0c | 该chunk的offset在12 | |||
2 | 0003 | data type is float | remove | ||
Chunk Statistics | 8 | 0000 0000 0000 0001 | chunk中有1个点 | long -> varInt | |
8 | 0000 0000 0000 0001 | start_time | |||
8 | 0000 0000 0000 0001 | end_time | |||
4 | 4000 0000 | min_value | |||
4 | 4000 0000 | max_value | |||
4 | 4000 0000 | first_value | |||
4 | 4000 0000 | last_value | |||
8 | 4000 0000 0000 0000 | sum | |||
TimeSeries Metadata(N个) | 1 | 新增 timeseries metadata type,若为00则表示不包含statistics | |||
4 | 00 0000 03 | sensor名长度 | int 改成 varInt | ||
3 | 73 2e33 | s.1 | |||
2 | 0003 | 数据类型为float | short -> byte | ||
8 | 0000 0000 0000 00a0 | ChunkMetadataList的offset | |||
4 | 0000 0041 | ChunkMetadataList的size | int 改成 varInt | ||
TimeSeries Statistics | 8 | 0000 0000 0000 0001 | 该序列在file中有1个点 | long 改成 varInt | |
8 | 0000 0000 0000 0001 | start_time | |||
8 | 0000 0000 0000 0001 | end_time | |||
4 | 4000 0000 | min_value | |||
4 | 4000 0000 | max_value | |||
4 | 4000 0000 | first_value | |||
4 | 4000 0000 | last_value | |||
8 | 4000 0000 0000 0000 | sum | |||
MetaDataIndex Node | 4 | 0000 0001 | 树的第二层,他有多少个孩子 | int -> varInt | |
MetaDataIndex Entry(N个) | 4 | 0000 0003 | sensor名长度为3 | int -> varInt | |
3 | 732e 33 | s.3 | |||
8 | 00 0000 0000 0000 e1 | offset of the child | |||
8 | 00 0000 0000 0001 26 | endOffset of the last child | |||
1 | 03 | Node type是Leaf_Measurement | |||
MetaDataIndex Node | 4 | 0000 0001 | 树的第一层,他有多少个孩子 | int -> varInt | |
MetaDataIndex Entry(N个) | 4 | 0000 0010 | size of deviceid is 16bytes | int -> varInt | |
16 | 726f 6f74 2e74 7572 6269 6e65 312e 6431 | name of deviceId | |||
8 | 0000 0000 0000 0126 | offset of the child | |||
8 | 0000 0000 0000 0142 | endOffset of the last child | |||
1 | 02 | Node type是Internal_Measurement | Node type改成LEAF_DEVICE | ||
total chunk number | 4 | 0000 0001 | total chunk number | remove | |
invalid chunk number | 4 | 0000 0000 | 无效的chunk number | remove | |
Version Info | 4 | 00 0000 01 | version pair的个数 | remove | |
Version Pair(N个) | 8 | 00 0000 0000 0000 9f | offset of current version | remove | |
8 | 00 0000 0000 0000 65 | 版本是101 | remove | ||
Bloom Filter | 4 | 0000 001f | bloom filter size | int 改成 varInt | |
31 | 00 0000 0040 0000 0000 0000 0000 0100 0000 2000 0000 0020 0000 0000 0000 0004 | bloom filter data | |||
4 | 0000 0100 | filter size | int 改成 varInt | ||
4 | 0000 0005 | hash function size | int 改成 varInt | ||
Footer | 4 | 0000 0078 | tsfile metadata size | 不能使用varInt,因为这个需要倒着读 | |
MAGIC_STRING | 6 | 5473 4669 6c65 | TsFile |
2 Comments
芮蕾
VERSION_NUMBER: "is changed to use 1 byte to represent since version 3"
宋超超
为什么索引在文件尾部,而不是先索引再数据?