-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
36 lines (36 loc) · 28.8 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!doctype html><html lang=en dir=auto><head><meta name=generator content="Hugo 0.140.2"><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name=robots content="index, follow"><title>Gy's Blog</title>
<meta name=description content><meta name=author content><link rel=canonical href=https://z1ggy-o.github.io/><link crossorigin=anonymous href=/assets/css/stylesheet.d6fcd20a4fb86efa4dfac8ec95da60244cc8871042183da1ef28e3a762ad79c8.css integrity="sha256-1vzSCk+4bvpN+sjsldpgJEzIhxBCGD2h7yjjp2Ktecg=" rel="preload stylesheet" as=style><link rel=icon href=https://z1ggy-o.github.io/favicon.ico><link rel=icon type=image/png sizes=16x16 href=https://z1ggy-o.github.io/favicon-16x16.png><link rel=icon type=image/png sizes=32x32 href=https://z1ggy-o.github.io/favicon-32x32.png><link rel=apple-touch-icon href=https://z1ggy-o.github.io/apple-touch-icon.png><link rel=mask-icon href=https://z1ggy-o.github.io/safari-pinned-tab.svg><meta name=theme-color content="#2e2e33"><meta name=msapplication-TileColor content="#2e2e33"><link rel=alternate type=application/rss+xml href=https://z1ggy-o.github.io/index.xml><link rel=alternate type=application/json href=https://z1ggy-o.github.io/index.json><link rel=alternate hreflang=en href=https://z1ggy-o.github.io/><noscript><style>#theme-toggle,.top-link{display:none}</style><style>@media(prefers-color-scheme:dark){:root{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51)}.list{background:var(--theme)}.list:not(.dark)::-webkit-scrollbar-track{background:0 0}.list:not(.dark)::-webkit-scrollbar-thumb{border-color:var(--theme)}}</style></noscript><link rel=stylesheet href=https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css integrity=sha384-AfEj0r4/OFrOo5t7NnNe46zW/tFgW6x/bCJG8FqQCEo3+Aro6EYUG4+cU+KJWu/X crossorigin=anonymous><script defer src=https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js integrity=sha384-g7c+Jr9ZivxKLnZTDUhnkOnsh30B4H0rpLUpJ4jAIKs4fnJI+sEnkvrMWph2EDg4 crossorigin=anonymous></script><script defer src=https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js integrity=sha384-mll67QQFJfxn0IYznZYonOWZ644AWYC+Pt2cHqMaRhXVrursRwvLnLaebdGIlYNa crossorigin=anonymous onload=renderMathInElement(document.body)></script><meta property="og:url" content="https://z1ggy-o.github.io/"><meta property="og:site_name" content="Gy's Blog"><meta property="og:title" content="Gy's Blog"><meta property="og:locale" content="en-us"><meta property="og:type" content="website"><meta name=twitter:card content="summary"><meta name=twitter:title content="Gy's Blog"><meta name=twitter:description content><script type=application/ld+json>{"@context":"https://schema.org","@type":"Organization","name":"Gy's Blog","url":"https://z1ggy-o.github.io/","description":"","logo":"https://z1ggy-o.github.io/favicon.ico","sameAs":[]}</script></head><body class=list id=top><script>localStorage.getItem("pref-theme")==="dark"?document.body.classList.add("dark"):localStorage.getItem("pref-theme")==="light"?document.body.classList.remove("dark"):window.matchMedia("(prefers-color-scheme: dark)").matches&&document.body.classList.add("dark")</script><header class=header><nav class=nav><div class=logo><a href=https://z1ggy-o.github.io/ accesskey=h title="Gy's Blog (Alt + H)">Gy's Blog</a><div class=logo-switches><button id=theme-toggle accesskey=t title="(Alt + T)"><svg id="moon" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg><svg id="sun" width="24" height="18" viewBox="0 0 24 24" fill="none" stroke="currentcolor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg></button></div></div><ul id=menu><li><a href=https://z1ggy-o.github.io/posts/ title=Posts><span>Posts</span></a></li><li><a href=https://z1ggy-o.github.io/weekly/ title=Logs><span>Logs</span></a></li><li><a href=https://z1ggy-o.github.io/archives/ title=Archives><span>Archives</span></a></li><li><a href=https://z1ggy-o.github.io/tags/ title=Tags><span>Tags</span></a></li><li><a href=https://z1ggy-o.github.io/search/ title="Search (Alt + /)" accesskey=/><span>Search</span></a></li></ul></nav></header><main class=main><article class="first-entry home-info"><header class=entry-header><h1>👋 Welcome to Gy’s Log</h1></header><div class=entry-content>Hi, this is gy. Hope you can find someting interesting or useful here.</div><footer class=entry-footer><div class=social-icons></div></footer></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>Weekly Digest: 2025-01-12</h2></header><div class=entry-content><p>新年后的第一周,计划重新养成早起的习惯,多腾挪一些时间出来给最重要的事情。但是天气严寒,温暖的被窝总是太诱人 ;) 下周再努力吧。
The digital problems do not always have digital solutions – Cal Newport
这是我最近感触最深的事实。我们花费了太多时间在数字化的世界中,但有些时候更先进的数字化解决方案并不是最有效,最让人感到幸福的。不停地刷手机最后只得到空虚;各种所谓的效率软件层出不穷,但最后帮助我最大的还是最朴素的纸笔。
学到啥 时间管理相关
如何超过99%的人: 时间管理的奥秘 – MoneyXYZ 时间管理的本质,是将时间花在真正重要的事情上面。如果你想获得诺贝尔奖,那么你就得花时间研究值得获得诺贝尔奖的课题上。不重要的事情上面,不需要浪费时间。 这个观点也和《最重要的事只有一件》这本书一致 坚持 5 点起床第二年,我都干了点儿啥? – MoneyXYZ 一份可行的早起执行计划 理财相关
实现财富自由一定要零负债吗? – MoneyXYZ MoneyXYZ 提供了一个简单的公式来检验我们的负债情况,以帮助我们进行财务方面的决策:$$(收入 - 目标储蓄额 - 非债务性支出) / 负债支出 $$ 通过该公式我们可以简单快速地审查当前的负债状况和自己目前的财务安全边际。我通过该公式的计算,很快就打消了购车的念头。因为购车这类消费本身会带来负债的同时,还会带来附加消费,使得我们的支出大幅增加,但是又没有提升我们的收入 良性的负债是我们可以承担的负债,且最好能够提振我们的收入 躺平是通往财富自由的第一步 – MoneyXYZ 人们感到厌倦,想要躺平,是因为现代社会系统已经从教育,就业,消费,个人财务,养老五个方面牢牢将我们困住,让人们成为了薪资的奴隶。 而走向自由的方式,就是逐渐从这五个方面与系统脱钩。最容易的是消费,因为消费是我们直接可控的。消费脱钩之后,才可能从个人财务上脱钩,即把消费剩下的钱积累为自己的资本。然后是职业上的脱钩,退休的脱钩,最终让自己的子女可以从教育上脱钩,实现自由。 推荐读物:Early Retirement Extreme 财经知识
了解国债 – 小 Lin 说 央行和国债的关系,是通过有稳定的借债方给政府提供资金,继而进行经济调控。没有央行介入的情况下,国债也可以发行。但现今世界,主流国家都在大力发债,没有央行的帮助,债务调控会很困难 正好最近的新闻是停止了对国债的购买。通过这个视频,了解了,其目的大概也是为了控制国债的利息。因为中央大幅借债才刚刚开始,现在如果长期国债的利率就拔高,之后借债成本就会变高 Vim User Manual: 3. Moving around
从来没有真正读过 vim 的文档,最近计划先把 user manual 给读一遍。 Vim 的移动从方式来说其实大致就是 5 种方式,上下左右这种去除,就剩下 4 种: Word movement。w, b 之类命令的移动,每次按照一个词跳转,如何判定什么是一个 word 由 iskeyword option 来指定 Pair match。% 命令,哪些内容是一对 pair 是由 matchpairs option 指定 Search。Search 其实是最常用的移动方式,且有通用性。:set ignorecase 可以忽略大小写 Marks。Jump list 记录其实也是通过 marks 来工作的,它将位置信息记录在寄存器中,用于在之后跳转使用。有些特殊的寄存会在一些操作的时候自动将对应的位置记录下来。比如 jump 的时候,就会将跳转前的位置自动记录 干了啥 买了一个软木的托盘。之前有博主推荐过,自己入手一看,确实很神奇。还是同样的桌子,不知道为什么,有了托盘之后,东西放进去就感觉规整漂亮了许多 给小米 Sound Pro 买了个支架。PDD 上瞎逛看到的,之前有共振只是简单垫了下纸板。有个专门的小架子看起来还是漂亮得多 逛小红书买了几瓶织物喷雾。说是有除螨的功效,我主要是想用它来除臭。不知道是人老了还是不爱干净了,早上睡起来自己都能闻到屋子里一股怪味儿。臭男人不是浪得虚名 《猎魔人》读了一半了。多亏这本小说,都快给我养成睡前读书的习惯了。微信读书连续两周满勤 工作呢 本来手头的工作已经进入尾声,可以阶段性休息了。但是又出现了几个恼人的问题。羡慕纯软件的工作,自己对实现的掌控性要高得多 Asynchronous Multi-Plane Independent (AMPI) 有些也称为 Asynchronous Independent Plane Read (AIPR),是实现对同一个 Die 内不同 plane 同时访问的指令。与之对应的是 SMPI,同步多 plane read。AMPI 的好处就是更加灵活,可以在前一个 read 请求工作的过程中发送新的请求 闲来无事,就学习了一下。这是 YMTC 的一份公开专利,实现原理也并不复杂。还是通过添加每个 plane 单独的处理 unit 来达成独立访问的目标</p></div><footer class=entry-footer><span title='2025-01-12 18:16:13 +0800 +0800'>January 12, 2025</span> · 1 min · Gy</footer><a class=entry-link aria-label="post link to Weekly Digest: 2025-01-12" href=https://z1ggy-o.github.io/weekly/2025/25-01-12/></a></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>最重要的事只有一件</h2></header><div class=entry-content><p>Title: 最重要的事: 只有一件
Author: Gary Keller, Jay Papasan
适合对当前的状态感到迷茫时读的一本书。整本书的内容和其标题一致,围绕 “一个目标 + 一件优先事务 + 生产力” 展开:
“目标” 指的是人生的大目标。知道方向,才知道向哪边努力 “优先事务” 是每天首先需要保证完成的任务,我们通过完成一件件的优先事务慢慢走向目标 “生产力”体现了我们完成优先事务的能力,一个高效的系统帮助我们完成更多的优先事务,更早的达成目标 What I Learned 成功并不因忙碌而靠近我们。我们需要一份“成功清单”,上面所有的内容都围绕着我们的终极目标。全身心投入到我们的事业中,从而使我们的生活更有意义,是获取持久幸福最可靠的方法。当我们每天的所作所为逐渐成就了一个目标时,巨大的幸福感也就随之而来了,并且久久不会消散 你本人就是你所做的事情的集合,如果你不断重复正确的行为,那么成功就不再只是一个动作,而是一个你亲手打造的习惯。但无须方方面面都自律,只需要挑最有用的那件事,坚持下去 我们不应该追求平衡是因为奇迹不会在中间点上发生,奇迹只有在追求极致的过程中才会发生。在最重要的事情没有做好之前,你总会觉得事情还没有结束——这就是失衡感。在生活中,你应随时保持短线调整,避免长时间处于失衡状态。在事业中,你需要长线调整。在生活中,所有的要素一个都不能少,都需要顾及;而对于工作来说,取舍是常态 尽可能地为自己设立远大的理想,为实现更高的目标而规划做什么、怎么做以及和谁做。若要突破这种思维的巨型“盒子”,你可能要花费毕生精力才能梦想成真。你不要畏惧志存高远,而是要恐惧平庸、恐惧浪费、恐惧没有全力以赴地活过 和伟大的目标一样,好问题也要大而具体。当你提出一个好问题时,你其实是在追求一个伟大的目标。每当你这样做的时候,其实都是在往大而具体的方向走。大而具体的问题会带着你找到大而具体的答案,而这种答案对于宏大目标的实现非常有必要。 提出好的问题是获得好的答案的最佳途径。关键问题将所有问题都归纳为一个问题:“我能做的最重要的事是什么?为何做了这件事就会让其他事都变得更简单或是不必要了呢?” 你首先需要考虑长期目标,然后一步步往回考虑,倒推出现在应该做的最重要的一件事。这有点儿像俄罗斯套娃,此刻的最重要的一件事就藏在今天的最重要的一件事之中,今天的最重要的一件事就藏在这周的最重要的一件事之中,这周的最重要的一件事就藏在本月的最重要的一件事之中……一件小事就这样一步步变大,实际上你是在摆一副多米诺骨牌 想要完成优先事务,就必须为其预留时间。通过预留时间的办法达到理想效果需要三个承诺。第一,必须达到精通的程度。精通就是做最好的自己。如果希望获得最佳的效果,就要明白你需要最大努力。第二,要不断寻找最佳的解决方案。令人最沮丧的事情莫过于自己尽最大努力却无法达到最好的结果。第三,主动反思自己为完成最重要的一件事所做的一切。将这三条铭记于心,通过奋斗以达到卓越 What I Can Do 寻找属于自己的那个“大而具体”的目标。根据这个目标反推 5 年计划,3 年计划,1 年计划。每周回顾这个目标并安排本周的优先事务 面对任何问题的问题,都问问自己,对此我能做的最重要的是什么?做了这件事后,哪些剩下的事情就变得简单或不必要了 每天都预留出完成优先事务的时间。在完成优先事务之前,其他的事情都要让步 每年都先为生活在时间表上留出时间,然后再围绕这些时间安排工作。生活的要素一个都不能少,工作的内容则要精心取舍</p></div><footer class=entry-footer><span title='2025-01-02 21:14:37 +0800 +0800'>January 2, 2025</span> · 1 min · Gary Keller, Jay Papasan</footer><a class=entry-link aria-label="post link to 最重要的事只有一件" href=https://z1ggy-o.github.io/books/%E6%9C%80%E9%87%8D%E8%A6%81%E7%9A%84%E4%BA%8B%E5%8F%AA%E6%9C%89%E4%B8%80%E4%BB%B6-gary_keller/></a></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>30岁人生开挂7步法</h2></header><div class=entry-content><p>标题: 30岁人生开挂7步法: 没资源、没背景的90后宅男每月获利50万元的简单方法
作者: 自青(韩)
这是一本韩国的畅销书。畅销书本来一般都是比较套路的写法,浓缩了其他一些经典书籍的名言。这本书也不列外,但我还是把它读完并且记录下来有两个原因。一个是最近生活不在状态,需要一些此类书籍来打打鸡血;二是本书的作者很诚恳,不空洞。他用自己的故事作为激励,从心理和行动上给出了几个立即可行的方案,鼓励大家都立刻动起来。
What I learned 自我意识是指我们对自己身体,情感,行为以于外界关系的理解。自我意识是高阶的思维,帮助我们维持自己存在的合理性。但过剩的自我意识就会导致自负或者自卑,反而阻拦我们获得自由。进化的目的不是完美,而是生存。我们的进化就像是 kluge 机器,是在旧的系统上打补丁,骨子里的很多本能反应在当今社会都并不能带来最优的结果,比如我们的恐惧和忧虑心理。要通过观察和反思来避免这些本能反应所带来的不良结果。 塑造身份认同。换句话来说就是自信,相信我们能够达成我们想要达成的任何目标。实际行动才能带来实质改变。身份认同是一种燃料,让我们敢想敢做。构建身份认同最好的方式就是利用环境,因为输入影响输入,当我们把自己丢到适当的群体中时,我们的群体潜意识会自然而然地引导我们进行改变 训练大脑带来的效益是有复利效应的,因为大脑能力的提升是基本能力的提升,一个领域中的知识有可能迁移到另外的领域,帮助其他领域发展得更快更好。坚持每天两个小时的读写就能见到意想不到的成长。 成功者的工具:肯付出的人才能更到更多的回报,因为他们重视价值。理性决策,只押注概率。不要追求完美,而是应该利用28原则,抓住更多方面的 80%,并利用这些多方面的组合来获得更大的回报。提升元认知能力,避免主观判断。执行,执行,执行,还是执行!绝大多数人都是只想不做。 What I Can Do 训练自己在对外反应之前停顿一下,确认自己的回应来自理性的思考而不是自我意识自然的反应。《清晰思考》一书里提过的一个方法是,养成在回应前深吸一口气的习惯。 通过加入圈子的方式来帮助自己塑造身份认同,增强我们的执行力。如果没法找到圈子,就找 20 本对应领域的书籍来阅读。 决策的时候只押注概率,不要纠结于独立事件的结果。只要坚持押注概率,最终赢的就会更多。 不要追求完美,要先动起来。不论想到达成何种目标,关键都在于做。光想不做,一切都是徒劳。</p></div><footer class=entry-footer><span title='2024-12-28 23:39:12 +0800 +0800'>December 28, 2024</span> · 1 min · 自青</footer><a class=entry-link aria-label="post link to 30岁人生开挂7步法" href=https://z1ggy-o.github.io/books/30%E5%B2%81%E4%BA%BA%E7%94%9F%E5%BC%80%E6%8C%827%E6%AD%A5%E6%B3%95-%E8%87%AA%E9%9D%92/></a></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>Weekly Digest: 2024-12-28</h2></header><div class=entry-content><p>学到啥 Neovim TJ Advent 系列 LSP in Neovim help: vim.lsp.* 查看 neovim 内建 LSP client 所提供的 API nvim-lspconfig package 为各类语言的 LSP client 配置提供了基本的支持 :help lspconfig-all 可以查看想要对应语言的 server 安装方法和配置方法 一般现在都会搭配 mason.nvim package 来自动下载,但是了解最基本的方法更好一些 LSP Format 就是由 vim.lsp.buf.format() 来对当前 buffer 实现的 format 因为是 LSP 提供的功能,有可能有一些 server 并不支持 TJ 介绍了一个 autocmd 的在 server attach 的时候确认是否支持 format,并动态的绑定键位 editorconfig 是一个更加通用的格式定义工具,比起直接对 LSP 进行配置,更推荐这样的方式,因为很多我们知道的 editor,比如 neovim 就支持对它的解析。这样,书写一次规则,就可以在各个 editor 中都使用了 Telescope telescope 这个 fuzzy finder 的核心就是 finder, sorter, previewer 三个部件。Finder 搜索内容,sorter 对搜索到的内容进行排序,previewer 展示内容,三者组合起来就成了一个可用的 picker 了。 Advanced Telescope 里就展示了如何实现一个自定义的 picker 来满足自己的搜索需求 干了啥 这周重新把 blog 组织起来。这次的目标是使用简单的工具,把时间专注到内容而不是格式上去。本篇就是这唯一更新的内容 :) 脚可能是上周末团建的时候扭伤了,导致只跑了一次步。估计下周也没法跑了 才刚刚为冬天跑步买了装备呢 :( 房子重新续约。不让中间商赚差价,每个月省了几百块的租金😁 工作呢 项目进入阶段尾声,没有什么可以公开分享的。学习了一些内部代码</p></div><footer class=entry-footer><span title='2024-12-28 14:47:25 +0800 +0800'>December 28, 2024</span> · 1 min</footer><a class=entry-link aria-label="post link to Weekly Digest: 2024-12-28" href=https://z1ggy-o.github.io/weekly/2024/24-12-28/></a></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>FAST'20 - BCW: Buffer-Controlled Writes to HDDs for SSD-HDD Hybrid Storage Server</h2></header><div class=entry-content><p>Short Summary HDDs are under utilized in hybrid cloud storage systems which makes SSD to handle most of the requests. This shorts the life of SSDs and also wants the utilization of HDDs.
The authors of this paper find that the write requests can have $μ$s-level latency when using HDD if the buffer in HDD is not full. They leverage this finding to let HDD to handle write requests if the requests can fit into the in disk buffer.
...</p></div><footer class=entry-footer><span title='2023-09-17 12:51:01 +0000 UTC'>September 17, 2023</span> · 4 min · Me</footer><a class=entry-link aria-label="post link to FAST'20 - BCW: Buffer-Controlled Writes to HDDs for SSD-HDD Hybrid Storage Server" href=https://z1ggy-o.github.io/papers/wang-2020-bcw/></a></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>LevelDB 源码分析笔记</h2></header><div class=entry-content><p>最近一周花了些时间阅读了 LevelDB 的代码,了解一下 LSM-Tree 的具体实现。在阅读的过程中简略的记录了一些笔记,放在了我的 Github repo 里。笔记是用蹩脚英语写的,也没有做任何的插图,建议配合此分析文档一起食用。
...</p></div><footer class=entry-footer><span title='2022-08-22 13:30:19 +0000 UTC'>August 22, 2022</span> · 4 min · Gy</footer><a class=entry-link aria-label="post link to LevelDB 源码分析笔记" href=https://z1ggy-o.github.io/posts/leveldb-analysis/></a></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>OSDI'22 - BlockFlex: Enabling Storage Harvesting with Software-Defined Flash in Modern Cloud Platforms</h2></header><div class=entry-content><p>Motivation Cloud computing system is high virtualised for higher resource utilization. Recently, cloud providers have developed harvesting techniques to allow evictable virtual machines to use unallocated resources.
People mostly focus on how to use unallocated computing resources and memory resources, however, there is no harvesting techniques that built for storage resources.
This paper proposes a harvesting framework for storage resources that provides isolation of space, bandwidth, and data security.
Contribution They conduct a characterization study of the storage efficiency in different cloud platforms through trace logs provided by these platforms.
...</p></div><footer class=entry-footer><span title='2022-08-07 11:39:27 +0000 UTC'>August 7, 2022</span> · 3 min · Gy</footer><a class=entry-link aria-label="post link to OSDI'22 - BlockFlex: Enabling Storage Harvesting with Software-Defined Flash in Modern Cloud Platforms" href=https://z1ggy-o.github.io/papers/reidys-2022-blockflexenablingstorage/></a></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>TOCS'13 - Spanner: Google’s Globally Distributed Database</h2></header><div class=entry-content><p>Motivation Some applications need relation data model and strong consistency which BigTable cannot gives.
So, Google want to develop a system that focuses on managing cross-datacenter replicate data with database features.
Contribution Provides a globally distributed database that shards data across many sets of Paxos state machine in datacenters.
Provide SQL-like interface, strong consistency, and high read performance.
Solution Replication
Use Paxos to replicate data to several nodes, which provides higher availability. Local Transactions (within a paxos group)
...</p></div><footer class=entry-footer><span title='2022-07-31 05:40:38 +0000 UTC'>July 31, 2022</span> · 2 min · map[link:https://github.com/z1ggy-o name:gyzhu]</footer><a class=entry-link aria-label="post link to TOCS'13 - Spanner: Google’s Globally Distributed Database" href=https://z1ggy-o.github.io/papers/2.c-2013-spanner/></a></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>Note - x86 汇编语言(4):分页机制</h2></header><div class=entry-content><p>到了该系列笔记的最后一个章节了。之前的几个章节中,我们讨论了最直白的 8086 分段访问模型,又讲到了保护模式下的分段访问模式,现在我们来讲一讲实际生活中的默认内存管理方式–分页。
...</p></div><footer class=entry-footer><span title='2022-07-10 08:39:25 +0000 UTC'>July 10, 2022</span> · 9 min · Me</footer><a class=entry-link aria-label="post link to Note - x86 汇编语言(4):分页机制" href=https://z1ggy-o.github.io/books/x86-assembly-shuangwang/04.x86%E6%B1%87%E7%BC%96%E7%AC%94%E8%AE%B0%E7%AC%AC%E5%9B%9B%E9%83%A8%E5%88%86/></a></article><article class=post-entry><header class=entry-header><h2 class=entry-hint-parent>Note - x86 汇编语言(3):多任务支持</h2></header><div class=entry-content><p>这是系列笔记的第三篇。在上一篇中,我们介绍了保护模式基于段选择子的寻址方式,这一篇中我们来讲一讲该架构的另一个特点,多任务支持。
其余章节如下:
第一部分: 计算机基础和实模式 第二部分:保护模式下的分段寻址和权限 第三部分:多任务支持 第四部分:分页机制 任务:运行程序的表达 在之前的篇章中我们尽量避免了任务概念的出现。在 80286 之前,计算机主要以单任务(single-tasking)的方式运行。即,先集中于完成一个程序的运行,再运行下一个程序。有些类似于最初 mainframe 的 batching 的感觉。80286 首次在处理器硬件上提供了对多任务的支持,80386 时期多任务得到了广泛的应用。
...</p></div><footer class=entry-footer><span title='2022-07-06 08:44:20 +0000 UTC'>July 6, 2022</span> · 5 min · Me</footer><a class=entry-link aria-label="post link to Note - x86 汇编语言(3):多任务支持" href=https://z1ggy-o.github.io/books/x86-assembly-shuangwang/03.x86%E6%B1%87%E7%BC%96%E7%AC%94%E8%AE%B0%E7%AC%AC%E4%B8%89%E9%83%A8%E5%88%86/></a></article><footer class=page-footer><nav class=pagination><a class=next href=https://z1ggy-o.github.io/page/2/>Next »</a></nav></footer></main><footer class=footer><span>© 2025 <a href=https://z1ggy-o.github.io/>Gy's Blog</a></span> ·
<span>Powered by
<a href=https://gohugo.io/ rel="noopener noreferrer" target=_blank>Hugo</a> &
<a href=https://github.com/adityatelange/hugo-PaperMod/ rel=noopener target=_blank>PaperMod</a></span></footer><a href=#top aria-label="go to top" title="Go to Top (Alt + G)" class=top-link id=top-link accesskey=g><svg viewBox="0 0 12 6" fill="currentcolor"><path d="M12 6H0l6-6z"/></svg>
</a><script>let menu=document.getElementById("menu");menu&&(menu.scrollLeft=localStorage.getItem("menu-scroll-position"),menu.onscroll=function(){localStorage.setItem("menu-scroll-position",menu.scrollLeft)}),document.querySelectorAll('a[href^="#"]').forEach(e=>{e.addEventListener("click",function(e){e.preventDefault();var t=this.getAttribute("href").substr(1);window.matchMedia("(prefers-reduced-motion: reduce)").matches?document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView():document.querySelector(`[id='${decodeURIComponent(t)}']`).scrollIntoView({behavior:"smooth"}),t==="top"?history.replaceState(null,null," "):history.pushState(null,null,`#${t}`)})})</script><script>var mybutton=document.getElementById("top-link");window.onscroll=function(){document.body.scrollTop>800||document.documentElement.scrollTop>800?(mybutton.style.visibility="visible",mybutton.style.opacity="1"):(mybutton.style.visibility="hidden",mybutton.style.opacity="0")}</script><script>document.getElementById("theme-toggle").addEventListener("click",()=>{document.body.className.includes("dark")?(document.body.classList.remove("dark"),localStorage.setItem("pref-theme","light")):(document.body.classList.add("dark"),localStorage.setItem("pref-theme","dark"))})</script></body></html>