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

尤勇  等:一种监控系统的链路跟踪型日志数据的存储设计                                                     1319


                 Segment 中最后一个 Entry 的值为当前最新的 index 值,即,更新索引文件的最后 8 个字节即可.此方案不需要在
                 单独的文件中存储 index 值,并且在每次更新索引文件时就可更新 index 值,不仅减少了文件 IO 操作,且本方案
                 可以有效降低 id 值重复的频率.之前通过单独文件存储 index 的方式在宕机后会造成上当前 3s 周期内所有
                 index 都会重复,而当前方案只会导致在内存块中的 LogView 对应 index 出现重复.

















                                              Fig.11    Design scheme of Index value
                                                 图 11   Index 值的设计方案
                    (5)  是否引入对 LogView 的缓存
                    理论上可以引入缓存机制,在内存中维护固定量的 LogView,并使用 LRU 策略进行更新.但是在第 1.3 节中
                 提到了 LogView 的查询具有偶发性、离散性的特点,在较小时间段内,某一条 LogView 被多次请求的情况极少,
                 即不存在热点数据,缓存机制无法有效的发挥作用,反而造成了额外的性能开销,所以此应用场景并不合适引入
                 缓存机制.
                 6    总结与未来工作

                    本文不仅介绍了我们针对 CAT 这个 APM 框架而设计的日志存储系统的整体架构,而且详细讲解了存储的
                 设计方案:使用内存块批量写入文件的方式提高写入效率、存储时采用了 Snappy 压缩算法节省磁盘空间,以及
                 设计了两层索引来提供较高的日志查询效率.从最后的性能测试结果来看,本文的存储方案基本满足了前文提
                 到的多项目标,且具有以下几个特点.
                    (1)  设计简单.在 LogView 的存储上,本文的两级索引结构与 hash 索引同样简捷、高效、易理解,而 B+树
                        索引则相对复杂.在索引结构中,它仅需记录地址信息,而另外两种需要额外记录 id 标识,所以在代码
                        的实现上也更容易,并且在索引构建时耗时相对更少.
                    (2)  性能稳定.存储方案中设计了更轻量的分布式系统架构,能够满足系统的整体读写性能;此外,两级的
                        索引结构也提供了稳定、高效的查询效率.在第 4.1 节的性能结果中展示了线上真实运行数据,一条
                        LogView 查询过程的平均耗时在 32.29ms,满足第 2.3 节中提出的业务需求.
                    (3)  通用性.本文的存储方案原则上是可以通用的,只要对应的日志数据具有全局唯一的 id 标识即可,该
                        方案也同样适用于前面所提到的 Tracing 类型数据的存储.
                    相对于已有的存储方案而言,除了上述几个显著特点以外,还存在其他设计优势:
                    (1)  该轻量级的分布式存储设计在 LogView 生成的时候就做了对应的“分库”操作,而其他现有的成熟数
                        据库则需要在后期数据量庞大的时候做“分库、分表、同步”等操作,造成性能上的问题.
                    (2)  存放在同一个数据文件中的 LogView 数据来自于同一个应用实例,而来自于同一个实例的日志存在
                        更多的相似数据,能够使得压缩算法具有更高的压缩率,节省更多的存储空间.
                    本文设计方案的创新性与贡献也同样在于上述特点与优势.
   90   91   92   93   94   95   96   97   98   99   100