Rockdb简介
背景
最近在使用flink的过程中,由于要存储的状态很大,所以使用到了rockdb作为flink的后端存储,本文就来简单看下rockdb的架构设计
Rockdb设计
Rockdb采用了LSM的结构,它和hbase很像,不过严格的说,基于LSM结构的存储都差不多,我们简单看一下它的架构图

写操作
1.写记录会先写入到WAL日志文件中,由于是顺序写,速度不会慢,然后再把记录写入内存中的memtable中,如果memtable达到阈值,就把这个memtable变成一个不可变的Immutable-memtable,此外会再创建出来一个新的memtable用于接收用户写入
2.Immutable-memtable内存表的数量达到上限后,会把他们的数据刷新到SSTable磁盘文件中,只保存固定数量的Immutable-memtable内存表
3.定期把低Level的sst文件合并成高Level的sst文件,其目的是为了清理已经被删除的记录,由于sstable文件是只Append,所以删除操作只有在文件合并的时候才会实际发生,此外,减少sst文件的个数,也有助于读取操作的性能
读操作
1.读首先读取memtable内存表,如果没有,从索引(布隆过滤器索引BloomFilterIndex或者数据索引DataIndex)中查找到记录所在的sstable文件的块位置,注意,索引(布隆过滤器索引BloomFilterIndex或者数据索引DataIndex)的数据最好是常驻内存的,也就是对于flink来说,state.backend.rocksdb.memory.high-prio-pool-ratio的配置值不要设置为0
2.获取到记录所在的sstable的对应数据块后,优先从内存中的BlockCache查找数据块,如果找到,查询结束,否则,继续下一步
3.读取sstable文件中的指定数据块的数据,返回记录后把对应的数据块放到BlockCache中,以便下次查找
相关文章:
Rockdb简介
背景 最近在使用flink的过程中,由于要存储的状态很大,所以使用到了rockdb作为flink的后端存储,本文就来简单看下rockdb的架构设计 Rockdb设计 Rockdb采用了LSM的结构,它和hbase很像,不过严格的说,基于LS…...
【MyBatis】写了 10 年的代码,我最怕写 MyBatis 这些配置,现在有详解了
在使用 mybatis 过程中,当手写 JavaBean和XML 写的越来越多的时候,就越来越容意出错。这种重复性的工作,我们当然不希望做那么多。 还好, mybatis 为我们提供了强大的代码生成--MybatisGenerator。 通过简单的配置,我们…...
全球地表水数据集JRC Global Surface Water Mapping Layers v1.4
简介: JRC Global Surface Water Mapping Layers产品,是利用1984至2020年获取的landsat5、landsat7和landsat8的卫星影像,生成分辨率为30米的一套全球地表水覆盖的地图集。用户可以在全球尺度上按地区回溯某个时间上地表水分的变化情况。产品…...
Spring过滤器和拦截器的区别
📑前言 本文主要Spring过滤器和拦截器的区别的问题,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&#x…...
HIS医疗项目
文章目录 医疗项目简介HIS项目介绍HIS架构解析HIS业务流程图HIS项目架构图 HIS组件解析——服务支撑 内存设置为4G或以上部署NGINX服务部署web安装JDK部署Elasticsearch安装ik中文分词器 部署rabbitmq部署MySQL服务安装MySQL服务建库、授权用户导入数据 部署Redis测试Redis 部署…...
eclipse启动无法找到类(自定义监听器)
一.报错 二.排查 1.首先检查代码是否有问题 本人报错是找不到监听器,故检查监听器的代码和web.xml文件是否有问题 public class DoorListener implements ServletContextListener 监听器是否继承并实现ServletContextListener中的方法。 web.xml中: &…...
Ubuntu openssh-server 离线安装
经常用到ubunutu 20.04容器,但是没有ssh比较难调试代码,离线环境下安装方法: 安装以下三个软件包,点击openssh下载链接可下载: 1、openssh-client_8.2p1-4_amd64.deb 2、openssh-sftp-server_8.2p1-4_amd64.deb 3、…...
servlet页面以及控制台输出中文乱码
如图: servlet首页面: servlet映射页面: 以及控制台输出打印信息: 以上页面均出现中文乱码 下面依次解决: 1、首页面中文乱码 检查你的html或者jsp页面中meta字符集 如图设置成utf-8 然后重启一下tomcat 2、servl…...
《向量数据库指南》——TruLens + Milvus Cloud构建RAG深入了解性能
深入了解性能 索引类型 本例中,索引类型对查询速度、token 用量或评估没有明显影响。这可能是因为数据量较小的关系。索引类型对较大语料库可能更重要。 Embedding 模型 text-embedding-ada-002 在准确性(0.72,平均 0.60)和答案相关度(0.82,平均0.62)上优于 MiniLM Embeddin…...
vscode代码上传到gitlab
打开终端 1.1输入一下内容提交到本地仓库 PS D:\VueProject2\mall-admin-web> git add . PS D:\VueProject2\mall-admin-web> git commit -m “商品优化,屏蔽不要内容” 1.2提交到远程仓库 master应该被替换为 Gitee 仓库中默认的分支名称 PS D:\VueProje…...
Spring Boot 项目的常用注解与依赖
工具类 lombok 依赖 可以快速的为类提供 get,set,toString 等方法 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional> </dependency> My…...
【C++11】多线程库 {thread线程库,mutex互斥锁库,condition_variable条件变量库,atomic原子操作库}
在C11之前,涉及到多线程问题,都是和平台相关的,比如windows和linux下各有自己的接口,这使得代码的可移植性比较差。 //在C98标准下,实现可移植的多线程程序 —— 条件编译 #ifdef _WIN32CreateThread(); //在windows系…...
智能导诊系统:基于机器学习和自然语言处理技术,可快速推荐合适的科室和医生
智能导诊系统是一种基于人工智能技术的新型系统,它能够为医院提供患者服务和管理,提高医院的管理效率和服务水平。 技术架构:springbootredismybatis plusmysqlRocketMQ 以下是智能导诊系统的应用场景和功能特点: 应用场景 1.患…...
如何防止图片抖动
如何防止图片抖动 什么是图片抖动,就是我们加载图片完成之后,图片显示,但是其下方内容会跟着下移,这就造成了图片抖动用户体验不好,我们想即使图片没加载出来,页面上也有一个空白的位置留给图片。 我们要知…...
依赖注入方式
依赖注入方式 思考:向一个类中传递数据的方式有几种? 普通方法(set方法)构造方法 思考:依赖注入描述了在容器中建立bean与bean之间关系依赖的过程,如果bean运行需要的是数字或字符串呢? 引用类…...
HTML 超链接 a 标签
在 HTML 标签中,a 标签用于定义超链接,作用是从一个页面链接到另一个页面。 在 a 标签中有两个常用的属性: - href 属性,用于指定链接目标的 url 地址(必须属性)。当为标签应用 href 属性时,…...
【cpolar】Ubuntu本地快速搭建web小游戏网站,公网用户远程访问
🎥 个人主页:深鱼~🔥收录专栏:cpolar🌄欢迎 👍点赞✍评论⭐收藏 目录 前言 1. 本地环境服务搭建 2. 局域网测试访问 3. 内网穿透 3.1 ubuntu本地安装cpolar 3.2 创建隧道 3.3 测试公网访问 4. 配置…...
数字化企业需要什么样的数据中心
随着科技的迅猛发展和数字化浪潮的涌现,企业越来越依赖于强大而高效的数据中心来支持其业务运营和创新发展。数字化企业需要一个先进的、灵活可扩展的数据中心来满足不断增长的数据需求、提高业务灵活性和确保安全性。 以下是数字化企业需要考虑的关键因素…...
el-table固定表头(设置height)出现内容过多时不能滚动问题
主要原因是el-table没有div包裹 解决:加一个div并设置其高度和overflow 我自己的主要代码 <div class"contentTable"><el-tableref"table":data"tableData"striperow-dblclick"onRowDblclick"height"100%&q…...
从流程优化到经营提效,法大大电子签全面助力智慧零售升级
在新零售模式下,“商业综合体、百货商场、连锁商超、连锁便利店、线上电商平台”等各类商业零售企业借助数字化的手段来改造和重塑传统零售流程和逻辑,实现全面数字化转型,包括线上线下一体化、全场景覆盖、全链条联通、全渠道经营、客户服务…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...
文件上传漏洞防御全攻略
要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...
