<commit_before>##Tera分布式存储系统介绍

###1 Tera及其特性
Tera是一个实时的，自动负载均衡的，可伸缩的高性能分布式存储系统，用来管理搜索引擎万亿量级的超链与网页信息。
####Tera的主要特性
**全局有序：** 整个表格按主键有序，可以高效访问一个小的区间（如获取某个站点的全部链接，只需要和少数节点通信）。

**自动负载均衡：**系统自动处理局部数据分布不均，对数据量大的热点区域自动分割，将负载到转移到更多机器。（数据分布不均、数据热点区域）

**按列存储：**表格按照行排列，但可以设置不同的列分别存储（可以在不同的物理介质上），比如调度相关属性列全内存存储（linkcache），链接短属性flash存储（linkbase相关），而长属性可以存储在硬盘上（网页库），提高数据访问效率。

**多版本存储： **对于部分属性，可以指定存储一定时间内、一定数量的历史版本，用于更新对比和历史问题追查。

其他的特性还有：*数据的强一致性*，*动态schema*，*自动垃圾回收*等.

###2 Tera的数据模型和架构
####2.1 数据模型
首先来看一下传统的关系型数据库的模型，也就是**_ER_** 模型。 
 ![webtable_er](https://github.com/yoyzhou/tera/blob/master/resources/images/webtable_er.png)
体现在数据库中就是如下的数据表以及建立在列上的索引。<commit_msg>Update tera_intro.md<commit_after>##Tera分布式存储系统介绍

###1 Tera及其特性
Tera是一个实时的，自动负载均衡的，可伸缩的高性能分布式存储系统，用来管理搜索引擎万亿量级的超链与网页信息。
####Tera的主要特性
**全局有序：** 整个表格按主键有序，可以高效访问一个小的区间（如获取某个站点的全部链接，只需要和少数节点通信）。

**自动负载均衡：**系统自动处理局部数据分布不均，对数据量大的热点区域自动分割，将负载到转移到更多机器。（数据分布不均、数据热点区域）

**按列存储：**表格按照行排列，但可以设置不同的列分别存储（可以在不同的物理介质上），比如调度相关属性列全内存存储（linkcache），链接短属性flash存储（linkbase相关），而长属性可以存储在硬盘上（网页库），提高数据访问效率。
**多版本存储：**对于部分属性，可以指定存储一定时间内、一定数量的历史版本，用于更新对比和历史问题追查。

其他的特性还有：*数据的强一致性*，*动态schema*，*自动垃圾回收*等.

###2 Tera的数据模型和架构
####2.1 数据模型
首先来看一下传统的关系型数据库的模型，也就是**_ER_** 模型。 
 ![webtable_er](https://github.com/yoyzhou/tera/blob/master/resources/images/webtable_er.png)
体现在数据库中就是如下的数据表以及建立在列上的索引。
{'fraction_non_alphanumeric': 0.16080777860882572, 'fraction_numerical': 0.005983545250560957, 'mean_word_length': 15.518518518518519, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2048764', 'n_tokens_mistral': 1061, 'n_tokens_neox': 1259, 'n_words': 39}