rocksdb

xtrabackup8.0介绍

天涯浪子 提交于 2020-08-13 23:21:04
xtrabackup 从2.4 直接跳到了8.0 , 命令大体上保持不变。少量的变化,这里记录下。 回顾下 xtrabackup2.4的备份的过程: 发起备份命令 先开始redo copy 然后进行ibd copy 在拷贝ibd期间,xtrabackup会在后台一直监视redo log,一直进行拷贝 拷贝完ibd后,开始锁表 lock binlog for backup ,然后开始拷贝 myisam引擎的表 拷贝完成后,记录下 记录下binlog位置,然后释放锁 停止redolog的拷贝 整个流程结束 xtrabackup8.0部分: 官方文档: https://www.percona.com/doc/percona-xtrabackup/8.0/index.html howto文档: https://www.percona.com/doc/percona-xtrabackup/8.0/index.html 安装 yum install percona-xtrabackup-80-8.0.12-1.el7.x86_64.rpm $ rpm -qpl percona-xtrabackup-80-8.0.12-1.el7.x86_64.rpm /usr/bin/xbcloud /usr/bin/xbcloud_osenv /usr/bin/xbcrypt /usr/bin

图数据库 Nebula Graph TTL 特性

泪湿孤枕 提交于 2020-08-13 23:04:54
导读 身处在现在这个大数据时代,我们处理的数据量需以 TB、PB, 甚至 EB 来计算,怎么处理庞大的数据集是从事数据库领域人员的共同问题。解决这个问题的核心在于,数据库中存储的数据是否都是有效的、有用的数据,因此如何提高数据中有效数据的利用率、将无效的过期数据清洗掉,便成了数据库领域的一个热点话题。在本文中我们将着重讲述如何在数据库中处理过期数据这一问题。 在数据库中清洗过期数据的方式多种多样,比如存储过程、事件等等。在这里笔者举个例子来简要说明 DBA 经常使用的存储过程 + 事件来清理过期数据的过程。 存储过程 + 事件清洗数据 存储过程(procedure) 存储过程是由一条或多条 SQL 语句组成的集合,当对数据库进行一系列的读写操作时,存储过程可将这些复杂的操作封装成一个代码块以便重复使用,大大减少了数据库开发人员的工作量。通常存储过程编译一次,可以执行多次,因此也大大的提高了效率。 存储过程有以下优点: 简化操作 ,将重复性很高的一些操作,封装到一个存储过程中,简化了对这些 SQL 的调用 批量处理 ,SQL + 循环,减少流量,也就是“跑批” 统一接口 ,确保数据的安全 一次编译多次执行 ,提高了效率。 以 MySQL 为例,假如要删除数据的表结构如下: mysql> SHOW CREATE TABLE person; +--------+-------------

apache pulsar参数配置

社会主义新天地 提交于 2020-08-12 15:50:20
BookKeeper bookiePort bookeeper server监听端口 allowLoopback 是否接受回127.0.0.1地址 listeningInterface 默认网口,比如:eth0 journalDirectory WAL存入目录 ledgerDirectories 帐目快照保存地址,推荐WAL与该目录不同硬盘 ledgerManagerType bookeeper 帐目保存类型 zkLedgersRootPath zookeeper保存的bookeeper数据路径 ledgerStorageClass 帐目存储类 entryLogFilePreallocationEnabled 是否预分配entry logger minorCompactionThreshold 当entry logger达到阀值将执行minor compaction,0为禁止 minorCompactionInterval 时间控制minor compaction majorCompactionThreshold 当entry logger达到阀值将执行major compaction,0为禁止 majorCompactionInterval 时间控制major compaction compactionMaxOutstandingRequests 没有flush的最大entry数

为什么数据库会丢失数据

落爺英雄遲暮 提交于 2020-08-12 02:48:11
为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。 数据库管理系统在今天已经是软件的重要组成部分,开源的 MySQL、PostgreSQL 以及商业化的 Oracle 等数据库已经随处可见,几乎所有的服务都需要依赖数据库管理系统存储数据。 图 1 - 数据库 数据库不会丢失数据听起来像是理所当然的事情,持久化能力也应该是数据库的最基本保障,但是在这个复杂的世界上想要保证数据不丢失是很困难的。在今天,我们能找到很多数据库出现问题导致数据丢失的例子: MongoDB 在过去很长的一段时间都不能保证持久性,很容易就会丢失数据1; RocksDB DeleteRange 功能导致的数据丢失问题2; 腾讯云硬盘故障,导致创业公司线上生产数据完全丢失的问题3; 无论是开源数据库还是云服务商提供的服务,都有可能发生数据丢失的。本文将数据库丢失数据的原因归结到以下的几个方面,我们将详细展开介绍这些原因: 人为因素导致的运维和配置错误是数据库丢失数据的首要原因; 数据库存储数据使用的磁盘损坏导致数据丢失; 数据库的功能和实现复杂,数据没有及时刷入磁盘就有丢失的风险; 人为错误

为什么数据库会丢失数据

你。 提交于 2020-08-12 01:27:44
为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。 数据库管理系统在今天已经是软件的重要组成部分,开源的 MySQL、PostgreSQL 以及商业化的 Oracle 等数据库已经随处可见,几乎所有的服务都需要依赖数据库管理系统存储数据。 图 1 - 数据库 数据库不会丢失数据听起来像是理所当然的事情,持久化能力也应该是数据库的最基本保障,但是在这个复杂的世界上想要保证数据不丢失是很困难的。在今天,我们能找到很多数据库出现问题导致数据丢失的例子: MongoDB 在过去很长的一段时间都不能保证持久性,很容易就会丢失数据1; RocksDB DeleteRange 功能导致的数据丢失问题2; 腾讯云硬盘故障,导致创业公司线上生产数据完全丢失的问题3; 无论是开源数据库还是云服务商提供的服务,都有可能发生数据丢失的。本文将数据库丢失数据的原因归结到以下的几个方面,我们将详细展开介绍这些原因: 人为因素导致的运维和配置错误是数据库丢失数据的首要原因; 数据库存储数据使用的磁盘损坏导致数据丢失; 数据库的功能和实现复杂,数据没有及时刷入磁盘就有丢失的风险; 人为错误

HBase/TiDB都在用的数据结构:LSM Tree,不得了解一下?

可紊 提交于 2020-08-11 20:42:03
LSM Tree(Log-structured merge-tree)广泛应用在HBase,TiDB等诸多数据库和存储引擎上,我们先来看一下它的一些应用: 这么牛X的名单,你不想了解下LSM Tree吗?装X之前,我们先来了解一些基本概念。 设计数据存储系统可能需要考虑的一些问题有:ACID,RUM(Read,Write,Memory)。 ACID ACID 相信小伙伴都被面试官问过,我想简单讨论的一点是:如何 持久化数据 才能保证数据写入的 事务性 和 读写性能? 事务性可简单理解为:1.数据必须持久化。2.一次数据的写入返回给用户 写入成功就一定成功,失败就一定失败。 读写性能可简单理解为:一次读 或 一次写 需要的IO次数,因为访问速率:CPU>>内存>>SSD/磁盘。 对于单机存储,最简单的方式当然是:写一条就持久化一条,读一条就遍历一遍所有数据,然后返回。当然没人这么干,在内存中我们都还知道用个HashMap呢。 拿Mysql InnoDB举例子:读性能体现在数据的索引在磁盘上主要用B+树来保证。写性能体现在运用 WAL机制 来避免每次写都去更新B+树上的全量索引和数据内容,而是通过redo log记录下来每次写的增量内容,顺序将redo log写入磁盘。同时在内存中记录下来本次写入应该在B+树上更新的脏页数据,然后在一定条件下触发脏页的刷盘。 redo

LSM Tree

无人久伴 提交于 2020-08-11 06:01:22
一、理论知识 LSM(log-structed-merge-tree)大家可能比较陌生,我之前也是听说而已,只知道Hbase、BigTable、Cassandra、MongoDB等NoSql底层存储模型用的是LSM,仅此而已;最近有个项目用到了RocksDB,底层用的存储模型也是LSM,于是就了解了下LSM,做个笔记加深下理解。 1 what LSM是什么?解决什么问题? 磁盘的顺序读写速度很快,随机读写很慢 。现在市面上7200rpm的希捷SATA硬盘顺序读写基本都能达到300MB/s;但是随机读写却很慢,100 IOPS,假设随机读写每次IO大小为1KB,则随机读写数据带宽为100KB/s;顺序读写和随机读写差了三个数量级。 针对磁盘的上述特性,应用都根据自身读写特点做一些优化。比如数据库的binlog日志就是顺序写入,所以效率很高,但是缺点也比较明显,数据很难查询读取(其实binlog是用来回放恢复数据的,不存在查询读取的使用场景); Mysql的innodb存储引擎底层用B+树数据结构来组织磁盘上的数据,B+树因其节点的度远大于平衡二叉树(平衡二叉树度为2),所以B+树树高很低(3~4),每一次数据的查询只需3~4次磁盘随机IO即可查找到数据(说法不太准确,其实是找到数据所在的page 16K,加载到内存中,再以二分法查找数据,内存二分查找所耗时间远小于磁盘IO,可忽略不计

2020年腾讯实习生C++面试题&持续更新中(3)

穿精又带淫゛_ 提交于 2020-08-10 22:27:30
2020年腾讯实习生C++面试题&持续更新中(3) hello,大家好,我是好好学习,天天编程的天天。 来给大家大家分享腾讯实习生面经了。 天天希望大家看到面经后一定要做充分的准备,结合自己掌握的知识,把面试中的每一个问题都深入研究,找到面试官提问的重点,找面试管想要你回答的要点。并可以将自己整理的答案,整理处理,按照一定的逻辑分点作答。 比如: Q: 请你讲一下static这个关键字的使用 你一定要思考一下,组织一下自己的语言,然后给出面试官想要的答案。 A:static在C语言和C++的用法大致有以下几种: static修饰局部变量 static修饰全局变量 static修饰函数 C++中static修饰类的成员变量 C++中static修饰类的成员函数 然后结合以上的5个知识点,给面试官,再展开讲解: 比如:static修饰局部变量的时候,其实一个非static修饰的局部变量是放在内存的栈空间上的,但是被static修饰之后就是静态的局部变量了,该变量就存储到内存的静态区(数据段),放在静态区的数据的生命周期和程序的生命周期一致,所以出了作用域也不会直接销毁。 就按照这个思路就把剩下的几点做以补充! 这样的话,我们的小伙伴在复习知识的时候就得深入复习,查阅资料。 好了方法论就讲到这里,接下来继续分享面试题啦~~~ 2020年腾讯C++实习面试真题 一面 TCP三次握手老问题

擅长顺势而为,收获家业两成——对话阿里云 MVP杨飞

佐手、 提交于 2020-08-10 19:54:34
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简介: 对比大多数开发者来说,杨飞的职业路线可以说是大相径庭。从大厂到创业公司,从一线城市回归二线……对于事业和生活,他的选择一直很独特。 以下为杨飞的个人专访,推荐阅读(约3分钟)。 度量权衡,做出属于自己的选择 我在互联网从业十年,至今有三段工作经历,行业和技术跨度都很大。毕业后进入腾讯做端游的C++服务器,有200万用户同时在线,在十年前这个数据已经是很不错的成绩。大厂有严格的人事体系和业务规划,由于缺乏场景历练,我渐渐觉察到如果自己再停留在后端的单一业务,很难有更多的发展空间。在腾讯做升级答辩时,评审专家给的唯一意见是可以多看看兄弟业务的做法,不同领域的实践都是基于什么样的场景。于是即使端游产品即将正式商业化,我还是毅然决然地选择离开腾讯。我是个不太看重短期回报的人,但家庭因素在我的所有选择中占很大比重。因为我太太在西安,所以我选择回归家庭,主动降薪入职西安的三星。 加入三星后我投身于跨度很大的基于SSD的数据库优化项目,算是半工业半科研性质。基于SSD的特性和开放出的能力,我们将RocksDB的IO的性能最多提升了80%。习惯了自由随意的互联网公司氛围,最初到三星被要求全天正装还有些不适应,同时还有更加严格的信息安全标准。由于三星自身的行业秘密

如何进行TIDB优化之Grafana(TiDB 3.0)关注监控指标

江枫思渺然 提交于 2020-08-09 18:06:16
前言 在对数据库进行优化前,我们先要思考一下数据库系统可能存在的瓶颈所在之外。数据库服务是运行在不同的硬件设备上的,优化即通过参数配置(不考虑应用客户端程序的情况下),而实现硬件资源的最大利用化。那么硬件资源有哪些呢,那就无外乎CPU,内存,磁盘,网络这些资源。 作为常用单机数据库(如MySQL,PostgreSQL),最常见的性能瓶颈在哪呢? 根据我的经验,绝大部分出现在磁盘性能。那我们如何来对它进行优化呢,那就是把磁盘的读写转化为内存的读写(增大数据缓存),或是采用数据压缩,转化为CPU的资源消耗。 对于TIDB,它是网络数据库,可能情况略有不同。我们也需要把网络因素加以考虑。 TIDB原理 要优化一个数据库,首先要对于它进行了解,特别是内部原理。这样我们才能在问题出现时,如何对它进行定位和优化。 TIDB相对传统数据库有很大的不同。 TIDB的整体架构: 官网上关于TIDB的核心见如下文章 三篇文章了解 TiDB 技术内幕: 说存储 说计算 谈调度 TIDB可能的性能瓶颈 通过TIDB的实现原理分析,个人认为瓶颈可能存在于如下方面 1)PD的授时开销,以及GC的抖动 2)raft模块性能问题 3)Region的热点问题 4)TiKV的性能问题 如SST compation,读放大,压缩,Block cache命中率等 TIDB优化之Grafana查看指标