加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡水站长网 (https://www.0318zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

保证缓存与数据库的双写一致性?

发布时间:2021-02-13 11:46:08 所属栏目:评论 来源:互联网
导读:报警接入和预处理 :对各种不同来源和协议的报警的原始数据解析为统一的报警记录; 报警丰富: 在报警处理过程中根据cmdb等配置信息库的管理信息,对原始报警的内容进行信息补充和完善的功能; 报警维护期: 应对日常变更、切换演练以及故障临时处置等场景下
  • 报警接入和预处理:对各种不同来源和协议的报警的原始数据解析为统一的报警记录;
  •  报警丰富:在报警处理过程中根据cmdb等配置信息库的管理信息,对原始报警的内容进行信息补充和完善的功能;
  •  报警维护期:应对日常变更、切换演练以及故障临时处置等场景下,提前屏蔽相关报警避免无效报警产生干扰;
  •  报警压缩:对于重复发生的报警信息,只记录报警的首次发生时间、末次发生时间和发生次数,减少报警的记录数,避免对用户查看和处理报警造成干扰。报警压缩的规则一般是由多个报警消息的属性值组成压缩因子,可根据不同的报警源和报警内容提前预置压缩因子的组合规则。常见的压缩因子包括:IP地址、报警对象、报警类别、报警策略、报警实例等;
  •  报警恢复:为了能够真实反映生产系统运行的故障和恢复的状态,除了常见的故障外,还有恢复报警的处理和关联机制。在已报警在监控对象恢复正常运行状态以后,需要监控工具能够及时准确的识别恢复的状态并产生恢复报警到监控报警平台。报警平台支持自动进行关联恢复,即自动找到对应的故障报警,然后进行关联,并将原报警设置为恢复状态。关联的算法可以灵活进行设置,需确保恢复报警的产生时间晚于故障报警;
  •  报警定级:报警的定级分为两个阶段,一是默认级别,即根据每个报警原始的严重程度定义,二是报警管理系统平台对多个独立的报警进行关联分析,重新定义新的报警级别;
  •  根因分析:随着监控策略的覆盖度和监控颗粒度的不断提升,在发生一个生产故障时会从关联的各个组件、各个层面产生大量报警,因此需要从众多报警中自动化找出根因的报警,成为报警处理重要目标;
  •  报警通知:对于某些重大报警,需要通知给相关的运维人员,采取相应的措施。

这是一个3叉(只是举例,真实会有很多叉)的BTree结构图,每一个方框块我们称之为一个磁盘块或者叫做一个block块,这是操作系统一次IO往内存中读的内容,一个块对应四个扇区,紫色代表的是磁盘块中的数据key,黄色代表的是数据data,蓝色代表的是指针p,指向下一个磁盘块的位置。

来模拟下查找key为29的data的过程:

1、根据根结点指针读取文件目录的根磁盘块1。【磁盘IO操作1次】

2、磁盘块1存储17,35和三个指针数据。我们发现17<29<35,因此我们找到指针p2。

3、根据p2指针,我们定位并读取磁盘块3。【磁盘IO操作2次】

4、磁盘块3存储26,30和三个指针数据。我们发现26<29<30,因此我们找到指针p2。

5、根据p2指针,我们定位并读取磁盘块8。【磁盘IO操作3次】

6、磁盘块8中存储28,29。我们找到29,获取29所对应的数据data。

由此可见,BTree索引使每次磁盘I/O取到内存的数据都发挥了作用,从而提高了查询效率。

但是有没有什么可优化的地方呢?

我们从图上可以看到,每个节点中不仅包含数据的key值,还有data值。而每一个页的存储空间是有限的,如果data数据较大时将会导致每个节点(即一个页)能存储的key的数量很小,当存储的数据量很大时同样会导致B-Tree的深度较大,增大查询时的磁盘I/O次数,进而影响查询效率。

B+Tree索引

B+Tree是在B-Tree基础上的一种优化,使其更适合实现外存储索引结构。在B+Tree中,所有数据记录节点都是按照键值大小顺序存放在同一层的叶子节点上,而非叶子节点上只存储key值信息,这样可以大大加大每个节点存储的key值数量,降低B+Tree的高度。



(编辑:衡水站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读