Page 84 - 《软件学报》2021年第5期
P. 84

1308                                     Journal of Software  软件学报 Vol.32, No.5,  May 2021

                        扩容情况,而 B+树仅在需要时才开辟内存空间,相对而言,B+树索引可以节省更多的磁盘空间.
                    •   缺点:在构建索引的过程中,B+树索引结构需要频繁进行插入、删除节点以及调整树结构等操作,树的
                        构建过程比较复杂.
                    本节对两种主流索引结构进行了分析,实际上,它们同样不合适于链路跟踪型日志的存储与查询,需要设计
                 一个简单易理解、并且查询性能稳定的索引结构.
                 2.3   存储方案的设计目标
                    在第 1 节中提到了,利用 HDFS 技术实现存储系统的分布式架构对磁盘空间的压力较大,且从 HDFS 中读
                 写文件的速度是要显著慢于单节点机器的,需要设计一个更轻量的分布式架构,在满足整体存储性能的同时提
                 供较好的查询效率;此外,针对现有的多种数据库和 ELK 框架进行了分析.总的来看,上述方案并不合适于
                 LogView 数据的存储,需要设计一种新的存储方案,该方案需要满足以下 4 个目标.
                    (1)  轻量的分布式系统架构;
                    (2)  适合存储 LogView 这类链路跟踪型的具有较大字节量的日志;
                    (3)  设计简单易理解、查询性能稳定的索引结构;
                    (4)  符合第 1.3 节中提到的对于 LogView 的写入与查询性能的不同要求.

                 3    存储方案设计
                    本节主要对日志存储方案的系统整体架构设计、日志存储与写入的设计、索引结构的设计、内存空间使
                 用情况进行详细的分析介绍,最后列举了存储方案中存储存在的几项特殊情况的处理方法.
                 3.1   系统架构设计

                    日志存储的整体架构设计如图 4 所示,被监控的应用服务集群直接将监控日志上报到存储集群,由存储集
                 群对数据进行处理分析并存储成相应的数据文件与索引文件.
























                                            Fig.4    System architecture of logs storage
                                                 图 4   日志存储的系统架构
                 3.1.1    被监控应用集群
                    被监控集群中的每台机器上都存在多个被监控的应用服务,所以在上报日志信息时,每条日志信息都会记
                 录下对应的应用名、机器的 ip 标识,可以区分该条日志数据来源于哪台服务器上的哪个服务.
                    被监控的机器上的链路日志上报至存储集群的哪台机器上,是通过配置的路由信息进行指定的,比如图 4
   79   80   81   82   83   84   85   86   87   88   89