一、偏移量索引
### --- 位置索引保存在index文件中
~~~ log日志默认每写入4K(log.index.interval.bytes设定的),会写入一条索引信息到index文件中,
~~~ 因此索引文件是稀疏索引,它不会为每条日志都建立索引信息。
~~~ log文件中的日志,是顺序写入的,由message+实际offset+position组成
~~~ 索引文件的数据结构则是由相对offset(4byte)+position(4byte)组成,
~~~ 由于保存的是相对第一个消息的相对offset,只需要4byte就可以了,可以节省空间,
~~~ 在实际查找后还需要计算回实际的offset,这对用户是透明的。
~~~ 稀疏索引,索引密度不高,但是offset有序,二分查找的时间复杂度为O(lgN),
~~~ 如果从头遍历时间复杂度是O(N)。
### --- 示意图如下:
~~~ 偏移量索引由相对偏移量和物理地址组成。
<