bluestore中lru和2q缓存和onode_map的联系

2023-11-08

collection对应于某个pg,里面有OnodeSpace结构的onode_map变量。OnodeSpace结构的变量内又有Cache结构的cache指针变量和unordered_map的onode_map变量,这个onode_map变量是用来存放这个collection里面所有onode的extent map的元数据信息的,是一个无排序的map;Cache结构的cache指针变量有两种模式,一种是lru一种是2q,onode是以lru模式来管理的。

 

缓存链表和onode_map的联系上,缓存链表中记录的onode与onode_map中记录的onode 在数量和内容上都是相同的,顺序可能不同。换句话说,如果onode_map里保存了10个onode,那么缓存链表里也保存了10个相同的onode,只是这两个结构保存的顺序可能不同。

 

缓存链表管理中,以lru链表为例。会定时调用trim,作用是如果链表内元素数超过了指定的最大值,便不断把链表尾部的元素删除,直到链表内元素数小于指定的最大值。与此同时也会删除onode_map中相应的元素,即保证onode_map内元素的内容和链表中的一致,从而达到间接的缓存管理。

 

这里不清楚为什么onode_map不和lru链表合并起来,合并起来可以减少内存开销。

 

关于元数据缓存刷写的处理,创建TransContext结构,在调用_txc_add_transaction的过程中创建或者从缓存获取或者从硬盘读出onode结构,之后完成指定op code的操作后,做write_onode的操作,write_onode则是把onode结构放入txc里的onodes结构。之后在调用_txc_write_nodes中,对txc->onodes里的onode做up

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bluestore中lru和2q缓存和onode_map的联系 的相关文章

  • Linux下安装mysql完整教程

    https blog csdn net lizy928 article details 82531749
  • 汽车自动驾驶现状及挑战

    来源 ATC汽车技术会议 自动驾驶现况 自动驾驶技术的发展可以追溯到20世纪60年代 目前总共有六个阶段 从L0级到L5级阶段 L0 无自动化 没有任何自动驾驶功能或技术 L1 手动驾驶辅助 驾驶员仍然对行车安全负责 不过可以授权部分控制权
  • django报错:django.db.utils.ProgrammingError: (1146, “Table ‘xxx‘ doesn‘t exist“)

    问题描述 交接django项目后 启动项目时报错 django db utils ProgrammingError 1146 Table app perf django apscheduler djangojob doesn t exist
  • 那些年我们一起优化的SQL

    一 背景 随着业务不断迭代 系统中出现了较多的SQL慢查 慢查虽不致命 但会让商家感知到系统较慢 影响使用体验 在进行慢查优化过程中 我们积累了一些经验 本文将基于我们的实战经历 讲解工作中比较常见的慢查原因 以及如何去优化 本文讲解基于M
  • Python 爬虫之GRequests异步模块

    Python 爬虫之GRequests异步模块 十分想念顺店杂可 运行环境 系统 win10 Python版本 Python 3 6 6 GRequests是异步非阻塞的异步请求第三方包 使用了协程gevent GRequests封装了ge
  • PC端微信打不开小程序解决

    PC端微信点击小程序之后没有啥反应 可以使用下面的方法解决 右键桌面的微信快捷方式 属性 兼容性 勾选上以兼容模式运行这个程序即可
  • 141.判断链表是否有环操作

    单链表与环的情况 1 判断链表是否有环 对于这个问题我们可以采用 快慢指针 的方法 就是有两个指针fast和slow 开始的时候两个指针都指向链表头head 然后在每一步操作中slow向 前走一步即 slow slow gt next 而f
  • 【IDEA】IDEA 接口方法不能跳转到实体类实现方法的问题

    1 概述 在做 Flink Flink 1 13 编译 的时候 最后执行命令 flink 1 13 mvn clean install Dmaven test skip true Dhadoop version 2 8 3
  • 【数据架构系列-02】从《数据中台能力成熟度模型》的发布,聊聊火了的中台

    热点之所以会 热起来 是由于万众瞩目的那份炽烈 也是因为无数双 手 的奋力炒作 所以 要穿过那 缭绕烟雾 看到本质 便需要冷静的头脑 2023年1月4日 信通院发布了 数据中台能力成熟度模型 框架 不由让我浮想联翩 之后是不是还会出现业务中
  • vetur mode_modules Cannot find name template 红色波浪不显示

    解决方法 打开文件 首选项 设置中搜索Vetur 拉到最底部 不勾选勾选Script即可 勾选前 取消后
  • 【配置环境】Visual Studio 配置 OpenCV

    目录 一 环境 二 下载和配置 OpenCV 三 创建一个 Visual Studio 项目 四 配置 Visual Studio 项目 五 编写并编译 OpenCV 程序 六 解决CMake编译OpenCV报的错误 七 本人编译好的库 一
  • 解决:vue组件顶部留有空白问题

    问题 制作导航栏组件时发现无论怎么调整 顶部始终留有一小部分空白 解决 后来经过多方查找 原来是index html的body自带样式 在该文件的头部写如下自定义样式 问题解决
  • Windows10下载到U盘怎么安装?

    Windows10系统是目前主流的操作系统之一 很多用户把Win10系统下载到U盘后不知道怎么安装了 那么下面小编就给大家分享一下Windows10下载到U盘的具体安装教程 准备工作 1 U盘一个 尽量使用8G以上的U盘 2 在本页面下载U
  • 攻防世界-web篇(php_rce)详解

    每日一题 今天我们来攻防世界web篇 php rce 目录 1 利用system函数远程命令执行 2 查找文件目录 3 进入flag目录 4 查看flag文件拿到flag 首先打开题目 这里我们可以看到打开后是一个ThinkPHP V5的界
  • 【目标检测】1、基础内容

    文章目录 1 目标检测是什么 2 目标检测基础 2 1 候选框提取 2 2 特征提取 2 3 分类器 3 目标检测性能评估参数 4 NMS 非极大值抑制 4 数据集 新方法 RFCN Mask RCNN等 5 注意力机制 6 全卷积网络 F
  • GIS地理信息定位系统

    简介 地理信息系统 GIS Geographic Information System 是一门综合性学科 结合地理学与地图学以及遥感和计算机科学 已经广泛的应用在不同的领域 是用于输入 存储 查询 分析和显示地理数据的计算机系统 随着GIS
  • 学习笔记。张飞硬件设计视频1到23

    寒假在家学习 讲得很好 分享一下
  • 漫谈ELK在大数据运维中的应用

    圈子里关于大数据 云计算相关文章和讨论是越来越多 愈演愈烈 行业内企业也争前恐后 群雄逐鹿 而在大数据时代的运维挑站问题也就日渐突出 任重而道远了 本文旨在针对复杂的大数据运维系统推荐一把利器 达到抛砖引玉的效果 如果文中出现任何纰漏和错误
  • adfs服务器获取信息失败,在使用Fiddler或其他诊断工具时无法登陆到ADFS服务器

    在使用Fiddler或其他诊断工具时无法登陆到ADFS服务器 03 29 2016 2 分钟可看完 本文内容 问题描述 当使用Fiddler或其他诊断工具进行ADFS 排错时 用户从内部登录ADFS会反复弹窗要求进行身份验证 示例图如下 问

随机推荐

  • 教你一招永久去除WPS广告

    WPS的广告挺烦人的 一直以为无法去除 直到打开了配置工具 隐藏的够深的 首先打开WPS的配置工具 打开高级 选择其他选项 然后WPS广告的勾选项全部去掉
  • UbuntuServer虚拟机安装

    UbuntuServer虚拟机安装 目录 UbuntuServer虚拟机安装 环境 步骤 创建UbuntuServer虚拟机 UbuntuServer安装 环境 VMware Workstation Pro 15 1 0 Ubuntu Se
  • 【Spark NLP】第 2 章:自然语言基础

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • pycharm下载安装

    接下来安装pycharm 1 首先从网站下载pycharm 点击打开链接 链接为 http www jetbrains com pycharm download section windows 进入之后如下图 根据自己电脑的操作系统进行选择
  • Linux的介绍

    简介 主要介绍Linux的概念 Linux是一款操作系统 类似与Windows 开源 免费 安全 高校 稳定 非常擅长处理高并发 现在大多数企业级项目都是部署在Linux系统的服务器中运行 Linux的创始人是Linus 吉祥物是一只叫Tu
  • 深入理解Mysql索引底层数据结构与算法

    索引是帮助MySQL高效获取数据的排好序的数据结构 索引数据结构对比 二叉树 左边子节点的数据小于父节点数据 右边子节点的数据大于父节点数据 如果col2是索引 查找索引为89的行元素 那么只需要查找两次 就可以获取到行元素所在的磁盘指针地
  • [labtools 27-2269]no devices detected on target localhost问题解决

    小白刚学FPGA 以流水灯为例入门 在连接板子的时候遇到了这个问题 记录一下 板子型号 xc7z045ffg900 2 解决办法之一 按照table 1 11更改图1 3里34位置处拨码
  • Linux系统中 systemd-journaldCPU占用异常的解决方法

    一 待解决问题 先贴几张图 问题解决之前最头疼的问题 因打印日志的高占用 以致CPU占用高达96 已经无法满足日常使用 从图中可见systemd journald占用了1 4的CPU资源 注 我是用的是Deepin系统 二 解决办法 因为要
  • SpringBoot2.x 集成Hadoop3.0.3 实现HDFS文件系统管理

    任务要求 搭建SpringBoot 2 x 集成Hadoop3 0 3环境 实现Hadoop 重要组成部分HDFS 文件系统管理的封装 核心pom xml 文件
  • vSphere之vCLS

    vCLS vSphere Cluster Services 是在vSphere7 0U1引入的集群服务 它使用代理虚拟机维护集群服务的运行状况 当主机添加到集群时 将创建 vCLS 代理虚拟机 vCLS vm 每个 vSphere 集群中最
  • Dell工作站8T硬盘安装ubuntu 16.04

    Dell工作站8T硬盘安装ubuntu 16 04 MBR文件系统仅支撑2T磁盘 因此在2T以上磁盘上安装ubuntu时 如果想利用全部磁盘空间 需要采用GPT分区 文件系统 模型 这需要重新分区 制作Ubuntu 16 04启动U盘 一
  • js-语言基础进阶-变换按钮的实现

    作者 芝士小熊饼干 系列专栏 数据结构 蓝桥杯 算法 坚持天数 16天
  • 从零搭建Maven私有仓库

    前言 主要使用到的技术 linux docker sonatype nexus maven 1 nexus3介绍 世界上第一个也是唯一一个免费使用的通用工件存储库 2 使用docker安装nexus3 1 下载 使用命令 docker pu
  • 20201105枚举课后总结

    文章目录 枚举 210733 奶牛碑文 http wikioi cn problem 210733 题目描述 输入格式 输出格式 样例输入 样例输出 思路 1 2 代码 210792 分解质因数 http wikioi cn problem
  • java会话技术--03--Session覆盖问题

    java会话技术 03 Session覆盖问题 代码位置 https gitee com DanShenGuiZu learnDemo tree master sessionCookie learn 1 现象 同一域名 同一个服务 不同的端
  • 如何在 vue 项目中引入高德地图

    文章目录 前言 一 申请 地图api开发者key 二 在vue项目安装高德地图的包 三 使用 1 在自己的组件中引入高德地图类 2 编写初始化函数 3 添加插件 前言 相信在 web 开发中有不少项目都用到过地图 那么我们怎么在自己的项目中
  • 程序删除自己

    void DeleteApplicationSelf std string strFileName this char szCommandLine MAX PATH 10 设置本进程为实时执行 快速退出 SetPriorityClass G
  • RabbitMQ消息队列实战(1)—— RabbitMQ的体系

    RabbitMQ是一个开源的消息代理和队列服务器 用来在不同的应用之间共享数据 1983年 被认为是RabbitMQ的雏形的Teknekron创建 首次提出了消息总线的概念 中间经历过数个阶段的发展 一直到2004年 AMQP Advanc
  • Makefile中的$@ $^等常见的符号解析

    之前学过一些Makefile 但是长时间不看 里面的符号又不少 慢慢就忘记了 这次在看Makefile文件 就顺带整理一些常用的符号 以后查询起来也方便 表示目标 表示所有的依赖 lt 表示第一个依赖 即时赋值 延时赋值 附加 例如 CC
  • bluestore中lru和2q缓存和onode_map的联系

    collection对应于某个pg 里面有OnodeSpace结构的onode map变量 OnodeSpace结构的变量内又有Cache结构的cache指针变量和unordered map的onode map变量 这个onode map变