自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 unix环境下文档共享

文档共享以及实现

2023-11-24 10:56:20 434

原创 进程和线程的创建过程

类型的整数,表示进程的标识符。如果返回值大于0,表示当前是父进程,返回值是子进程的标识符;,它会在当前进程的地址空间中创建一个新的执行流,与其他线程共享堆、全局变量、静态变量等资源,但有自己的栈、寄存器、程序计数器等。创建进程后,父进程和子进程的执行顺序是不确定的,取决于操作系统的调度算法。创建线程后,线程的执行顺序也是不确定的,取决于操作系统的调度算法。,它会复制当前进程的地址空间、堆、栈、寄存器等资源,创建一个新的子进程。在Linux中,创建进程的主要函数是。在Linux中,创建线程的主要函数是。

2023-11-23 18:52:46 1102

原创 PostgreSQL缓存管理

主要介绍了postgresql的buffer结构和访问步骤

2023-09-13 11:45:50 805

原创 零碎的c++二

写了c++中一些区别如虚函数和纯虚函数、深拷贝和浅拷贝

2023-09-11 23:08:33 354

原创 PostgreSQL Page结构

介绍了一下page存储结构,元组的读写,以及元组的插入、删除和更新

2023-09-11 20:46:15 350

原创 美的的笔试

大壮需要从城市的起点(编号为0的地标)经过一系列地标后,最终到达终点(编号为n-1的地标)。例如,如果小王当前处于编号为i的地标,且地标对于的数字为nums[i],那么他可以选择跳过中间所有地标,而是直接去往任意编号为i用j的地标,其中0<=j= nums[i]且i+j<n。主办方确保有路线可以成功到达终点地标,为了顺利到达终点,请帮助大壮计算,他需要经过的最少的地标数量。如果第一只猫咪吃掉,则得分为reward1[i]。这个例子中,第一只猫咪吃掉第2和3条鱼(下标从0于始),第二只猫咪吃掉第0和1条鱼。

2023-09-08 18:19:12 339

原创 unix多进程多线程

多线程多进程的概念、状态转换、通信方式以及调用20230915更新了线程共享进程的资源

2023-09-07 17:16:39 595

原创 三次握手四次挥手

TCP的三次握手和四次挥手过程和一些常见问题更新了伪代码和具体c++实现三次握手和四次挥手

2023-09-07 11:19:40 647

原创 TCP和UDP

TCP andUDP

2023-09-07 11:05:39 277

原创 数据库系统执行模型

数据库系统的执行模型火山模型物化模型混合模型以及其适用场景

2023-09-05 11:33:14 146

原创 Linux操作系统

面试中碰到过的操作系统八股包括:线程竞争IO多路复用进程间通信进程崩溃套接字

2023-09-05 11:30:17 2323

原创 零碎的C++

整理了面试中的八股包括:构造函数和析构函数哪个可以是虚函数指针和引用的区别常见的容器不能是虚函数的函数多态vector和list虚指针

2023-09-04 23:08:31 1375

原创 数据库主键和外键

外键是用来引用另一个表的主键或唯一键的一列或一组列,可以重复,也可以为空。外键可以实现表之间的级联操作,如删除、更新、设置空值或默认值。一个表可以有多个外键,分别引用不同的表。主键是用来唯一标识表中每一行的一列或一组列,不能重复,也不能为空。主键可以作为其他表的外键引用,从而建立表之间的联系。一个表只能有一个主键,但可以包含多个列。主键和外键是两种类型的约束,用于保证关系数据库中数据的完整性和一致性。

2023-09-04 21:01:12 261

原创 数据库查询优化RBO和CBO

介绍一下两种查询优化:基于规则优化和基于代价优化

2023-09-04 20:50:20 400

原创 关于B+树

在数据库管理系统中,使用b+树作为索引的数据结构,相比于B树和二叉树,有以下几个好处:B树相比于二叉树,也有一些优点,例如:一般来说,B+树有以下特点:而B树有以下特点:综合考虑这些特点,我们可以得出以下结论:数据库管理系统中使用B+树索引的好处有以下几点:

2023-09-04 17:51:13 565

原创 狗厂笔试826

对于一个题而言,小红可以写一个暴力算法获得部分分,这样相对的比较节省时间,另外她还可以直接尝试正解,这样可以获得满分,但需要花费更多的时间。接下来n行,每行输入四个正整数t_i1, s_i1,t_i2, s_i2,分别代表小红写出正解的用时,正确算法的得分,小红写暴力算法的用时,暴力算法的得分。第一轮,第一个单位(人)和第二个(兽)遭遇, 兽公布了自己的身份,由于人的战斗力低于兽,他不会选择战斗。第二轮,第一个单位(人)和第四个(兽)遭遇,人公布了自己的身份,兽直接选择战斗,但人获胜。

2023-08-26 21:24:20 316

原创 826蓝厂笔试

思路是先使用回溯的方法找到所有长度大于等于4的连续子串,再使用回溯计算每个连续子串中oppo的个数,最后求和为结果。一个字符串的权值定义为字符串中"oppo"子串的数量,例如,“oppoppo的权值为2,“opop"的权值为0.有一个仅由公’和’p’组成的字符串,想知道这个字符串的所有子串的权值之和。普通充电每单位时间充x的电量,闪充每单位时间充4x的电量。一个正整数n,代表’O"的大小,1 <n < 10。第一行输入一个仅由"o"'和"p"组成的字符串。画一个大小为n的O’,oppopp权值为1。

2023-08-26 18:03:33 161

原创 826某飞笔试

逆向遍历字符串,并维护一个数组 total_ways,其中 total_ways[i] 表示余数为 i 时的方案数。”,分别计算累积的余数,并更新方案数。最后返回 total_ways[0],即余数为0的方案数。小红拿到了一个字符串,其中有一些字符变成了“?小红希望你将所有的"?'替换成任意一个数字字符,使得最终字符串代表的十进制整数是p的倍数。—个整数,代表方案数对10^9 +7取模的值,第二行输入n个正整数,代表小红拿到的数组。无论怎么修改都是奇数,不可能是2的倍数。给出t行每行一个整数,代表相似度。

2023-08-26 15:24:50 224

原创 826某团笔试

小美每天可以给果树浇水,果树成长值为下x,同时可一个给果树施肥,两次施肥至少间隔2天,果树的成长值加y,果树的成长值达到z就成熟了。现在小红有n张账单,每张账单记录了有k个人一起吃饭,以及吃饭的消费 c,现在小红需要计算每个人需要转给小红多少钱。小美想知道,能不能通过重排a数组使得对于任意1≤i≤n,1≤a_i+b_i≤m将会有q次询问。第一行输入两个整数k(2≤k≤m+1),c(1≤c≤10^9)表示一起吃的人数,花费。一行三个整数x, y, z,分别表示浇水的成长值,果树成熟的成长值。

2023-08-26 14:05:47 354

原创 词法语法分析

词法分析和语法分析是由Lex和Yacc配合完成,在postgres源代码中为scan.l文件和gram.y文件。这两个文件分别预生成scan.c和gram.c文件,他们俩再配合上词法语法分析模块所需要的C文件就构成了词法分析和语法分析的整个模块。其中词法分析语法分析需要的文件生成调用关系如下图。词法分析器 scan.l 负责识别标识符,SQL 关键字等,对于发现的每个关键字或者标识符都会生成一个记号并且传递给分析器;语法分析器 gram.y 包含一套语法规则和触发规则时执行的动作;

2023-08-23 17:35:47 86

原创 PostgreSQL插件pg_stat_statements源码阅读

pg_stat_statements 是 PostgreSQL 数据库的一个扩展模块,用于跟踪和记录 SQL 查询语句的性能统计信息功能:pg_stat_statements 扩展模块跟踪数据库中执行的 SQL 查询语句,以及这些查询的性能统计信息。它捕获的信息包括查询的文本、执行次数、总运行时间、平均运行时间、最小和最大运行时间等。这些统计信息可以帮助开发人员和管理员确定哪些查询是最耗时的,从而更有针对性地进行性能优化。

2023-08-17 17:32:04 403

原创 分布式数据库OLAP

场景1:每个节点复制一张表。每个节点并行连接其本地数据,然后将其结果发送到协调节点。这种场景对应的算法是 Broadcast Join,即将连接操作中的一个较小的表(通常是右表)完整地复制到所有节点上,然后在每个节点上使用本地的连接算法(如Hash Join或Sort Merge Join)来完成连接操作。这种算法适合于右表很小,而左表很大的情况,因为它可以避免左表的数据传输。但是如果右表也很大,那么这种算法就会占用大量的网络带宽和内存空间。

2023-08-17 17:22:46 153

原创 分布式OLTP数据库系统

重要假设:假设分布式DBMS中的所有节点都行为良好,并且在同一管理域下。如果我们告诉节点提交txn,那么它将提交txn(如果没有失败)。如果不信任分布式DBMS中的其他节点,则需要对txns(区块链)使用拜占庭容错协议(Byzantine Fault Tolerant)。

2023-08-17 14:59:25 83

原创 分布式数据库理论

分布式两阶段锁(Distributed Two-Phase Locking,D2PL)是一种分布式事务的并发控制协议,它基于两阶段锁(Two-Phase Locking,2PL)的原理,将锁的管理和释放分为两个阶段进行。在第一个阶段,称为增长阶段(Growing Phase),事务可以根据需要获取不同节点上的数据对象的锁,但不能释放任何锁。分布式两阶段锁的实现需要一个全局的锁管理器(Lock Manager),它负责维护所有节点上的数据对象的锁状态和请求队列,并根据一定的策略分配和释放锁。

2023-08-17 11:26:51 225

原创 PostgreSQL查询语句执行过程中的主要函数源代码分析

PostgresQL查询语句执行过程中的主要函数,包括语句分析、查询重写、执行和输出

2023-08-16 10:49:47 259

原创 大疆笔试813

编写一个程序,模拟无人机的飞行路径。给定一个包含指令的字符串(例如:“RUDDLLUR”),每个指令代表无人机在二维平面上移动的方向(U:前 ,D:后、 L:左、 R:右),请计算无人机的最终坐标并输出。从{1,2.3,4,5,6.7,8,9}中随机挑选不重复的5个数字作为输入数组’selectedDigits’,能组成多少个互不相同且无重复数字的3位数?请编写程序,从小到大顺序,以数组形式,输这些3位数。无人机的最终坐标是:(2, 0)

2023-08-15 22:43:59 47

原创 科大讯飞笔试813

我们把它抽象为数组的连续了数组问题。当处理一个数组时,机器会存储数组的一些连续了数组。现在有一个棘手的问题,给定了两个长度为n的数组,这两个数组均满足以下性质: 1 到n恰好出现了一次,请你判断机器存储完所有的连续了数组时,一共存储了多少次。[1],[2],[3],[1,2],[2,3],[3,1],[1,2,3],[2,3,1] 共存储了8次。所以这一题可以用两次回溯分别找出两个数组的子集,然后将两个自己放到set中,返回set的长度。第二行输入n个正整数a_i,代表第一个数组。

2023-08-15 22:30:21 261

原创 联想笔试811

联想笔试题思路,不一定完美,有不足之处望指出

2023-08-15 22:00:10 1192

原创 数据库Recovery

恢复算法是确保数据库一致性、事务原子性和在故障情况下持久性的技术。

2023-08-15 16:29:42 74

原创 数据库日志

恢复算法是确保数据库一致性、事务原子性和在故障情况下持久性的技术。根据底层存储设备将DBMS划分成不用的组件:溢失和非溢失还必须对DBMS需要处理的不同类型的故障进行分类。没有DBMS可以从中恢复!必须从存档版本恢复数据库。数据库的主存储位置在非易失性存储上,但这比易失性存储慢。使用易失性内存以加快访问速度。

2023-08-15 12:04:20 128

原创 数据库多版本并发控制

MVCC是一种通过保存数据在某个时间点的快照来实现并发控制的方法。它可以提高数据库的并发性能,避免读写冲突,降低死锁的概率,保证事务的隔离性和一致性²。MVCC的基本思想是,每个事务都有一个唯一的时间戳,表示事务的开始时间或提交时间。每个数据对象也有两个时间戳,一个表示最后一次修改该对象的事务的开始时间或提交时间,另一个表示最后一次删除该对象的事务的开始时间或提交时间。这样,每个数据对象就有多个版本,每个版本对应一个事务对该对象的修改或删除操作。

2023-08-15 09:51:10 101

原创 数据库系统时间戳

时间戳排序算法是一种乐观的并发控制策略,它为每个事务分配一个唯一的时间戳,表示该事务的逻辑开始时间。时间戳越小,表示事务越早开始。时间戳排序算法要求事务按照时间戳的顺序执行,以保证可串行化调度。如果TS(T) < TS(T),则DBMS必须确保执行计划等同于串行计划,其中T出现在T之前每个txn的 T被分配一个单调增加的唯一固定时间戳。多种实施策略。

2023-08-14 17:09:56 648

原创 数据库两阶段锁

我们需要一种方法来保证所有执行计划都是正确的(即可序列化),而无需提前知道整个计划。所以要用Lock来保护数据库对象。

2023-08-14 15:02:59 255

原创 数据库并发控制理论

事务是在数据库上执行一系列一个或多个操作(例如 SQL 查询)以执行某些高级功能。

2023-08-13 22:07:19 97 1

原创 数据库查询执行

数据库内核中关于查询执行的笔记

2023-08-13 13:35:07 101 1

原创 并发控制。

DBMS 需要允许多个线程安全地访问数据结构。并发控制协议是 DBMS 用于确保共享对象上的并发操作得到“正确”结果的方法。

2023-08-12 21:30:55 321 1

原创 数据库索引

B+树原理以及C++的简易实现

2023-08-12 17:47:16 54 1

原创 Hash Table

数据库内核中Hash Table的个人见解,不当之处请指出

2023-08-11 23:03:05 103 1

原创 数据库内核对脏页的理解

个人对于脏页的一些理解,不足之处望指出

2023-08-10 22:13:19 201 1

原创 数据库内核缓冲池替换策略笔记

介绍一下数据库内核Buffer Pool替换策略,并给出两种实现方法

2023-08-10 21:58:59 139 1

空空如也

空空如也

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

TA关注的人

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