自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 资源 (1)
  • 收藏
  • 关注

原创 TPC-H数据集使用说明

与上述同理,使用命令。

2024-12-10 18:32:56 1534

原创 【论文阅读】XuanYuan: An AI-Native Database

Stonebraker 认为,由于应用程序的多样性(例如 OLTP,OLAP,stream,graph)和硬件的多样性(例如 CPU,ARM,GPU,FPGA,NVM),一种数据库并不能适合所有的情况(one-size-doesn’t-fit-all).(5) 支持异构的计算框架.不同组件可能需要运行在不同硬件上,例如,学习优化器应该运行在 AI 芯片上,传统的基于成本的优化器应该运行在通用芯片上,它需要有效的硬件调度算法来安排不同的任务;(4) 在部署数据库之前,需要对所装配的数据库进行评估和验证;

2024-07-02 14:05:35 904 2

原创 MySQL 主备环境搭建 docker

使用 start slave 开启主从复制过程后,如果 SlaveIORunning 一直是 Connecting,则说明主从复制一直处于连接状态,这种情况一般是下面几种原因造成的,我们可以根据 Last_IO_Error 提示予以排除。master_port:Master 的端口号,指的是容器的端口号。master_connect_retry:如果连接失败,重试的时间间隔,单位是秒,默认是 60 秒。可以看到:主库接收到客户端的更新请求后,执行内部事务的更新逻辑,同时写入 binlog。

2024-05-23 17:16:40 910 1

原创 【CMU15-445 Part-21】ARIES Database Recovery

Part21-ARIES Database RecoveryARIES - Main IdeasWAL : 使用预写日志,steal + no-force,steal意味着允许bfp将未提交事务修改的page刷到磁盘,No-Force说的是不要求将钙食物所有dirty page都刷到磁盘后才能表示该事务被提交。Repeating History During Redo:恢复的时候会重新执行日志中的操作记录,来重新执行事务的修改。Logging Changes During Undo:undo 一系

2024-04-28 23:45:07 382

原创 【PG-2】PostgreSQL存储管理器

代表的是存储在表的堆(heap)中的一个数据行(或元组)。堆不是数据结构中的“堆”,而是动态分配的内存区域,用于存储表数据。FSM存储的并不是真是的剩余空间,而是近似值,用一个字节表示剩余空间的大小,也就是说剩余空间分成了256个档次,每8K/256=32为一档,那么,一个字节就足以表示一个block的剩余空间。元素是一个指向数据页面中一条记录的指针,因为page里面的record数量不一定,所以使用这种FLEXIBLE_ARRAY_MEMBER,下面还定义了管理这个结构体的指针。字节空闲空间的槽位。

2024-04-27 23:19:29 1016 1

原创 【CMU15-445 Part-19】Multi-Version Concurrency Control

writer 不会 block readers,reader 也不会 block writers。只读事务可以读到一个consistent的snapshot,而不需要获得锁。使用ts 来决定事务的可持续数据库快照以及对数据的可见性。支持查询。Txn 进入的时候看 TS 再哪个begin 和 end 之间,当有新版本的时候 旧版本数据的end即做出修改的事务的开始时间戳。如果txn abort 修改时间戳的动作也要abort。

2024-04-25 16:10:46 426

原创 【CMU15-445 Part-18】Timestamp Ordering Concurrency Control

OCC and T/O都是Optimistic的。

2024-04-25 16:09:50 1075

原创 【CMU15-445 Part-20】Logging Scheme

commit 一般就意味着 持久化到disk。logging recovery 是保证txn所做的修改能够保障数据库的一致性、事务的原子性,持久性,关心的是acid中的acd。恢复协议其实是两部分:1. 确保系统运行中遇到故障后可以恢复的措施(写log) 2. 故障之后如何恢复来确保acd(用log)。

2024-04-25 15:26:02 775

原创 【云原生数据库:原理与实践】2 -数据库与云原生

云计算为计算问题提供了一个解决方案,即把信息化需要的基础设施作为一种服务来提供(Infrastructure as a Service,IaaS),就像生活领域的水电煤气服务一样,企业或家庭用户无须为获取这些资源而进行基础设施建设,比如自己挖井或自己用发电机发电,只要接入政府提供的生活服务网络,根据需要随时取用即可。云原生的架构,在本质上,下层是分布式共享存储,上层是分布式共享计算池,中间层用于计算存储解耦,这样可以非常好地提供弹性高可用能力,做到分布式技术集中式部署,从而对应用透明。

2024-04-16 19:32:12 776

原创 【云原生数据库:原理与实践】1- 数据库发展历程

从1960年:Integrated Database System(IDS),该系统是一个网状模型(Network Model)到 IMS(Information Management System),使用了层次模型(Hierarchical Model)支持事务处理。

2024-04-16 19:31:40 1110

原创 【PG-1】PostgreSQL体系结构概述

pg 体系结构概述

2024-04-13 15:04:57 1235

原创 【论文阅读 VLDB22】On-Demand State Separation for Cloud Data Warehousing

将查询的工作状态和进度与执行它的机器解耦的过程。

2024-03-05 18:24:40 682

原创 【论文阅读 SIGMOD18】Query-based Workload Forecasting for Self-Driving

Autonomous DBMS的第一步就是能够建模并预测工作负载,以前的预测技术对查询的资源利用率进行建模。然而,当数据库的物理设计和硬件资源发生变化时,这些指标会发生变化,从而使以前的预测模型无用。提出了QueryBot 5000的具有鲁棒性的预测框架,它允许DBMS根据历史数据预测未来查询的预期到达率。为了更好地支持高度动态的环境,本文的方法使用工作负载中查询的逻辑组合,而不是用于查询执行的物理资源的数量。提供了短期和长期的预测。本文还提出了一种基于聚类的技术来减少要维护的预测模型的总数。

2024-01-20 13:11:30 1400 1

原创 【论文阅读 CIDR17】Self-Driving Database Management Systems

之前的advisory tools来帮助DBA处理系统调优和物理设计的各个方面,都仍然需要人类对数据库的任何更改做出最终决定,并且是在问题发生后修复问题的反动措施reactionary measures。An truly “self-driving” database management system (DBMS)是针对autonomous operation(自主操作)设计的全新架构。系统的所有方面都是由一个integrated planning componen综合规划组件来控制。

2024-01-15 19:00:56 1853 1

原创 【翻译转载】What is a Self-Driving Database Management System

一些组织和个人错误地将他们的系统标记为“自动驾驶”。真正的自动驾驶数据库管理系统(DBMS)会自动(1)决定使用什么样(what) actions 来优化自己(2)决定何时(when)部署这些行动(3)从这些actions中学习(强化学习?)——所有这些都无需任何人为干预。自适应数据库 [Self-Adaptive Databases] (1970-1990s)自 1970 年代开始,使用 DBMS 来减轻应用程序开发人员的数据管理负担是关系模型和声明式编程语言(例如,SQL)的最初卖点之一。

2024-01-14 22:31:15 1215

原创 【论文阅读】Non-blocking Lazy Schema Changes in Multi-Version

一个是online能够提供不停机的更新的能力,在很多业务系统里面是必要的。第二个是满足高可用,SaaS、PaaS要提供高可用的系统给用户,停机更新是不可以的。

2024-01-12 21:33:55 915

原创 PolarDB DDL MDL

MySQL 拿锁 即乐观等待的方式来拿锁MDL-X。问题:会导致DDL后续DML的阻塞。第三方插件 pt-osc / gh-ost 采用copying method,空表然后select + insert,最后rename操作切换。问题:1. 饥饿。2.无脑copying,有一些instance DDL 秒级可完成。

2024-01-09 19:52:26 741

原创 分布式数据库Schema 变更 in F1 & TiDB

元数据记录:system database 和 system table 记录异步变更schema的元数据。State。

2023-11-13 11:40:36 352

原创 【论文阅读VLDB13】Online, Asynchronous Schema Change in F1

分布式 Schema 变更在 Google F1 的实践

2023-11-11 15:37:32 503

原创 【论文阅读VLDB23】Online Schema Evolution is (Almost) Free for Snapshot Databases

在现有数据库系统中,对在线和事务模式演变的支持仍然具有挑战性。之前处理这种schema 演变基本是patches补丁的方式来做,就会导致很多corner case,导致一般需要停止DML来执行DDL。本文基于MVCC数据库可以data-defination-as-modification(DDaM),提出了Tesseract来实现通过并发控制协议来控制DDL操作。Tesseract能够提供在线的事务性模式演化,而不会导致服务停机,并在模式演化进行时保持较高的应用程序性能。

2023-10-29 15:20:03 237

原创 【CMU15-445 Part-17】Two-Phase Locking

S-LOCK 共享锁 for readsX-LOCK 排他锁 for writes上述T1最后R(A) 会导致不可重复读。

2023-10-07 14:20:50 160

原创 【CMU15-445 Part-16】Concurrency Control Theory

架构概念。

2023-10-06 22:30:06 226

原创 【CMU15-445 Part-15】Query Planning & Optimization II

维护每张表中的基本主要信息也就是tuple数量NR​以及每个属性中不同值的数量VARNR​关系R中的元组数量,单独维护,不能用page * 每个page中的tuple数,因为mvcc 或者 填不满tuple。selection cardinality (SC(A,R)) 选择基数,tuple数量除以属性A下 去重之后值的数量来计算出。假设数据均匀分布,data uniformity。

2023-10-06 22:29:35 231

原创 【论文阅读】An Evaluation of Concurrency Control with One Thousand Cores

随着多核处理器的发展,一个芯片可能有几十乃至上百个core。在数百个线程并行运行的情况下,协调对数据的竞争访问的复杂性可能会减少增加的核心数所带来的收益。探索当前DBMS的设计对于未来超多核数的CPU的适应性,在多核芯片上跑OLTP来进行评估,使用7种并发控制算法在内存数据库,使用计算机模拟的1024核来进行测试,所有算法都无法适配,所有数据库都有基本的性能瓶颈,因此与追求增量解决方案相比,以后应该考虑针对多核芯片完全重新设计的DBMS体系结构,该体系结构从头开始构建,并与(新)硬件紧密耦合。

2023-10-06 22:27:35 1461 1

原创 【CMU15-445 Part-13】Query Execution II

查询执行

2023-09-29 23:33:22 216

原创 【CMU15-445 Part-14】Query Planning & Optimization I

QUERY OPTIMIZATION

2023-09-29 23:31:06 173

原创 【CMU15-445 Part-12】Query Execution I

Processing Model主要指的是明确如何去执行一个查询计划(top 2 bottom or bottom 2 top,operator之间的传递)。

2023-09-27 16:27:04 194

原创 【论文阅读】内存数据库并发控制算法的实验研究

并发控制算法的基本思想归纳为"先定序后检验”,基于该思想对现有各类并发控制算法进行 了重新描述和分类总结,于在开源内存型分布式事务测试床3TS上的实际对比实验。3TS: Tencent Transaction Processing Testbed System(简称3TS),是腾讯公司CynosDB(TDSQL)团队与中国人民大学数据工程与知识工程教育部重点实验室,联合研制的面向数据库事务处理的验证系统 (gitee.com)

2023-09-23 16:42:51 354

原创 【CMU15-445 Part-11】Join Algorithms

Join其实是关系数据库和范式化表时候所产生的副产物

2023-09-16 17:24:29 163

原创 【CMU15-445 Part-10】Sorting and Aggregations

查询计划指的是指令或者是数据库系统如何执行一个给定查询的方式。整个查询计划是树形结构或者有向无环图。Logical Plan:先SCAN A,交给join operator,SCAN B,对B进行filter后交给join operator,然后join oper把结果传给projection operator。使用buffer pool manager来对查询的中间结果进行落盘操作。

2023-09-16 17:19:06 154

原创 【CMU15-445 Part-9】Multi-Threaded Index Concurrency Control

多线程下索引的并发控制。

2023-09-16 17:16:28 122

原创 【论文阅读】Cornus: Atomic Commit for a Cloud DBMS with Storage Disaggregation

Cornus提出了一种针对存储分解架构的2PC优化协议-Cornus。通过利用云数据库架构提供的新特性,Cornus解决了2PC中的长延迟和阻塞问题。

2023-09-16 17:05:58 235

原创 Lambda表达式、回调函数、bind()、function()

Lambda表达式、回调函数、bind() function()

2023-04-02 18:41:02 1413

原创 Raft Demo解释

学习raft过程中 有几张demo图有些confused,特拿出来研究一下。

2023-03-20 00:05:50 180

原创 SDU CS 期末考回忆版合集

删除原有分散的版本,合订起来画个。包括:机器学习、算法、图形学、操作系统、编译原理、软件工程、大数据分析管理、计算机体系结构等。

2023-03-14 13:52:30 4861

原创 Raft图文详解

Raft图文详解

2023-03-06 18:29:46 889

原创 【论文阅读】基于LevelDB的分布式数据库研究

基于LevelDB的分布式数据库研究 论文阅读

2023-02-26 12:33:03 1229

原创 brpc & braft build

brpc有如下依赖:gflags, protobuf, leveldb。

2023-02-24 17:31:50 285

原创 Raft论文阅读

Raft 是用来进行管理replicated log的共识协议。他能产生和paxos一样的效果和效率。之所以更加容易理解,是将共识的关键元素(问题)进行了分解以及进行了状态的简化。

2023-01-09 01:06:24 515

原创 KV数据分片和分布

KV引擎的数据分片方式和分布方式

2023-01-02 09:46:25 689

外星人入侵(飞机大战)(alien_invasion)

《python编程从入门到实践》参考的项目,alien_invasion 全部手打,欢迎下载交流

2021-01-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除