首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
cmu15专题
CMU15-445-并发控制,事务实现
LRU-K LUR-K如何实现和图片 链接里面有算法过程和实现过程 事务并发控制 CMU15-445概览 2PL代表两阶段锁协议(Two-phase locking)。这是一种并发控制机制,用于关系数据库系统中以保障数据完整性。在这种机制中,事务的执行被划分为两个阶段:加锁阶段和释放锁阶段。加锁阶段发生在事务开始时,而释放锁阶段发生在事务结束时。这种划分确保了事务的原子性和隔离性
阅读更多...
cmu15-445 Project #3 - Query Execution
这个project的目标是在原来的基础上增加语句执行,实现执行器中的获取查询计划节点并且执行,以及实现执行器中的sequential scans,inserts,hash join, aggregations等功能。执行器使用volcano model,每一个查询计划执行器都实现Next函数,Next会返回一个元组或者返回空。 TASK #1 - CREATING A CATALOG TABLE
阅读更多...
cmu15-445 Project #1-Buffer Pool
TASK #1 - CLOCK REPLACEMENT POLICY 实现src/buffer/clock_replacer.cpp中的函数: Victim(): 使用时钟算法淘汰一个frame,从时钟的指针指向的地方开始,找出第一个ref=0的frame。如果所指向的frame的ref=1,那么将其ref置为0。然后更新clock handPin(): 在一个页面被pin的时候调用,将对应的
阅读更多...
CMU15-445-Spring-2023-Project #4 - Concurrency Control
前置知识,参考上一篇博客:CMU15-445-Spring-2023-Project #4 - 前置知识(lec15-20) 通过添加一个锁管理器在 BusTub 中支持事务,然后将其用于并发查询执行。锁管理器将支持五种锁模式下的表锁和元组锁:intention-shared、intention-exclusive、shared-intention-exclusive、shared、exclus
阅读更多...
CMU15-445-Spring-2023-Project #4 - 前置知识(lec15-20)
Lecture #15_ Concurrency Control Theory Motivation 并发控制:如何避免同时更新记录时出现race? 耐久性问题(恢复):断电时如何确保状态正确? Transactions 事务是指在共享数据库上执行一个或多个操作序列(如 SQL 查询),以执行某些高级功能。它们是 DBMS 中变化的基本单位。事务必须是原子性的。 处理事务的简单方法是使用单
阅读更多...
CMU15-445-Spring-2023-Project #2 - 前置知识(lec07-010)
Lecture #07_ Hash Tables Data Structures Hash Table 哈希表将键映射到值。它提供平均 O (1) 的操作复杂度(最坏情况下为 O (n))和 O (n) 的存储复杂度。 由两部分组成: Hash Function和Hashing Scheme(发生冲突后的处理) Hash Functions DBMS 一般只关注散列速度和冲突率,不考
阅读更多...
CMU15-445-Spring-2023-Project #1 - Buffer Pool
前置知识,参考上一篇博客:CMU15-445-Spring-2023-Project #1 - 前置知识(lec01-06) 在存储管理器中实现缓冲池。缓冲池负责将物理页从主内存来回移动到磁盘。它允许 DBMS 支持大于系统可用内存量的数据库。缓冲池的操作对系统中的其他部分是透明的。例如,系统使用page唯一标识符(page_id_t)向缓冲池请求一个页面,但系统并不知道该页面是否已在内存中,也
阅读更多...
CMU15-445-Spring-2023-Project #1 - 前置知识(lec01-04)
Lecture #01_ Relational Model & Relational Algebra Databases 数据库是相互关联的数据的有组织集合,对现实世界的某些方面进行建模。区别于DBMS(MySQL、Oracle)。 Flat File Strawman 数据库以CSV文件的形式存储,并由DBMS管理。 Database Management System DBMS是
阅读更多...
CMU15-440-P0:Implementing a key-value messaging system
准备继续更新blog。 最近工作上一直在写业务,看些课程换换脑子。 15-440是CMU的一个分布式课程 http://www.cs.cmu.edu/~15-440/syllabus.html ,其实之前在学校的时候就上过分布式的课程,当时用的MIT 6.824的课件,可惜当时很多paper没有仔细去看,只是把作业做了下,除了lab1都没有写blog记录,导致后来有时间写blog的时候很多细节
阅读更多...
CMU15-213学习笔记(五)virtual memory虚拟内存
CMU15-213学习笔记(五)virtual memory虚拟内存 分页存储管理 早期:程序员自己管理主存,通过分解程序并覆盖主存的方式执行程序。1961年,英国曼切斯特研究人员提出一种自动执行overlay的方式。 动机:把程序员从大量繁琐的存储管理工作中解放出来,使得程序员编程时不用管主存容量的大小 基本思想:把地址空间和主存容量的概念区分开来。程序员在一个虚拟地址空间里编写程序,而
阅读更多...
CMU15-445 C++ Primer
基本要求 这个项目使用编程语言C++,这个lab的目的劝退不会C++ 的同学。其实考察的知识点并不多,稍微了解点C++的同学都能轻易通过第一个lab的测试。 主要考察的知识点如下: 类的继承与虚函数类模板编程unique_ptr指针矩阵的加法与乘法 (~ ̄▽ ̄)~ 需要完成的任务是实现3个关于矩阵的类,完成矩阵的元素赋值,元素查询,矩阵加法和乘法。 建立项目 首先创建一个存放项目的文件
阅读更多...
【CMU15-445 Part-16】Concurrency Control Theory
Part16-Concurrency Control Theory 架构概念 Transcations txn就是通过在数据库系统中执行一系列操作(sql queries)来执行某种更高级的功能(应用程序所执行的功能)。 Transcations in SQL 一个新的事务开始 with BEGIN,txn结束with COMMIT / ABORT或者ROLLBACK 如果是COM
阅读更多...