03 2022 档案

摘要:https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/lec06-isolation-and-system-call-entry-exit-robert Trap机制 Trap机制就是用户空间有内核空间的切换,目的是为了安全性隔离 阅读全文
posted @ 2022-03-31 20:03 抿了抿嘴丶 阅读(194) 评论(0) 推荐(1) 编辑
摘要:https://pdos.csail.mit.edu/6.S081/2020/labs/syscall.html 这个lab主要为xv6添加新的系统调用 xv6中的系统调用的实现 对于initcode.S,最后需要执行exec系统调用用来装载可执行程序,可以看到用户代码将exec系统调用的参数int 阅读全文
posted @ 2022-03-30 20:58 抿了抿嘴丶 阅读(102) 评论(0) 推荐(0) 编辑
摘要:语言特点 Go语言引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在 天然支持并发(所以非常支持云计算) 语言层面支持并发,实现简单 gorotine,轻量级线程,可实现大并发处理,高效利用多核 基于CPS并发模型(Communicating Sequential P 阅读全文
posted @ 2022-03-30 18:23 抿了抿嘴丶 阅读(50) 评论(0) 推荐(0) 编辑
摘要:这个lab主要是用SS2PL(不需要index lock,因为不需要实现可序列化)实现三种隔离级别下lock的acquire与release, SS2PL可以实现REPETABLEREADS,因为SS2PL只有在一个txn commit的时候才会去释放锁,这样别人就不能修改当前txn所读的数据,也就 阅读全文
posted @ 2022-03-29 18:38 抿了抿嘴丶 阅读(435) 评论(0) 推荐(0) 编辑
摘要:总览 这个lab要实现executors,executor负责query plan(就是operator形成的树)上的operator并执行它们,对于每个executor,需要实现: 对于这个lab,没有SQL,执行的查询计划都是写好的算子树,并且用的是火山模型,每个算子的执行器(executor) 阅读全文
posted @ 2022-03-26 09:01 抿了抿嘴丶 阅读(1307) 评论(1) 推荐(0) 编辑
摘要:为什么需要模板 模板 对于string类型需要特例化 需要显式转换string,不然会把字符串常量认作const char* 默认模板参数 整数也可以作为参数,不过浮点数,指针类型,自定义类型不能声明为模板参数,不过为什么要把int类型作为模板参数呢,直接作为函数参数不行吗?因为模板里的int是编译 阅读全文
posted @ 2022-03-22 17:50 抿了抿嘴丶 阅读(73) 评论(0) 推荐(0) 编辑
摘要:小彭老师的课程 c++多线程 没有多线程的时候,在执行download的时候会卡住 在引入多线程之后,就可以在另一个线程中执行download,而在主线程中执行interact join函数的作用 没有join的话,子线程可能会由于主线程退出而被迫退出 所以可以调用t1.join()等待子线程结束, 阅读全文
posted @ 2022-03-22 09:48 抿了抿嘴丶 阅读(138) 评论(0) 推荐(0) 编辑
摘要:小彭老师的课程 C++11 的 for each只要实现了begin()与end()是可以使用,也就是list也可以用,而for_each()函数 RAII 所谓的RAII,全称为Resource Acquisition Is Initialization,汉语是“资源获取即初始化”。但是这个直译并 阅读全文
posted @ 2022-03-21 12:27 抿了抿嘴丶 阅读(216) 评论(0) 推荐(0) 编辑
摘要:参考 csdn博客 知乎博客 阅读全文
posted @ 2022-03-20 19:52 抿了抿嘴丶 阅读(28) 评论(0) 推荐(0) 编辑
摘要:C++内存分为: 由于可执行文件在装载时实际上是被映射的虚拟地址空间,所以可执行文件很多时候又被叫做映像文件(Image) 栈区(stack),对应于虚拟内存地址空间中的stack,扩展方向是从高地址到低地址,即使是main函数里头定义的局部变量也是放在栈中,也就是main函数的栈帧中,由编译器自动 阅读全文
posted @ 2022-03-20 19:40 抿了抿嘴丶 阅读(329) 评论(0) 推荐(1) 编辑
摘要:Docker简介与安装 Docker是什么 Docker是一个应用打包,分发,部署的工具 也可以理解一个轻量的虚拟机,它只是虚拟你软件需要的运行环境,不会有任何多余的东西,对于普通的虚拟机,普通的虚拟机包含了许多不必要的软件,是一个庞大的系统。 |特性 | 普通虚拟机| Docker| | - | 阅读全文
posted @ 2022-03-17 18:28 抿了抿嘴丶 阅读(45) 评论(0) 推荐(0) 编辑
摘要:Decision Support Systems(OLAP database的别名) OLTP获取数据,ELT将OLTP的数据Extract,Transform,Load合并成一个统一的模式,传给OLAP Decision support systems,分析数据,做出未来的决策 数据的架构有两种: 阅读全文
posted @ 2022-03-14 18:46 抿了抿嘴丶 阅读(93) 评论(0) 推荐(0) 编辑
摘要:c++一般1s能够计算107~108 一般ACM或者笔试题的时间限制是1秒或2秒。 在这种情况下,C++代码中的操作次数控制在 107∼108为最佳。 下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择: n ≤ 30 , 指数级别, dfs+剪枝,状态压缩dp(n皇后,八数码,蒙德里安的梦 阅读全文
posted @ 2022-03-14 14:20 抿了抿嘴丶 阅读(201) 评论(0) 推荐(0) 编辑
摘要:OLTP vs. OLAP OLTP txn的读写时间短 给系统留下的影响小 重复性的操作 OLAP txn主要是read,且时间长 涉及到复杂的join? 要读取大量数据,做分析 assumption 所有的node都是可以信任的,且所有的node都归属同一个管理域,否则需要Byzantine F 阅读全文
posted @ 2022-03-13 18:20 抿了抿嘴丶 阅读(57) 评论(0) 推荐(0) 编辑
摘要:acwing 905 区间选点 / 908 最大不相交区间数量 905使得一个点尽可能多的覆盖更多的区间,908是尽可能使得一个区间组包含尽可能多区间,本质上一致 acwing 906 区间分组 按照区间左端点排序,可以把区间看作是一段时间,这个贪心的做法是要尽可能的把一天的时间填满,所以每个区间分 阅读全文
posted @ 2022-03-13 18:20 抿了抿嘴丶 阅读(55) 评论(0) 推荐(0) 编辑
摘要:PARALLEL VS. DISTRIBUTED PARALLEL(比如oracle的数据库一体机) 节点(机器)之间离得很近,比如放在一个机房之中 节点之间的数据在高速局域网(LAN)中传输 数据传输的花销小 DISTRIBUTED 数据库集群的节点之间距离很远 节点之间通过network连接 数 阅读全文
posted @ 2022-03-12 22:43 抿了抿嘴丶 阅读(57) 评论(0) 推荐(0) 编辑
摘要:Crash Recovery 主要需要做两件事情,一件是txn processing before a failure,另一件是actions after a failure,本节主要介绍后者 那么什么时候flush dirty page呢? Algorithms for Recovery and 阅读全文
posted @ 2022-03-12 17:17 抿了抿嘴丶 阅读(105) 评论(0) 推荐(0) 编辑
摘要:感觉日志文件也好大鸭,就是Physical Logging Crash Recovery recovery algorithm 需要做两件事情: txn 正常执行时的额外工作,以保证DBMS能够recover from failure failure之后的recover action,以此来保证原子 阅读全文
posted @ 2022-03-10 17:14 抿了抿嘴丶 阅读(101) 评论(0) 推荐(0) 编辑
摘要:MVCC不是单纯的用来实现并发控制,一般是用来与2PL,OCC,T/O结合使用 Multi-Version Concurrency Control read-only txn can read a consistent snapshot without acquiring locks?txn可以做到 阅读全文
posted @ 2022-03-10 12:07 抿了抿嘴丶 阅读(87) 评论(0) 推荐(0) 编辑
摘要:2PL是实现并发控制的一种方式,它是pessimistic,因为它假设如果不加锁,未来便会出问题。T/O也是一种并发控制的方式,它是Optimistic,通过设置时间戳,使得schedule达到serializable Timestamp Ordering Concurrency Control 有 阅读全文
posted @ 2022-03-08 19:44 抿了抿嘴丶 阅读(78) 评论(0) 推荐(0) 编辑
摘要:2PL是并发控制理论的一种实现方式 Transaction Locks 通过Lock来保证所有的execution schdule是serializable lock manager管理lock的分配与释放 DBMS's lock-table 不需要持久化 Lock:当有transaction需要修 阅读全文
posted @ 2022-03-08 19:42 抿了抿嘴丶 阅读(109) 评论(0) 推荐(0) 编辑
摘要:并发控制横跨数据库实现的三个部分,operator execution,access methods,buffer pool manager 为什么需要并发控制 transaction transaction是DBMS执行的最小单位,如果没有开启事务,那么DBMS会把一条sql语句当做一个trans 阅读全文
posted @ 2022-03-06 19:26 抿了抿嘴丶 阅读(71) 评论(0) 推荐(0) 编辑
摘要:为什么需要query optimization 因为SQL是声明式的 其实直到现在,任然有两种流派,一种是数据库帮助优化query还有一种是自己写算子,比如flink 数据库优化方式,也就是写SQL 启发式:只需要查看元数据,不需要查看真正的数据 基于代价的搜索:类似于回溯,需要计算代价函数 que 阅读全文
posted @ 2022-03-06 19:24 抿了抿嘴丶 阅读(132) 评论(0) 推荐(0) 编辑
摘要:Query Plan ?multiple way指的是可以按照单一tuple的粒度往上emit,或者是按照batch的tuple的粒度往上emit,或者是整个要求的数据集合的粒度往上emit Processing Models Processing Models定义了query plan的执行从什么 阅读全文
posted @ 2022-03-05 16:06 抿了抿嘴丶 阅读(142) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示