- 博客(21)
- 收藏
- 关注
原创 mit6.824-lab1
先做好两个进程间通讯的功能,这方面 Go rpc的传递数据有严格的要求,没接触过的可能会出错在写分发任务的时候再思考需要什么字段,可不可以不要哪些在重要的地方多写日志。
2025-02-12 23:00:21
718
原创 rosedb02-wal实现 & 编码方案
WAL(Write-Ahead Logging)技术是一种常见的数据库事务日志技术,用于确保数据库的持久性和恢复能力。核心思想是在对数据库进行任何修改之前,先将相应的日志记录写入到持久化的日志文件中。bitcask 里数据和日志存放在一起,写好底层的数据结构需要很强的编码能力和抽象能力。
2024-08-25 01:06:34
543
原创 rosedb01--Bitcask 简单实现
Bitcask 是一种简单而高效的键值存储机制,主要通过顺序写入和合并操作来优化性能。存储索引:如何高效存储索引信息,减少内存和磁盘空间的使用。高效构建内存哈希表:如何利用提示文件(hint file)等方式加速内存哈希表的构建。
2024-08-24 01:42:19
1029
原创 校园失物招领项目--寻航
本项目基于二次开发,原项目使用微信小程序云开发作为后端,现使用Spring Boot开发,并集成私聊部分实现简单的聊天功能方便用户交流,前端基于 uniapp。本项目是用于帮助用户找回丢失物品的校园失物招领平台。
2024-08-07 23:10:45
313
原创 记一次线上SQL排查问题:CommunicationsException
这种排序通常发生在内存中(如果数据量不大),但如果内存不足,MySQL可能会将数据写入磁盘上的临时文件,然后对这些文件进行排序,会显著降低查询性能,尤其是当排序的数据量很大时。使用临时表,临时表会占用内存资源,如果系统中有大量并发查询都在使用临时表,可能会导致内存不足的问题。大概可以确定问题出在这个连表查询语句上,接下来通过SQL执行顺序(id),一步一步执行下来,发现果然是这个SQL执行时间特别长。发现这w表是与f的关联表,即w表的字段fid是f的主键,一般这种需要加唯一索引。
2024-08-01 10:41:22
361
原创 数据库中的事务
数据库软件或硬件可能会随时失效(包括正在执行写操作的过程)应用程序可能随时崩溃 (包括一系列操作执行到中间某一步)。应用与数据库节点之间的链接可能随时会中断,数据库节点之间也存在同样问题。多个客户端可能同时写人数据库,导致数据覆盖。客户端可能读到一些无意义的、 部分更新的数据。客户端之间由于边界条件竞争所引入的各种奇怪问题。 为了系统高可靠的目标,我们必须处理好上述问题,万一发生类似情况确保不会导致系统级的失效。
2024-07-29 10:17:23
379
原创 数据复制的三种方法及其问题
解决冲突最合适的方式可能还是依靠应用层,所有大多数多主节点复制模型都有工具来让用户编写应用代码来解决冲突。注意,冲突解决通常用户 单个行或者文档,而不是整个事务。因此,如果有一个原子事务包含不同写请求,每个写请求依然是分开考虑来解决冲突。
2024-07-24 21:59:23
1259
1
原创 excel导入导出
在Java后端开发中,操作Excel文件是一项非常常见的功能。无论是数据报表的导出,还是批量数据的导入,Excel都因其格式灵活、操作简便而被广泛使用。本文将介绍如何使用EasyExcel库来实现Java后端的Excel导入导出功能。
2024-07-17 10:25:41
334
原创 idea 连接服务器docker(SSH)
一:左下角服务点击加号选择docker连接或者设置里 构建、执行、部署下选择docker二:选择SSH连接,输入主机ip 及身份验证即可
2024-06-05 10:33:36
609
原创 微信小程序实现订阅消息通知
这里我使用了 Redis 存储 accessToken。此处根据自己的实际业务书写,有多个模板就需要使用泛型。一个模板直接用final即可。
2024-04-25 22:28:38
1664
2
原创 Codeforces Round 877(div.2) A-C
1是一定有的,那只要在 1 和 2之间放别的数,让1 2接不上,直到最后才能接上就行。即把n 插在1和2 中间。//上下相邻的差为5 不是质数 但多隔一个就是5*2 隔几个就是5*n 即只要隔着那差值一定不是质数。给一个数组,可以调换任意两个数的位置,求使得调换后 数组的子串是permutation数组的数量最少。给一个数组,这个数组是由其中的两个值通过 其差值的绝对值得到的。所以本题就是找 1 2 n的位置 然后让n和中间的换一个即可。看样例,如果有负数,必然输出负数,因为后得到的只能是非负数。
2023-06-05 19:34:16
183
1
原创 Atcoder abc 302
数据范围很小,就想着用搜索(不知道有没有更好的),每个字符串都用一个set存他能走的字符串(即只有一个字符不同),只要能一直走完n个,就是可以;在每个集合外面放置一个虚拟点,从集合里的点走到虚拟点代价为1,相反为0,输出的时候要减一。n个集合,,每个集合的点在1-m间。给一个 n*m的方阵,找到连续的 ”snuke" 字符串,要求是必须在同一条线上。给两个数组,从两个数组中各找一个数,差值不能大于k,使两个数和最大。既然要找最大,那肯定从最大的开始往小的找。1.连两个点,2.把一个点的所有边删掉;
2023-05-25 11:40:13
364
1
原创 cf round 874(div3)
给一个字符串,每次录制可以得到两个字符,新得到的字符串想要和前面组合起来必须第一个字符等于之前的最后一个字符,问最少需要录制几次。
2023-05-23 14:43:17
306
1
原创 5.17 写题
首先 ,删除两个相同度数的点,必然会引起其他点的度数改变。所以用sets[N]将度数相同的点维护起来,setr 存储需要删除的度数,。直到r为空 ,判断s是不是都被删完了就可以(虽然从数学角度可以证明一定能删完,但是挺难想的,还是多写个)。误区: 起初我是用vector 存图的,但交了发现内存超限 只能过80%,所以改用数组模拟;条边,没有重边和自环的无向图,每次可以选择两个度数相等的点删除,求删完所有点的方案。总结:以后存储图还是老老实实手打数组,不能贪图快了。
2023-05-17 01:52:31
107
1
原创 2023.5.15补题
3.用d[i] 记录每个点的有关边数 mapmp 记录 次数 因为mp没办法做相关的循环运算。1.刚开始先把暴力的做法写好 再从暴力的地方看看有没有哪能优化。而 每个数和自己本身做f()运算 结果为 0 所以不用考虑。训练时不知道怎么优化,10^6至少优化到nlogn。3和2做四次f ()运算 3和1做1次f()运算。所以 现在我们 要记录 每个数字出现的次数 go!每个点的d[u]为:2 2 2 3 2 1。上面的每个数都要和其他的数 做一次。总结:一道优化循环的题目。
2023-05-15 20:44:35
125
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人