<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fkuner的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/younothings</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; younothings]]></copyright><item><title><![CDATA[LeetCode系列54—螺旋矩阵]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/126920252</link><guid>https://blog.youkuaiyun.com/younothings/article/details/126920252</guid><author>younothings</author><pubDate>Sun, 18 Sep 2022 17:24:37 +0800</pubDate><description><![CDATA[【代码】LeetCode系列54—螺旋矩阵。]]></description><category></category></item><item><title><![CDATA[LeetCode系列（总）]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/125695764</link><guid>https://blog.youkuaiyun.com/younothings/article/details/125695764</guid><author>younothings</author><pubDate>Sun, 10 Jul 2022 16:00:41 +0800</pubDate><description><![CDATA[LeetCode系列]]></description><category></category></item><item><title><![CDATA[LeetCode系列8—字符串转换整数]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/124362153</link><guid>https://blog.youkuaiyun.com/younothings/article/details/124362153</guid><author>younothings</author><pubDate>Sat, 23 Apr 2022 12:25:12 +0800</pubDate><description><![CDATA[题意
字符串转换整数 (atoi)
题解
class Automaton {
    string state = "start";
    unordered_map&lt;string, vector&lt;string&gt;&gt; table = {
        {"start", {"start", "signed", "in_number", "end"}},
        {"signed", {"end", "end", "in_number", "end"}},
        {]]></description><category></category></item><item><title><![CDATA[leveldb源码解析系列—版本控制]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/123812796</link><guid>https://blog.youkuaiyun.com/younothings/article/details/123812796</guid><author>younothings</author><pubDate>Tue, 29 Mar 2022 09:43:04 +0800</pubDate><description><![CDATA[文章目录Version
Version

]]></description><category></category></item><item><title><![CDATA[CMU15-445：Database Systems Fall 2021]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/123676030</link><guid>https://blog.youkuaiyun.com/younothings/article/details/123676030</guid><author>younothings</author><pubDate>Wed, 23 Mar 2022 01:48:12 +0800</pubDate><description><![CDATA[Just to keep track of the course for myself]]></description><category></category></item><item><title><![CDATA[leveldb源码解析系列—SSTable]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/123561486</link><guid>https://blog.youkuaiyun.com/younothings/article/details/123561486</guid><author>younothings</author><pubDate>Thu, 17 Mar 2022 21:44:40 +0800</pubDate><description><![CDATA[文章目录概述SSTable文件格式
概述
SSTable是一种文件的组织格式，存储了有序的key-value，并且持久化在磁盘等稳定存储中。当内存中的Memtable达到阈值后，会转为Immutable Memtable，LevelDB的后台线程执行Minor Compaction会将Immutable Memtable转储到磁盘上的SSTable中。
SSTable文件格式
SSTable的文件格式可以参考doc/table_format.md

...]]></description><category></category></item><item><title><![CDATA[leveldb源码解析系列—Memtable]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/123543242</link><guid>https://blog.youkuaiyun.com/younothings/article/details/123543242</guid><author>younothings</author><pubDate>Thu, 17 Mar 2022 11:25:59 +0800</pubDate><description><![CDATA[文章目录Memtable介绍Memtable数据结构Memtable比较器Memtable实现SkipList
Memtable介绍
Memtable是内存中管理key-value的数据结构，一条数据插入到WAL后，会插入到Memtable中，当Memtable达到一定大小时，会变成Immutable Memtable，从而转储到磁盘上的SSTable，进行持久化。
涉及代码：db/memtable.h、db/memtable.cc、db/skiplist.h、db/skiplist.cc、db/dbfor]]></description><category></category></item><item><title><![CDATA[leveldb源码解析系列—基本数据结构]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/123545005</link><guid>https://blog.youkuaiyun.com/younothings/article/details/123545005</guid><author>younothings</author><pubDate>Thu, 17 Mar 2022 10:54:46 +0800</pubDate><description><![CDATA[Key

]]></description><category></category></item><item><title><![CDATA[LeetCode系列1114—按序打印]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/123366440</link><guid>https://blog.youkuaiyun.com/younothings/article/details/123366440</guid><author>younothings</author><pubDate>Wed, 09 Mar 2022 00:03:28 +0800</pubDate><description><![CDATA[题意
题解
方法三：条件变量
class Foo {
public:
    Foo() {}

    void first(function&lt;void()&gt; printFirst) {
        // printFirst() outputs "first". Do not change or remove this line.
        printFirst();
        index = 1;
        cv.notify_all();
    }

    vo]]></description><category></category></item><item><title><![CDATA[深入理解事务隔离级别]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/122654199</link><guid>https://blog.youkuaiyun.com/younothings/article/details/122654199</guid><author>younothings</author><pubDate>Tue, 08 Mar 2022 17:24:18 +0800</pubDate><description><![CDATA[事务概念
并发事务可能出现的异常情况
事务隔离级别

]]></description><category></category></item><item><title><![CDATA[paper reading list]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/123209016</link><guid>https://blog.youkuaiyun.com/younothings/article/details/123209016</guid><author>younothings</author><pubDate>Tue, 01 Mar 2022 16:19:54 +0800</pubDate><description><![CDATA[分布式事务
数据库

]]></description><category></category></item><item><title><![CDATA[LeetCode系列297—二叉树的序列化与反序列化]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/123080620</link><guid>https://blog.youkuaiyun.com/younothings/article/details/123080620</guid><author>younothings</author><pubDate>Wed, 23 Feb 2022 00:19:24 +0800</pubDate><description><![CDATA[题意
297. 二叉树的序列化与反序列化
题解
BFS
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */

static std::vector&lt;std::stri]]></description><category></category></item><item><title><![CDATA[leveldb源码解析系列—主要流程]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/122880783</link><guid>https://blog.youkuaiyun.com/younothings/article/details/122880783</guid><author>younothings</author><pubDate>Fri, 11 Feb 2022 14:56:16 +0800</pubDate><description><![CDATA[Get
Write
Compaction

]]></description><category></category></item><item><title><![CDATA[leveldb源码解析系列—Log]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/122825390</link><guid>https://blog.youkuaiyun.com/younothings/article/details/122825390</guid><author>younothings</author><pubDate>Tue, 08 Feb 2022 16:32:28 +0800</pubDate><description><![CDATA[Log文件组织方式
前文《leveldb源码解析系列—整体架构》中提到了Log文件，本篇对Log文件的组织方式进行解析
leveldb/doc/log_format.md中介绍了Log文件的组织方式

The log file contents are a sequence of 32KB blocks.  The only exception is that the tail of the file may contain a partial block.

Each block consists of ]]></description><category></category></item><item><title><![CDATA[leveldb源码解析系列1—基本数据结构]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/122824990</link><guid>https://blog.youkuaiyun.com/younothings/article/details/122824990</guid><author>younothings</author><pubDate>Tue, 08 Feb 2022 15:35:10 +0800</pubDate><description><![CDATA[本篇介绍leveldb中基本的数据结构
Slice
class Slice {
 public:
 ...
 private:
  const char* data_;
  size_t size_;
}

封装了C语言风格的字符串，将data和size包装成Slice使用，直接操作指针避免不必要的数据拷贝，但是同样也增加了风险，需要使用者严格控制Slice内容的申请和释放
Option

...]]></description><category></category></item><item><title><![CDATA[leveldb源码解析系列0—准备工作]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/122416335</link><guid>https://blog.youkuaiyun.com/younothings/article/details/122416335</guid><author>younothings</author><pubDate>Mon, 10 Jan 2022 18:18:04 +0800</pubDate><description><![CDATA[前言：
闭门造车是不可取的，一股脑的写代码并不能带来质的提高，只有向更优秀的代码学习才能提高自己，最近一直想读一个质量高且符合我未来想从事方向的源码，但是我深知读源码的困难，害怕不能坚持下去最后也没有收获，所以迟迟没有开始。未来，我可能会从事分布式系统、数据库、存储相关领域，因此leveldb成为一个极佳的选择，再加上阅读leveldb的人数不少，可参考的资料必然不少，这也会降低我读源码的难度。废话不多说，以此博客系列来记录一下我学习的过程吧！
收集到的参考资料：

...]]></description><category></category></item><item><title><![CDATA[KVM+OVS+Ryu实践]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/122307788</link><guid>https://blog.youkuaiyun.com/younothings/article/details/122307788</guid><author>younothings</author><pubDate>Wed, 05 Jan 2022 10:53:59 +0800</pubDate><description><![CDATA[OVS安装
apt-get install openvswitch-switch

https://docs.openvswitch.org/en/latest/intro/install/general/

]]></description><category></category></item><item><title><![CDATA[读书笔记：《Designing Data-Intensive Applications》]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/122268658</link><guid>https://blog.youkuaiyun.com/younothings/article/details/122268658</guid><author>younothings</author><pubDate>Sat, 01 Jan 2022 16:39:13 +0800</pubDate><description><![CDATA[文章目录第一部分第1章 可靠、可扩展与可维护的应用系统第2章 数据模型与查询语言关系模型与文档模型
第一部分
第1章 可靠、可扩展与可维护的应用系统
第2章 数据模型与查询语言
关系模型与文档模型
文档数据模型：模式灵活、局部性
关系模型：联结、多对一和多对多语义

...]]></description><category></category></item><item><title><![CDATA[LeetCode系列148—排序链表]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/122205629</link><guid>https://blog.youkuaiyun.com/younothings/article/details/122205629</guid><author>younothings</author><pubDate>Wed, 29 Dec 2021 00:06:33 +0800</pubDate><description><![CDATA[题意
148.排序链表
题解
方法一：自顶向下归并排序
class Solution {
public:
    ListNode* sortList(ListNode* head) {
        return sortList(head, nullptr);
    }

    ListNode* sortList(ListNode* head, ListNode* tail) {
        if (head == nullptr) {
            return head;
  ]]></description><category></category></item><item><title><![CDATA[LeetCode系列147—对链表进行插入排序]]></title><link>https://blog.youkuaiyun.com/younothings/article/details/122205588</link><guid>https://blog.youkuaiyun.com/younothings/article/details/122205588</guid><author>younothings</author><pubDate>Tue, 28 Dec 2021 23:58:51 +0800</pubDate><description><![CDATA[题意
147.对链表进行插入排序
题解
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) ]]></description><category></category></item></channel></rss>