Bigtable数据库:原理、应用与选型指南
1. Bigtable企业应用技术要点
1.1 带日志的内存写入
部分数据库支持将写入操作先在内存中完成,这种方式速度极快。同时,会将变更的小记录(即日志)写入磁盘,以确保服务器出现故障时数据的持久性。由于日志的体积小于将变更应用到磁盘上所有数据库结构的操作,因此保存速度更快。
1.2 并行数据摄入
向数据库写入大量数据时,需分散负载。若一个2PB的数据库分布在100台服务器上,但99%的新数据都集中在其中一台服务器上,这不仅毫无意义,还会导致数据摄入性能变差。
Bigtable数据库通过基于行键(有时也称为分区键)来分散数据,相邻的行键值会存储在同一数据块中。为确保新数据能分散到各服务器,应选择能保证新记录不在单台服务器的同一数据块上,而是分散存储在多台服务器的多个数据块中的行键。
Accumulo允许用户插入自己的负载均衡器实现,可根据需求将行数据集中存储或分散到集群中。Accumulo和HBase还支持局部性组,将同一行的特定列存储在一起,这对保证快速读取速度非常有用。Hypertable也支持类似功能,称为访问组。
1.3 内存缓存
数据库系统可能会面临极大的输入输出负载。在许多系统中,相同的数据经常被请求,如新闻网站展示各板块的最新新闻,将最新新闻缓存起来避免每次都从磁盘读取很重要。
当需要高速写入时,最有效的方法是将所有数据写入内存数据库文件,仅将日志(变更的简短描述)写入磁盘,这样能在保证系统故障时数据持久的同时提高吞吐量。
Hypertable是一种能主动缓存数据的数据
超级会员免费看
订阅专栏 解锁全文
834

被折叠的 条评论
为什么被折叠?



