<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Kprogram的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Kprogram</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Kprogram]]></copyright><item><title><![CDATA[Mysql 如何在 MGR 中使用非 Innodb 存储引擎]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/128976889</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/128976889</guid><author>Kprogram</author><pubDate>Fri, 10 Feb 2023 20:45:56 +0800</pubDate><description><![CDATA[如果想将自己的存储引擎用作 MGR 的引擎，在建表时加上 engine=my_db_engine 后缀，是会报错的。如果你有能力编码存储引擎，那么也有能力对 mysql 的源码进行改动并编译安装。且在配置 MGR 时，官方文档也要求关闭了mysql 中的其它引擎。暴力的改法是将判断条件直接改成 false，亲测可行。文明的改法是将自己的引擎加入判断条件中，我懒得这样改。只需要修改 MGR 插件源码中的两个位置即可。]]></description><category></category></item><item><title><![CDATA[Mysql 存储引擎设计：xa协议相关接口功能及实现]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/128975946</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/128975946</guid><author>Kprogram</author><pubDate>Fri, 10 Feb 2023 19:26:44 +0800</pubDate><description><![CDATA[分为了三个阶段，三个阶段之间可以并发进行，但每个阶段内顺序运行：第一个进入某个阶段的事务为 leader，后续进入的事务为 follower。这个接口的作用是等待 redo_log 进行刷盘，是进行组提交的接口。按道理日志只需要记录 uint64 大小的 xid 就行，但是 xit_t 并没有提供设置其 xid 的办法，只有 set_data() 设置其 data 数据。目前在 prepare_record 中将整个 xid_t  的内容都存入了（152b），恢复时会恢复一个完整的 xid_t。]]></description><category></category></item><item><title><![CDATA[Mysql 部署 MGR 集群]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/128975836</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/128975836</guid><author>Kprogram</author><pubDate>Fri, 10 Feb 2023 19:19:15 +0800</pubDate><description><![CDATA[本文介绍了部署mysql MGR 集群的基础办法]]></description><category></category></item><item><title><![CDATA[超详细的cmake入门教程【转载】]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/126010833</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/126010833</guid><author>Kprogram</author><pubDate>Wed, 27 Jul 2022 12:07:46 +0800</pubDate><description><![CDATA[分不同的项目布局案例，来讲解cmake的使用方法]]></description><category></category></item><item><title><![CDATA[CMU15445-project3-满分收获总结]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/125837906</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/125837906</guid><author>Kprogram</author><pubDate>Sun, 17 Jul 2022 22:03:30 +0800</pubDate><description><![CDATA[！！gradescope究极大BUG！！！开始之前ValueIndex数据存储三剑客tupleTableHeap数据表信息三剑客CatalogschemacolumnINSERTUPDATEDELETEHASHJOINLIMITDISTINCT排名拉了，没精力优化了太折磨了太痛苦了，看代码的时间比写代码的时间还多，很多天都处于完全没法动键盘的状态。SQL拆分成一棵执行树之后，其中的节点的功能承担者，也是这次实验主要要完成的部分。构造执行树时不会构造Executor，而是用后面的成员函数，和。........]]></description><category></category></item><item><title><![CDATA[CMU15445-project2-满分收获总结]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/125429778</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/125429778</guid><author>Kprogram</author><pubDate>Tue, 28 Jun 2022 16:42:19 +0800</pubDate><description><![CDATA[用来存储键值对的page，利用readable_[]判断当前index是否存有数据，occupied判断当前index是否装过数据（按道理这玩意儿没啥用）。而数组就用来存储键值对。
：其实可以看作是HashTable的信息存储地，因为需要并发控制以及保存关键信息，故直接利用一个page来存储这些信息，每次使用的时候提取该page出来就行。这里没有同以往的 TASK文档一样，明确告知我需要实现的文件在哪里，需要从最后面的测试需要提交的文件列表里面去找，但文档出现了...............]]></description><category></category></item><item><title><![CDATA[CMU15445-project1-满分收获总结]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/125391714</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/125391714</guid><author>Kprogram</author><pubDate>Tue, 21 Jun 2022 20:34:38 +0800</pubDate><description><![CDATA[0.0 关于线上测试的天坑
在gradescope上测试代码时，没有通过的案例如果显示的是超时，那不一定是因为死锁或者死循环！1.1线程安全
要求了线程安全但又没有说具体怎么做，以至于在最后才回来考虑上锁的问题。其实很简单，在头文件内声明一个锁。在实现的每个函数开头上锁，结尾释放就行。
注意事项：
1.每个return之前都要记得释放锁
2.关于死锁，如果都是开头上锁结尾解锁，根本不会有产生死锁的条件（请求并保持）。
3.如果在一个函数里调用了另一个使用lock的函数，百分百会卡死，因为这个函数的lock还]]></description><category></category></item><item><title><![CDATA[在vscode（win10）配置 CMU-15445-lab（linux子系统）]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/124375883</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/124375883</guid><author>Kprogram</author><pubDate>Sun, 24 Apr 2022 18:37:45 +0800</pubDate><description><![CDATA[CMU15445配置课程环境（win10）
课程要求是在linux环境运行，但win10可以安装linux子系统

文章目录CMU15445配置课程环境（win10）win10安装并配置linux子系统（Ubuntu）

win10安装并配置linux子系统（Ubuntu）
先下载linux

打开微软商店
直接搜Ubuntu，我下载的是18.04版（貌似最新版也是wsl1.0）
下载好尝试打开，大概率会报错，通常是因为没有打开子系统的开关，解决方法如下：

左下方搜索控制面板
点开控制面板 -&gt; “]]></description><category></category></item><item><title><![CDATA[数据库内核：研究生成长记录（附带资源）（最近更新：2023.02.10）]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/124363288</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/124363288</guid><author>Kprogram</author><pubDate>Sat, 23 Apr 2022 14:40:51 +0800</pubDate><description><![CDATA[作为一篇记录/资源帖，每月分享数据库学习进度，心得，以及学习资源整合到这一篇博客]]></description><category></category></item><item><title><![CDATA[【STL】系列目录]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/90408011</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/90408011</guid><author>Kprogram</author><pubDate>Tue, 21 May 2019 15:37:41 +0800</pubDate><description><![CDATA[字符串：string

向量：vector

栈：stack

队列：queue

优先队列：priority_queue

其它：emplace 与 push 的区别


]]></description><category></category></item><item><title><![CDATA[STL - priority_queue（优先队列）用法总结]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/90144649</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/90144649</guid><author>Kprogram</author><pubDate>Sun, 12 May 2019 20:49:40 +0800</pubDate><description><![CDATA[(我的STL相关的博客目录：https://blog.youkuaiyun.com/Kprogram/article/details/90408011）

(priority_queue-c++官网：http://www.cplusplus.com/reference/queue/priority_queue/）

(什么是队列以及普通队列的用法移步这里：https://blog.youkuaiyun.com/Kprog...]]></description><category></category></item><item><title><![CDATA[C++多线程编程（真实入门！）]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/89472995</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/89472995</guid><author>Kprogram</author><pubDate>Tue, 23 Apr 2019 18:24:35 +0800</pubDate><description><![CDATA[5分钟学会简单的C++多线程编程前言线程教程创建一个线程：CreateThread()创建一个带参线程：利用lpParameter参数等待指定线程结束。
前言
本篇博客使用的库：&lt;windows.h&gt; 提供的线程api（当然是使用操作系统自己提供的线程库的最好了啊）（关于线程函数的&gt;官方文档&lt;）
看博客前需要一些基本条件条件：

对线程有基本的理解
简单的C++面向过程编程...]]></description><category></category></item><item><title><![CDATA[c++实现线程池（真实入门！）]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/89437073</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/89437073</guid><author>Kprogram</author><pubDate>Tue, 23 Apr 2019 11:02:20 +0800</pubDate><description><![CDATA[用C++编写一个简单的线程池（使用windows.h自带函数）前言前提条件基本概念欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题，有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML...]]></description><category></category></item><item><title><![CDATA[Dijkstra算法为什么不能用于负权图]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/81220702</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/81220702</guid><author>Kprogram</author><pubDate>Wed, 19 Dec 2018 20:21:29 +0800</pubDate><description><![CDATA[Dijkstra算法是贪心算法，大概前提是，从当前的所有可能中就能找到全局的最优解，而负权图不满足这个条件（比如本文末尾的图例）

让我们从它的算法步骤上仔细分析一下：（如果需要算法详解点这里）


    1.将图上的初始点看作一个集合S，其它点看作另一个集合

    2.根据初始点，求出其它点到初始点的距离d[i] （若相邻，
        则d[i]为边权值；若不相邻，则d[i]为无限大...]]></description><category></category></item><item><title><![CDATA[python - 文件操作教程]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/83794070</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/83794070</guid><author>Kprogram</author><pubDate>Tue, 06 Nov 2018 21:13:20 +0800</pubDate><description><![CDATA[汇总了常用的文件处理方法

 

本文分为两部分，第一部分用于快速上手，第二部分用于系统地学习

第一部分：快速应用（几分钟学会简单的读写操作）

这部分内容适用于大多情况了

 

创建文件：在当前目录创建一个文件

用 open() 创建文件：  


'''  w 表示打开文件 data.txt 并清空其内容，若没有，就新建一个 '''
file = open('data.txt', 'w'...]]></description><category></category></item><item><title><![CDATA[python - 根据表达式打印真值表]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/83686154</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/83686154</guid><author>Kprogram</author><pubDate>Sat, 03 Nov 2018 20:31:34 +0800</pubDate><description><![CDATA[  输入逻辑表达式，输出真值表，支持六个基本逻辑运算

最终效果：

    输入合适公式（没有考虑优先级，只根据括号优先），输出时会提取其中的元素（比如这里有A B C），并打印真值表。



 算法思路：

    求值的一般顺序是：带入每个元素的值，求出式子的真值，所以可以分为两块：1.枚举元素值（枚举） 2.根据元素值求式子值（计算）

    我认为这个的难点在于枚举，我们既要想办法提取...]]></description><category></category></item><item><title><![CDATA[python - pyqt数字时钟]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/83623079</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/83623079</guid><author>Kprogram</author><pubDate>Thu, 01 Nov 2018 19:47:32 +0800</pubDate><description><![CDATA[ 用pyqt5实现一个简易的数字时钟



时钟功能：

  计时，开始与暂停，刷新并返回csdn访问量

使用到的库：

  PyQt5:

    pyqt应用：QApplication

    窗口：QWidget

    按钮：QPushButton

    LCD数字：QLCDNumber（这是个好东西）

    原件的布局：QVBoxLayout

    时间相关：QTime...]]></description><category></category></item><item><title><![CDATA[Python - 爬虫爬取和登陆github]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/83546302</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/83546302</guid><author>Kprogram</author><pubDate>Tue, 30 Oct 2018 19:56:57 +0800</pubDate><description><![CDATA[用API搜索GitHub中star数最多的前十个库，并用post方法登陆并点击收藏

一 用API搜索GitHub中star数最多的前十个库

利用GitHub提供的API爬取前十个star数量最多的Python库

    GitHub提供了很多专门为爬虫准备的API接口，通过接口可以爬取到便捷，易处理的信息。（这是GitHub官网的各种api介绍）

    我将要使用的链接是https://...]]></description><category></category></item><item><title><![CDATA[STL - string用法总结]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/82112889</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/82112889</guid><author>Kprogram</author><pubDate>Mon, 27 Aug 2018 18:21:41 +0800</pubDate><description><![CDATA[（我的STL相关的博客目录：https://blog.youkuaiyun.com/Kprogram/article/details/90408011）

（string-c++官网：http://www.cplusplus.com/reference/string/string/?kw=string）

stirng有什么使用价值呢？

字符数组是C中非常常用而又麻烦的一个东西：

  如果分配的初始空...]]></description><category></category></item><item><title><![CDATA[STL - emplace 与 push 的区别]]></title><link>https://blog.youkuaiyun.com/Kprogram/article/details/82055673</link><guid>https://blog.youkuaiyun.com/Kprogram/article/details/82055673</guid><author>Kprogram</author><pubDate>Sat, 25 Aug 2018 21:57:37 +0800</pubDate><description><![CDATA[（我的STL相关的博客目录：https://blog.youkuaiyun.com/Kprogram/article/details/90408011）

这里用stack来进行举例操作

第一点，push 的操作可以直接用于emplace：

  1.直接传入对象（int, double 或者 构造好了的对象）


//假设栈内的数据类型是data
class data {
  int a;
  int...]]></description><category></category></item></channel></rss>