2024年4月28日

MIT 6.5830 simpleDB Lab4

摘要: Exercise 1 需要完成的是为事务加锁,涉及到修改BufferPool.java中的getPage()、unsafeReleasePage()和holdsLock()方法。实验手册建议定义一个LockManager类来维护事务和锁的状态。 实验手册为了实现事务的ACID,要求实现共享锁和排他锁 阅读全文
posted @ 2024-04-28 16:16 未连接到互联网 阅读(1) 评论(0) 推荐(0) 编辑
2024年4月25日

MIT 6.5830 simpleDB Lab3

摘要: Exercise 1 需要完成的是: src/java/simpledb/optimizer/IntHistogram.java 实验手册介绍了基于桶的方法来计算直方图,以便进行选择估计。直方图是一种统计报告,表示数据分布的频率。这里要完成的就是记录表的信息,实现基于桶的方法。 IntHistogr 阅读全文
posted @ 2024-04-25 15:49 未连接到互联网 阅读(0) 评论(0) 推荐(0) 编辑
2024年4月22日

MIT 6.5830 simpleDB Lab2

摘要: Exercise 1 需要完成的是: src/java/simpledb/execution/Predicate.java src/java/simpledb/execution/JoinPredicate.java src/java/simpledb/execution/Filter.java s 阅读全文
posted @ 2024-04-22 16:51 未连接到互联网 阅读(6) 评论(0) 推荐(0) 编辑
2024年4月17日

MIT 6.5830 simpleDB Lab1

摘要: Exercise 1 需要完成的代码有: src/java/simpledb/storage/TupleDesc.java src/java/simpledb/storage/Tuple.java Tuple是simpleDB的元组,由多个Field(字段)组成,TupleDesc负责描述Tuple 阅读全文
posted @ 2024-04-17 15:25 未连接到互联网 阅读(4) 评论(0) 推荐(0) 编辑
2024年3月22日

vector resize和reserve的区别

摘要: 在 C++ 的标准库中,resize() 和 reserve() 是用于操作 std::vector 容器的两个不同函数,它们的作用和效果有所区别。 resize() 函数 resize() 函数用于改变 std::vector 容器的大小,即调整容器中元素的数量。 如果当前 vector 的大小小 阅读全文
posted @ 2024-03-22 14:06 未连接到互联网 阅读(20) 评论(0) 推荐(0) 编辑
2024年3月20日

Linux下生成核心转储core

摘要: 为了方便进行分析调试,希望当程序发生崩溃或者收到 SIGSEGV、SIGABRT 等信号时,系统会生成相应的核心转储文件。 核心转储大小限制 首先,要检查核心转储的大小限制。可以使用 ulimit 命令来查看当前用户的核心转储大小限制: ulimit -c 如果输出为 0,则表示不生成核心转储文件。 阅读全文
posted @ 2024-03-20 19:52 未连接到互联网 阅读(18) 评论(0) 推荐(0) 编辑

Linux下的I/O多路复用

摘要: 在 I/O 多路复用中,epoll、poll 和 select 是常用的三种机制,它们都可以用于实现事件驱动的网络编程。 select select 是 Unix 系统最早引入的 I/O 多路复用函数,它允许一个进程监视多个文件描述符,当其中任何一个文件描述符准备好进行 I/O 操作时,select 阅读全文
posted @ 2024-03-20 19:51 未连接到互联网 阅读(2) 评论(0) 推荐(0) 编辑

#pragma指令

摘要: pragma 是一个在 C 和 C++ 中使用的编译器指令,用于向编译器发出特定的命令或控制编译的行为。 控制编译警告 通过 #pragma warning 指令,可以在特定位置或范围内控制编译器的警告行为,如禁止某个警告、将警告作为错误处理等。例如禁止特定的编译警告: #pragma warnin 阅读全文
posted @ 2024-03-20 19:51 未连接到互联网 阅读(6) 评论(0) 推荐(0) 编辑

使用cgroups进行资源限制和管理

摘要: cgroups 是内核提供的一种机制,可以用来限制一组进程的资源使用。通过创建 cgroups 并设置相应的限制参数,可以确保多个程序共同运行时每个程序占用的资源受到限制。 挂载 cgroup 文件系统 查看 cgroup 是否已经挂载: mount | grep cgroup 如果没有挂载,则编辑 阅读全文
posted @ 2024-03-20 19:50 未连接到互联网 阅读(11) 评论(0) 推荐(0) 编辑
2024年3月17日

内存泄漏调试工具

摘要: asan、valgrind、coverity和gpertools都是用于帮助开发人员发现和调试代码中的各种问题的工具,但它们在特定方面有着不同的重点和功能。 ASan (AddressSanitizer): ASan 常用于 C/C++ 代码的静态和动态内存访问错误检测,通过在编译时注入额外的代码来 阅读全文
posted @ 2024-03-17 22:52 未连接到互联网 阅读(7) 评论(0) 推荐(0) 编辑