《CLP: Efficient and Scalable Search on Compressed Text Logs》论文概括

CLP:压缩文本日志上进行高效和可扩展的压缩

一、问题定义:

本文介绍了CLP的设计和实现,CLP是一个能够无损压缩非结构化文本日志的工具,同时能够直接在压缩的数据上进行快速搜索。CLP是一个完整的端到端系统,用于读取、归档、搜索和分析日志信息;
要满足以下目标:
首先,日志是无损压缩的,用户可以删除原始日志,而且不用担心会对其进行破坏性的改变(例如,通过改变浮点值的精度)。第二,用户能够搜索他们的日志中的任何数值,这与基于索引的搜索不同,后者通常只允许搜索索引的数值。最后,CLP应该是高性能和可扩展的,用户可以用它来获取和搜索大量的日志数据,同时节省存储成本。

二、算法核心:

1. 基本概念
1.1 CLP的压缩包括两个步骤:首先,它将每个日志信息中高度重复的部分删除,并以特殊的格式进行编码,然后它将轻量级的压缩器应用于编码后的数据,进一步减少其大小。
1.2 CLP将每个消息分成三块。1)日志类型,通常是高度重复的静态文本;2)变量值;3)时间戳(如果消息包含时间戳)。CLP进一步将变量值分成两类,第一类是重复的,如各种标识符(如用户名),第二类是不重复的(如一项工作的完成时间)。第一类称为字典变量,第二类称为非字典变量。
1.3 一旦被解析,字典中的变量就存储在一个两级的变量字典中,被称为vDict,第一层将每个字典变量Schema映射到一个唯一的ID。每个Schema也被映射到一个指针上,该指针指向vDict的第二层,实际的变里值被存储在那里。


在图3中,Schema中的task ID、IP地址和container ID都被映射到第一层的ID 的0,1和2,而实际的变量值被存储在第二层。

1.4 非dictionary变量值会直接存储在编码的日志信息中。例如,"0.335"是使用IEEE-754标准讲行编码的,并存储为64位的编码信息中的值。CLP目前支持将浮点数和整数作为非字典变量进行编码。如果一个非字典变量不能在64位内精确编码(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值