• 2024-09-28RocksDB代码分析——写入流程
    分析均基于v6.27.3。以下流程为了方便理解均经过了简化。首先,我们通过调用DB::Open来创建数据库,它返回了一个DB*。DB::Open内部调用了DBImpl::Open,在里面构造了一个DBImpl*并转换成DB*返回。所以我们拿到的DB*其实是DBImpl*。然后我们调用DB::Put来写入数据。DB::Put是个virtual
  • 2024-09-28RocksDB代码分析——LogAndApply
    这里我们主要分析VersionSet::LogAndApply是怎么管理writer队列的。参数里的edit_lists是需要被apply的改动。每个传入的columnfamilydata对应edit_lists里的一个editlist,即autovector<VersionEdit*>。接下来把每个editlist打包成一个ManifestWriter,放进std::deque<Manifest
  • 2024-09-28RocksDB代码分析——Flush流程
    这里从DBImpl::MaybeScheduleFlushOrCompaction开始讲起。DBImpl::MaybeScheduleFlushOrCompaction可能会scheduleDBImpl::BGWorkFlush和DBImpl::BGWorkCompaction。这里主要看Flush。Compaction部分见:{%post_linkStorage/'RocksDB代码分析——Compaction流程'%}DBImpl::BGWo
  • 2024-09-28RocksDB代码分析——Compaction的输入文件的选择
    这里主要分析LevelCompactionBuilder::PickCompaction是如何选择输入文件的。SetupInitialFiles();找一个需要compact到下层的SSTfile。只会在score>=1的level里找。score的计算见VersionStorageInfo::ComputeCompactionScore({%post_linkStorage/'RocksDB代码分析——Compa
  • 2024-09-28RocksDB代码分析——Compaction流程
    这里从DBImpl::MaybeScheduleFlushOrCompaction开始讲起。DBImpl::MaybeScheduleFlushOrCompaction可能会scheduleDBImpl::BGWorkFlush和DBImpl::BGWorkCompaction。这里主要看Compaction。Flush部分见{%post_linkStorage/'RocksDB代码分析——Flush流程'%}DBImpl::BGWorkCo
  • 2024-09-25调查一个osd的rocksdb问题
    开始喜欢ceph的话欢迎关注奋斗的cepher微信公众号阅读更多好文!关于osd的问题总是各种各样,奇奇怪怪,有bug相关的,也有环境相关的,或者是配置相关的,对于osd各种问题的处理,重点在思路,思路对了,问题就好解决了。本篇是一个集群有ssd的osd发生down,这本不是什么值得关注的事,osd的do
  • 2024-09-23Rocksdb 7.0.0 ~ 7.10.2 重要版本特性
    7.9.0(2022-11-21)现在可以提供对宽列数据模型的基本支持。可以使用API存储宽列实体PutEntity,并使用GetEntity和迭代器的新columnsAPI进行检索。为了兼容,经典APIGet和MultiGet以及迭代器的valueAPI返回宽列实体的匿名默认列的值;此外,GetEntity和迭代器的APIcolumns以仅具
  • 2024-09-20Rocksdb 6.3.6 ~ 6.29.5 重要版本特性
    6.20.0(2021-04-16)修复了在分布式/网络文件系统中,当服务器成功但客户端返回错误时处理文件重命名错误的错误。该错误会导致CURRENT文件指向不存在的MANIFEST文件,从而无法打开DB。6.19.0(2021-03-21)在flush过程中,只有WALsync可重试IOerror才会被映射到hard
  • 2024-09-19Rocksdb Background Error 处理
    错误严重性等级:Status::Severity::kSoftError -ErrorsofthisseveritydonotpreventwritestotheDB,butitdoesmeanthattheDBisinadegradedmode.Backgroundcompactionsandflushmaynotbeabletoruninatimelymanner.Status::Severity::kHardErr
  • 2024-08-04深入剖析Apache Flink的状态后端
    ApacheFlink的状态后端是其状态管理的核心组件,负责存储和管理Flink程序的状态信息。状态后端的选择直接影响到Flink程序的容错能力、性能以及与外部系统的集成能力。本文将详细介绍Flink中的不同状态后端,包括它们的工作原理、特点、适用场景以及如何配置和使用。一、Flink
  • 2024-08-04rocksdb安装与使用
    首先要安装gcc7.3以上版本,依赖于c++17.参见gcc7安装及4.8.5和7.5并存。需要rpm方式或源码安装gflags2.2,否则系统可能内置了gflags2.1,从而导致链接时一直找不到gflags库。如下:/tmp/ccUXmr9R.o:Infunction`__static_initialization_and_destruction_0(int,int)':/home/
  • 2024-04-23Flink状态编程:为什么不建议在ValueState里面存Map?
    Flink状态编程:为什么不建议在ValueState里面存Map?文章目录先说结论性能:TTL:State需要存什么数据Heap模式ValueState和MapState如何存储StateBackend模式如何存储和读写State数据1.RocksDB模式ValueState和MapState如何存储1.1ValueState如何映射为RocksDB
  • 2024-03-13编译GreatSQL with RocksDB引擎
    GreatSQL里也能用上RocksDB引擎1.前言RocksDB是基于Facebook开源的一种支持事务的、高度可压缩、高性能的MyRocks存储引擎,特别适用于高度压缩和大容量的数据。以下是一些关键特点:高性能:LSM树结构使得RocksDB在写入密集型负载下表现卓越。它能够处理大量的写入操作,并且
  • 2024-02-19NoSQL 数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!
    NoSQL数据库管理工具,搭载强大支持:Redis、Memcached、SSDB、LevelDB、RocksDB,为您的数据存储提供无与伦比的灵活性与性能!【官网地址】:http://www.redisant.cn/nosql介绍直观的用户界面从单一应用程序中同时连接Redis、Memcached、SSDB、LevelDB、RocksDB,你可以快速轻松地创建
  • 2023-12-08RocksDB 在 vivo 消息推送系统中的实践
    作者:vivo互联网服务器团队-ZengLuobin本文主要介绍了RocksDB的基础原理,并阐述了RocksDB在vivo消息推送系统中的一些实践,通过分享一些对RocksDB原生能力的探索,希望可以给使用RocksDB的读者带来启发。一、背景在消息推送系统中,业务方服务器通过调用推送接口向VPUSH
  • 2023-11-06Flink_state 的优化与 remote_state 的探索
    摘要:本文整理自bilibili资深开发工程师张杨,在FlinkForwardAsia2022核心技术专场的分享。本篇内容主要分为四个部分:相关背景state压缩优化Remotestate探索未来规划一、相关背景1.1业务概况从业务规模来讲,B站目前大约是4000+的Flink任务,其中95%是SQL类型。从部署模
  • 2023-10-21mysqldump之where用法
    文档课题:mysqldump之where用法.数据库:MySQL5.7.21应用场景:实际生产中,需要运用mysqldump导出指定条件的数据,并且以insert语句的形式呈现,如下为相关测试.1、数据库信息mysql>select*fromstaffs;+----+------+-----+---------+---------------------+|id|name|age|p
  • 2023-09-19rocksdb
    RocksDB:APersistentKey-ValueStoreforFlashandRAMStorageRocksDB:一个用于闪存和RAM存储的持久化键值存储数据库RocksDBisdevelopedandmaintainedbyFacebookDatabaseEngineeringTeam.ItisbuiltonearlierworkonLevelDBbySanjayGhemawat(sanjay@goo
  • 2023-09-18RocksDB存储简单使用
    简介rocksDB是一个可嵌入的,持久性的key-value存储。基于Google的LevelDB,但提高了扩展性可以运行在多核处理器上,可以有效使用快速存储,支持IO绑定、内存和一次写负荷。高性能:RocksDB使用一套日志结构的数据库引擎,为了更好的性能,这套引擎是用C++编写的。Key和value是任意大小的
  • 2023-07-04CockroachDB——类似spanner的开源版,底层使用rocksdb存储
    摘自:https://github.com/cockroachdb/cockroach/blob/master/docs/design.mdCockroachDBisadistributedSQLdatabase.Theprimarydesigngoalsare scalability, strongconsistency and survivability(hencethename).CockroachDBaimstotoleratedisk,machine,ra
  • 2023-06-27【翻译】rocksdb write stall
    翻译自官方wiki:https://github.com/facebook/rocksdb/wiki/Write-Stalls转载请注明出处:https://www.cnblogs.com/morningli/p/16791706.htmlwritestall当flush或compaction无法跟上写入的速率时,rocksdb有旁路系统来减慢写入速率。如果没有这样的系统,用户如果持续写入比硬件能
  • 2023-06-04高效稳定的通用增量 Checkpoint 详解之二:性能分析评估
    作者:雷颜菲、夏瑞、俞航翔、梅源|阿里云Flink存储引擎团队摘要:我们在“Flink1.15新功能架构解析:高效稳定的通用增量Checkpoint”【1】一文介绍了通用增量Checkpoint的原理和背后的思考以及执行性能、空间放大等方面的初步测试结果。该功能在Flink1.16中经过优化,已达到生
  • 2023-06-02怎样打造一个分布式数据库——rocksDB, raft, mvcc,本质上是为了解决跨数据中心的复制
    为什么我们要创建另外一个数据库?在前面三十年基本上是关系数据库的时代,那个时代创建了很多伟大的公司,比如说IBM、Oracle、微软也有自己的数据库,早期还有一个公司叫Sybase,有一部分特别老的程序员同学在当年的教程里面还可以找到这些东西,但是现在基本上看不到了。另外是NoSQL。NoS
  • 2023-06-02FLink怎么做压力测试和监控?
    我们一般碰到的压力来自以下几个方面:一,产生数据流的速度如果过快,而下游的算子消费不过来的话,会产生背压问题。背压的监控可以使用FlinkWebUI(localhost:8081)来可视化监控,一旦报警就能知道。一般情况下背压问题的产生可能是由于sink这个操作符没有优化好,做一下优化就可以了。比
  • 2023-05-12 percona-server-rocksdb-8.0.32 安装
    MyRocks是关系型数据库Mysql基于RocksDB的存储引擎,一个可嵌入的、持久的键值存储。PerconaMyRocks是集于PerconaServerforMySQL的.RocksDB存储基于日志结构的合并树(LSMtree)。它针对快速存储进行了优化,有出色的空间和写入效率以及可接受的读取性能。因此,如果您的工作负