CMU15445 BPlusTreeIndex Java版本
写在前面弃坑宣言(?)由于15445课程周期长,lab资源都是C++的,用Java实现对我来说属实有点艰难,写得很痛苦,故决定弃坑,做完b+树就放弃了,写得也不一定对,慎看
lab1:CMU15445 BufferPool Java版本 | 62bit的秘密基地
课程相关资源我看的是2019年的课,实验做的是2020年的
课程视频可以在油管和B站找到,这里我推荐simniso这个团队,他们翻译得很好
实验一说明地址:Project #1 - Buffer Pool | CMU 15-445/645 :: Intro to Database Systems (Fall 2020)
实验官方Git hub地址:cmu-db/bustub: The BusTub Relational Database Management System (Educational) (github.com)
具体实现BPlusTreeParentPage123456789101112131415161718192021222324252627282930313233343536373839 ...
Hadoop学习之HDFS
HDFS分布式文件系统
NameNode:主节点,维护整个文件系统的文件目录树
SecondaryNameNode:从节点,帮助主节点合并fsimage(元数据信息:描述数据的信息)和edits(元数据信息编辑日志)
DataNode:按数据块(block:默认128M,大于128会分块,小于128就按照实际大小)作为单元存储数据,block有三个备份,分布在不同节点上
Client:客户端
客户端读取数据的过程
客户端发起请求,去读取数据
namenode接收到请求后,校验文件是否存在,查找文件对应的元数据信息返回
通过元数据信息与datanode进行通信,数据以package传送
HDFS元数据管理HDFS元数据管理:fsimage&edits - 腾讯云开发者社区-腾讯云 (tencent.com)
HDFS小文件的危害每一个文件都需要保存元数据信息,大量小文件就会产生大量元数据信息,namenode需要将元数据信息读取到内存中,而内存的容量是相对较小的,所以大量小文件的元数据信息会将内存撑爆;同时,在数据计算时,大量小文件意味着需要更多的task和资源,会降低任务 ...
CMU15445 BufferPool Java版本
写在前面一些话对数据库存储引擎的结构比较感兴趣,所以看了CMU 15-445这门课,想要加深对存储引擎的理解,也想自己从零到一亲手实现一个项目,用实践检验自己的编程水平,同时可以丰富简历的内容。
本人主要学习的是Java这门语言,但这门课的lab是用C++实现的,很喜欢这门课,所以挑战一下用Java实现这些lab。
写这篇博客是为了整理思路,方便以后复习,互联网上用java写这个lab的项目寥寥无几,也希望可以为想用Java完成这门课的小伙伴提供一些思路。
本人水平很差,如有错误或更好的实现方法请务必在评论区指出来,不胜感激。
课程相关资源我看的是2019年的课,实验做的是2020年的
课程视频可以在油管和B站找到,这里我推荐simniso这个团队,他们翻译得很好
实验一说明地址:Project #1 - Buffer Pool | CMU 15-445/645 :: Intro to Database Systems (Fall 2020)
实验官方Git hub地址:cmu-db/bustub: The BusTub Relational Database Ma ...
数据结构与算法学习笔记
B站链接
细节都写在注释里了
最近想要用伪代码实现之前写过的代码
排序交换数组中的两个数12345678910111213141516//常规方法public static void swap1(int[]arr,int i,int j){ int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp;}//用位运算,执行速度更快,少申请一个变量//本质:得到两数的二进制数中不同的位数,各自取反public static void swap2(int[] arr,int i,int j){ if(arr[i] == arr[j]){//如果arr[i]和arr[j]指向同一块内存会出错,所以干脆不交换 return; } arr[i] = arr[i] ^ arr[j]; arr[j] = arr[j] ^ arr[i]; arr[i] = arr[i] ^ arr[ ...
JDBC学习笔记
JDBC1. JABC概念
JDBC就是使用Java语言操作关系型数据库的一套API
java研发者定义一套规则(接口),数据库厂商提供实现类(驱动)
面向接口编程
2. JDBC快速入门2.1 导入驱动jar包
jar包拷贝进工程里
Add as library
2.2 mysql.properties1234user=rootpassword=****url=jdbc:mysql://localhost:3306/db01driver=com.mysql.cj.jdbc.Driver
2.3 JDBC1234567891011121314151617181920212223242526272829303132333435import java.io.FileInputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;import java.util.Date;import java.util.Properties;public class Res ...