<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[梦初始的地方，它也需要生根发芽。]]></title><description><![CDATA[我们分担寒潮、风雷、霹雳；
我们共享雾霭、流岚、虹霓。
仿佛永远分离，
却又终身相依。]]></description><link>https://blog.youkuaiyun.com/FEATHER2016</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; FEATHER2016]]></copyright><item><title><![CDATA[Clean Code - Meaningful Name]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/151403575</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/151403575</guid><author>FEATHER2016</author><pubDate>Wed, 10 Sep 2025 18:10:27 +0800</pubDate><description><![CDATA[《Clean Code》摘要：好代码应消除重复、提高表达力、构建简单抽象。命名需有意义，避免误导，做有效区分，使用可读、可搜索的名称，避免编码和思维映射。类名用名词，方法名用动词，每个概念对应一个词，避免双关。优先使用专业术语或问题领域词汇，为名称添加上下文但不冗余。命名是教学问题，需培养描述技巧和共有文化背景。]]></description><category></category></item><item><title><![CDATA[LevelDB源码分析（一）安装编译和简单Demo]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/141276258</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/141276258</guid><author>FEATHER2016</author><pubDate>Tue, 20 Aug 2024 20:39:32 +0800</pubDate><description><![CDATA[snappy: levelDB中会使用snappy压缩算法来对数据进行压缩，能够在不影响读写性能的情况下减小数据存储空间。LevelDB是 Google 编写的key-value存储库，提供从Key到Value的有序映射。其次，我们可以自己写Demo进行测试。LevelDB下载地址：https://github.com/google/leveldb。注意：上述命令编译的是Release版本，如果想要Debug，最后一条命令可以改为。首先可以使用leveldb/benchmarks目录下的文件进行测试。]]></description><category></category></item><item><title><![CDATA[CMU 15-445 Lab1 - Buffer Pool Manager]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/121248062</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/121248062</guid><author>FEATHER2016</author><pubDate>Wed, 10 Nov 2021 14:41:07 +0800</pubDate><description><![CDATA[Lab1 - Buffer Pool Manager
实验指导书


构建一个新的面向磁盘的存储管理器，这样的存储管理器假定数据库的主要存储位置在磁盘上。


在存储管理器中实现缓冲池。缓冲池负责将 pag 从主存到磁盘来回移动。允许 DBMS 支持大于系统可用内存量的数据库。缓冲池的操作对系统中的其他部分是透明的。例如，系统使用其唯一标识符 (&nbsp;page_id_t)向缓冲池请求页面，但它不知道该页面是否已经在内存中，或者系统是否必须从磁盘中检索它。


实现需要是线程安全的。多个线程将同时访问内]]></description><category></category></item><item><title><![CDATA[CMU15-445 Lab0 - C++ Primer]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/121170398</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/121170398</guid><author>FEATHER2016</author><pubDate>Fri, 05 Nov 2021 20:45:23 +0800</pubDate><description><![CDATA[Lab0- C++ Primer

???? unique_ptr、矩阵相乘、gdb等。

代码下载


按照项目下的文档步骤：
// 1. 新建一个仓库 bustub-private
// 2. clone cmu db 远程代码到本地
git clone --bare https://github.com/cmu-db/bustub.git bustub-public
cd bustub-public
// 3. mirror到自己刚创建的远程仓库
git push --mirror git@githu]]></description><category></category></item><item><title><![CDATA[实验指导书（翻译）Project 4: Transactions]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/120912259</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/120912259</guid><author>FEATHER2016</author><pubDate>Fri, 22 Oct 2021 19:48:04 +0800</pubDate><description><![CDATA[Project 4: Transactions
在之前的项目中，你已经建立了一个 key/value 数据库，通过使用 Raft，该数据库在多个节点上是一致的。要做到真正的可扩展，数据库必须能够处理多个客户端。有了多个客户端，就有了一个问题：如果两个客户端试图 "同时 "写同一个 key，会发生什么？如果一个客户写完后又立即读取该 key，他们是否应该期望读取的值与写入的值相同？在 Project 4 中，你将通过在我们的数据库中建立一个事务系统来解决这些问题。
该事务系统将是客户端（TinySQL）和服务]]></description><category></category></item><item><title><![CDATA[实验指导书（翻译）Project3 MultiRaftKV]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/120912220</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/120912220</guid><author>FEATHER2016</author><pubDate>Fri, 22 Oct 2021 19:45:58 +0800</pubDate><description><![CDATA[Project 3 MultiRaftKV
在 Project2 中，你建立了一个基于Raft的高可用的kv服务器，做得很好！但还不够，这样的kv服务器是由单一的 raft 组支持的，不能无限扩展，并且每一个写请求都要等到提交后再逐一写入 badger，这是保证一致性的一个关键要求，但也扼杀了任何并发性。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h9tK67iR-1634903019137)(https://github.com/tidb-incubator/tinyk]]></description><category></category></item><item><title><![CDATA[实验指导书（翻译）Project2 RaftKV]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/120908570</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/120908570</guid><author>FEATHER2016</author><pubDate>Fri, 22 Oct 2021 16:26:36 +0800</pubDate><description><![CDATA[Project2 RaftKV
Raft 是一种共识算法，其设计理念是易于理解。我们可以在Raft网站上阅读关于 Raft 的材料，Raft 的交互式可视化，以及其他资源，包括Raft的扩展论文。
在这个项目中，将实现一个基于raft的高可用kv服务器，这不仅需要实现 Raft 算法，还需要实际使用它，这会带来更多的挑战，比如用 badger 管理 Raft 的持久化状态，为快照信息添加流控制等。
该项目有3个部分需要去实现，包括：

实现基本的 Raft 算法
在 Raft 之上建立一个容错的KV服务
增]]></description><category></category></item><item><title><![CDATA[实验指导书（翻译）Project1 StandaloneKV]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/120896915</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/120896915</guid><author>FEATHER2016</author><pubDate>Thu, 21 Oct 2021 23:13:44 +0800</pubDate><description><![CDATA[Project1 StandaloneKV
在这个项目中，我们将会在列族的支持下建立一个独立的 key/value 存储 gRPC 服务。Standalone 意味着只有一个节点，而不是一个分布式系统。列族（CF, Column family）是一个类似 key 命名空间的术语，即同一个 key 在不同列族中的值是不同的。你可以简单地将多个 CF 视为独立的小型数据库。CF 在 Project4 中被用来支持事务模型。
该服务支持四个基本操作：Put/Delete/Get/Scan，它维护了一个简单的 ke]]></description><category></category></item><item><title><![CDATA[事务隔离级别的历史]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/120142986</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/120142986</guid><author>FEATHER2016</author><pubDate>Mon, 06 Sep 2021 19:54:11 +0800</pubDate><description><![CDATA[隔离级别
一、概述
隔离级别是设计数据库系统的重要要求。对于事务来说，按照既定顺序一个接一个地执行，那么数据库最终一定会得到一个确定的正确的结果。然而，这样的实现对于现如今的系统来说代价太大。严格地顺序执行意味着事务之间的并发度为0，导致系统的性能不佳。
我们知道，并不是所有的系统都要求事务达到一个强的正确性的顺序，只要能够提供一个一致性的状态，可以适当降低对事务正确性的要求。因此，我们需要一个能够提供不同要求的分级标准，根据应用的需求，来设计数据库系统不同隔离级别的实现，从而在满足应用要求的同时，也能够尽]]></description><category></category></item><item><title><![CDATA[Strong and Efficient Consistency with Consistency-Aware Durability(组会讲解)]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/108584858</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/108584858</guid><author>FEATHER2016</author><pubDate>Fri, 20 Nov 2020 19:40:42 +0800</pubDate><description><![CDATA[有道云笔记：内容与此文章一致
思维导图：本篇论文思维导图
一、介绍

一致性划分
（1）按照一致性的强弱程度
一致性


（2）一般划分
另一种划分

2. 持久化模型



跨客户端单调读一致性：
从客户端读取的状态至少与之前从任何客户端读取时返回的状态是一样新的，不管是否有故障，也不管是否跨会话。


内容：
实现跨客户端单调读取一致性的方案，高性能+强一致性，支持在副本读取。对于可容忍写完后数据同步到大多数成员组之前机器故障导致数据丢失的应用来说，可以解决问题。


二、CAD(consistency]]></description><category></category></item><item><title><![CDATA[Strong and Efficient Consistency with Consistency-Aware Durability（FAST 2020）翻译]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/108391890</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/108391890</guid><author>FEATHER2016</author><pubDate>Thu, 03 Sep 2020 20:13:59 +0800</pubDate><description><![CDATA[摘要

我们介绍了一致性感知持久性性或CAD，这是分布式存储中一种新的持久性方法，它可以在提供高性能的同时实现强一致性。我们通过设计跨客户端的单调读取来展示这种方法的有效性，它是一种新颖的强一致性属性，它在基于领导者的系统中提供跨故障和会话的单调读取。我们构建了ORCA，这是ZooKeeper的一个修改版本，实现了CAD和跨客户端单调读取。我们的实验表明，ORCA在提供强一致性的同时，与弱一致性的ZooKeeper的性能紧密匹配。同强一致性的ZooKeeper相比，ORCA显著性地提供了更高的吞吐量(1.8]]></description><category></category></item><item><title><![CDATA[Mit 6.824笔记（持续更新，欢迎指正）]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/106272871</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/106272871</guid><author>FEATHER2016</author><pubDate>Fri, 22 May 2020 09:21:34 +0800</pubDate><description><![CDATA[Introduction
1.什么是分布式系统?

核心：通过网络使一群计算机通过相互通信来完成一些连贯的任务。
例子：存储为大网站或者大数据计算（MapReduce）以及点对点文件共享等等
原因：许多关键的基础设施是分布式的

2.为什么人们要构建分布式系统?（以此获得更高的性能）

通过并行增加容量（Parallelism）
通过复制来容忍错误（fault tolerance）
使计算物理上接近外部实体（Physical）
通过隔离实现安全（security / isolated）
困难:
并发编程和复]]></description><category></category></item><item><title><![CDATA[Go语言圣经练习题(私人答案，持续更新，欢迎讨论)]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/106196166</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/106196166</guid><author>FEATHER2016</author><pubDate>Mon, 18 May 2020 17:14:11 +0800</pubDate><description><![CDATA[Go语言圣经网址：
练习 1.1： 修改echo程序，使其能够打印os.Args[0]，即被执行命令本身的名字。
package main

import (
	"fmt"
	"os"
)

func main() {
	//定义两个string类型的变量
	var s, sep string
	//循环,每次加一个，空格隔开
	//修改：将1改为0,名字是0对应的
	for i:=0; i&lt;len(os.Args); i++{
		s += sep + os.Args[i]
		sep = " "
]]></description><category></category></item><item><title><![CDATA[Go语言安装（Windows 64bit）]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/106046945</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/106046945</guid><author>FEATHER2016</author><pubDate>Mon, 11 May 2020 09:39:26 +0800</pubDate><description><![CDATA[一、简介及安装
简介
2012年有了Go1的稳定版本。Go语言适用于高性能的分布式系统，支持海量并行。Go是一个精小强大的现代语言。
安装

Go语言安装：Windows 64bit
首先，打开网址：https://golang.google.cn/dl/   go1.4.windows-amd64.msi
选择win64的安装包

下载完成后，安装




这里注意，可以放在自己选择的位置，不必默认，但是会多几步配置环境变量的操作！


结束安装。
先看一下我们的文件位置（我的是F:\Go），记住！！！
]]></description><category></category></item><item><title><![CDATA[R语言 安装过程]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/102873673</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/102873673</guid><author>FEATHER2016</author><pubDate>Sat, 02 Nov 2019 16:54:37 +0800</pubDate><description><![CDATA[安装网址：R网址


https://www.r-project.org/





3.
4.
5.如果是第一次安装，选择base

6.

7.下载完成之后，双击运行。
8.选择需要的语言

9.

10.

11.

12.

13.

14.

15.

16.打开之后的界面。

恭喜，安装结束，开始学习，go ahead！

...]]></description><category></category></item><item><title><![CDATA[识别浮点常量问题]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/82822925</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/82822925</guid><author>FEATHER2016</author><pubDate>Sun, 23 Sep 2018 16:29:45 +0800</pubDate><description><![CDATA[识别浮点常量问题
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
编译器在对程序进行编译之前，首先要进行语法分析。通常，程序被分解成若干个小单元，然后和语言的语法模式进行匹配。在分析表达式的时候，变量的类型在变量声明的时候就决定了；而常量的类型需要从常量的形式来判断。
假设你是自动编译器（ACM）开发小组的一员，负责P...]]></description><category></category></item><item><title><![CDATA[小C语言--词法分析程序]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/82804411</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/82804411</guid><author>FEATHER2016</author><pubDate>Fri, 21 Sep 2018 17:06:41 +0800</pubDate><description><![CDATA[Time Limit: 1000 ms Memory Limit: 5000 KiB
Submit Statistic
Problem Description
小C语言文法

&amp;lt;程序&amp;gt;→(){&amp;lt;声明序列&amp;gt;&amp;lt;语句序列&amp;gt;}
&amp;lt;声明序列&amp;gt;→&amp;lt;声明序列&amp;gt;&amp;lt;声明语句&amp;gt;|&amp;lt;声明语句&amp;gt;|&amp;lt;空&amp;gt;
&am]]></description><category></category></item><item><title><![CDATA[MSP430单片机原理及应用 实验]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/80841819</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/80841819</guid><author>FEATHER2016</author><pubDate>Sun, 02 Sep 2018 10:13:09 +0800</pubDate><description><![CDATA[单片机原理及应用 课程实验（二）

实验项目：MSP430简单程序设计 
实验目的：学会用C语言进行简单程序设计 
实验要求：掌握编写排序程序 
实验内容： 
（1）设计一个对8个数据（0-255，任意设置）的由小到大排序程序。 
（2）将结果显示在LCD显示器上。 
程序代码如下：



#include &amp;amp;amp;amp;amp;amp;lt;msp430x14x.h&amp;amp;amp;amp;amp;amp;gt;
#include &amp;amp;amp;amp;amp;qu]]></description><category></category></item><item><title><![CDATA[lingo 练习]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/81873021</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/81873021</guid><author>FEATHER2016</author><pubDate>Mon, 20 Aug 2018 16:11:28 +0800</pubDate><description><![CDATA[3、某医院护士值班班次、每班工作时间及各班所需护士数如表所示.每班护士 
值班开始时向病房报到，并连续工作8小时.试决定该医院最少需要多少名护士， 
以满足轮班需要. 


model:
min = x1+x2+x3+x4+x5+x6;
x6+x1 &amp;gt;= 60;
x1+x2 &amp;gt;= 70;
x2+x3 &amp;gt;= 60;
x3+x4 &amp;gt;= 50;
x4+x5 &amp;gt;= 20;
x...]]></description><category></category></item><item><title><![CDATA[MSP430定时器综合试验]]></title><link>https://blog.youkuaiyun.com/FEATHER2016/article/details/80851565</link><guid>https://blog.youkuaiyun.com/FEATHER2016/article/details/80851565</guid><author>FEATHER2016</author><pubDate>Fri, 29 Jun 2018 08:43:46 +0800</pubDate><description><![CDATA[MSP430定时器综合试验

1.实验目的： 学会定时器使用。

2.实验要求：掌握定时器的定时控制编程。

3.实验内容

（1）编写键盘扫描程序。

（2）编写LED显示程序。

（3）用定时器控制8个LED循环显示程序（间隔时间1秒）。

（4）编写用键控制LED灯循环方向，按键可以随时切换。。

代码如下：

#include &amp;lt;msp430x14x.h&amp;gt;
#include &quot;...]]></description><category></category></item></channel></rss>