<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>记录每个瞬间</title>
    <link>https://code0xff.org/</link>
    <description>Recent content on 记录每个瞬间</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Mon, 22 Jun 2026 09:10:12 +0800</lastBuildDate>
    <atom:link href="https://code0xff.org/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>大连，11年后的再相见</title>
      <link>https://code0xff.org/post/2026/06/da_lian/</link>
      <pubDate>Mon, 22 Jun 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/06/da_lian/</guid>
      <description>&lt;p&gt;11年后再次重游大连之游记，所到之处：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;东港五街、东港音乐喷泉、威尼斯水城&lt;/li&gt;&#xA;&lt;li&gt;海之韵公园、东部栈道、棒棰岛沿途海边栈道、石槽海滨浴场&lt;/li&gt;&#xA;&lt;li&gt;星海公园、星海广场、滨海路栈道、渔人码头、银沙滩&lt;/li&gt;&#xA;&lt;li&gt;俄罗斯广场、南山街、明泽湖、中山广场、西安路夜市&lt;/li&gt;&#xA;&lt;li&gt;金石滩国家地质公园&lt;/li&gt;&#xA;&lt;li&gt;旅顺博物馆、日俄监控旧址博物馆、潜艇博物馆、大连博物馆&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Volcano 笔记</title>
      <link>https://code0xff.org/post/2026/05/volcano-notes/</link>
      <pubDate>Wed, 27 May 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/05/volcano-notes/</guid>
      <description>&lt;p&gt;按：一个任务的一生来梳理 Volcano，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;vcjob&lt;/strong&gt; 提交、&lt;strong&gt;controller&lt;/strong&gt; 创建 &lt;strong&gt;PodGroup/Pod&lt;/strong&gt;、&lt;strong&gt;scheduler&lt;/strong&gt; 执行 &lt;strong&gt;enqueue/allocate/bind&lt;/strong&gt;，一直到 &lt;strong&gt;kubelet&lt;/strong&gt; 起容器、&lt;strong&gt;Job Policy&lt;/strong&gt; 处理异常、&lt;strong&gt;TTL&lt;/strong&gt; 自动清理&lt;/li&gt;&#xA;&lt;li&gt;把 &lt;strong&gt;Queue&lt;/strong&gt;、&lt;strong&gt;PodGroup&lt;/strong&gt;、&lt;strong&gt;gang&lt;/strong&gt;、&lt;strong&gt;action&lt;/strong&gt;、&lt;strong&gt;plugin&lt;/strong&gt; 这些核心概念挂到同一条主线上，方便理解调度过程&lt;/li&gt;&#xA;&lt;li&gt;补充网络拓扑感知、层级队列、在线离线混部、反调度、TDM、GPU/NPU、扩展方式、生态和运维排查&lt;/li&gt;&#xA;&lt;li&gt;最后记录一次 CRD 版本不匹配导致 &lt;strong&gt;vcjob&lt;/strong&gt; 不创建 &lt;strong&gt;PodGroup&lt;/strong&gt; 的真实排查过程&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>分布式系统的8大谬误</title>
      <link>https://code0xff.org/post/2026/05/distributed_systems_8_fallacies/</link>
      <pubDate>Thu, 14 May 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/05/distributed_systems_8_fallacies/</guid>
      <description>&lt;p&gt;围绕分布式系统的“修好”错觉和八大谬误展开，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先讨论“分布式系统不存在修好”这句话哪些成立、哪些说得过头，并给出更准确的版本：在选定一致性模型之外，竞态只能管理&lt;/li&gt;&#xA;&lt;li&gt;解释为什么分布式系统难，不只是 &lt;strong&gt;CAP/FLP&lt;/strong&gt; 这类理论边界，还有故障组合爆炸、调试困难、正确性边界滑动和人为变更&lt;/li&gt;&#xA;&lt;li&gt;逐条拆解 &lt;strong&gt;网络可靠&lt;/strong&gt;、&lt;strong&gt;延迟为零&lt;/strong&gt;、&lt;strong&gt;带宽无限&lt;/strong&gt;、&lt;strong&gt;网络安全&lt;/strong&gt;、&lt;strong&gt;拓扑不变&lt;/strong&gt;、&lt;strong&gt;只有一个管理员&lt;/strong&gt;、&lt;strong&gt;传输代价为零&lt;/strong&gt;、&lt;strong&gt;网络同质&lt;/strong&gt; 这八大谬误&lt;/li&gt;&#xA;&lt;li&gt;最后总结这些谬误背后的共同结构，以及它们对超时、重试、幂等、批量、隔离、观测和恢复策略的直接要求&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>软件工程的演化与不变</title>
      <link>https://code0xff.org/post/2026/05/software_engineering_evolution_and_invariance/</link>
      <pubDate>Fri, 08 May 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/05/software_engineering_evolution_and_invariance/</guid>
      <description>&lt;p&gt;给软件工程画一张“跨代际地图”，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;用“&lt;strong&gt;洞察的半衰期&lt;/strong&gt;”来区分什么值得长期深挖，什么只适合当作短期工具&lt;/li&gt;&#xA;&lt;li&gt;按 &lt;strong&gt;七代演化&lt;/strong&gt; 梳理软件开发从硬件、结构化、对象、网络、分布式、云原生一直到 &lt;strong&gt;AI 时代&lt;/strong&gt; 的复杂性迁移&lt;/li&gt;&#xA;&lt;li&gt;把不同阶段收敛到几类更底层的“永恒问题”，说明软件工程表面不断换壳，核心仍围绕复杂性、协作、抽象边界和不确定性展开&lt;/li&gt;&#xA;&lt;li&gt;最后落到工程师个体：什么在变、什么不变，为什么跨代际工程师真正稀缺，以及 AI 时代仍然需要哪些稳定的工程纪律&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>k8s扩展机制</title>
      <link>https://code0xff.org/post/2026/05/k8s-30-extensions/</link>
      <pubDate>Thu, 07 May 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/05/k8s-30-extensions/</guid>
      <description>&lt;p&gt;按：Kubernetes 的扩展机制很多，理解时不要把它们看成零散插件，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;节点/运行时&lt;/strong&gt;、&lt;strong&gt;API/调度&lt;/strong&gt;、&lt;strong&gt;应用/流量&lt;/strong&gt;、&lt;strong&gt;可观测性/安全/策略&lt;/strong&gt;、&lt;strong&gt;生命周期/编排&lt;/strong&gt;、&lt;strong&gt;新兴扩展&lt;/strong&gt; 6 个层次梳理 30 个常见扩展点&lt;/li&gt;&#xA;&lt;li&gt;把 &lt;strong&gt;CRI/CNI/CSI&lt;/strong&gt;、&lt;strong&gt;CRD/Operator/Webhook&lt;/strong&gt;、&lt;strong&gt;Ingress/Gateway API/Service Mesh&lt;/strong&gt;、&lt;strong&gt;Policy/GitOps/Workflow&lt;/strong&gt; 挂到同一张图上，方便定位职责边界&lt;/li&gt;&#xA;&lt;li&gt;每个机制都配一个最小例子，适合做选型速查，也适合排障时快速回忆“该在哪一层动手”&lt;/li&gt;&#xA;&lt;li&gt;最后补一张总结表，帮助区分哪些扩展点主要落在 &lt;strong&gt;kubelet&lt;/strong&gt;、&lt;strong&gt;apiserver&lt;/strong&gt;、&lt;strong&gt;scheduler&lt;/strong&gt;、&lt;strong&gt;controller&lt;/strong&gt; 一侧&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>睡眠机制</title>
      <link>https://code0xff.org/post/2026/05/sleep_mechanism/</link>
      <pubDate>Tue, 05 May 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/05/sleep_mechanism/</guid>
      <description>&lt;p&gt;把&lt;strong&gt;睡眠&lt;/strong&gt;看成生命演化打磨出来的生存机制，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;按演化顺序梳理 &lt;strong&gt;N3 深度睡眠&lt;/strong&gt;、&lt;strong&gt;N1/N2 浅睡眠&lt;/strong&gt; 和 &lt;strong&gt;REM 睡眠&lt;/strong&gt; 各自出现的先后、功能分工和生存背景&lt;/li&gt;&#xA;&lt;li&gt;解释清醒进入睡眠时的 &lt;strong&gt;三道核心阀门&lt;/strong&gt;，为什么人体需要逐级降维，而不是断崖式切换&lt;/li&gt;&#xA;&lt;li&gt;分析不同睡眠阶段长期缺失各会带来什么不可替代的损伤，尤其是 &lt;strong&gt;N3&lt;/strong&gt; 对大脑清理、细胞修复和整体稳态的基础作用&lt;/li&gt;&#xA;&lt;li&gt;最后把睡眠放回更大的演化视角，讨论效率、安全、寿命之间的折中，以及生命如何通过睡眠对抗熵增&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>关于塔利班的由来</title>
      <link>https://code0xff.org/post/2026/05/about_afghanistan/</link>
      <pubDate>Mon, 04 May 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/05/about_afghanistan/</guid>
      <description>&lt;p&gt;借阿富汗近半个世纪的战乱，梳理塔利班的历史背景和形成路径，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;1979 年苏联入侵阿富汗&lt;/strong&gt; 讲起，说明大国干预、冷战博弈和外部资金武装如何一步步改变当地政治结构&lt;/li&gt;&#xA;&lt;li&gt;解释苏联撤军后的 &lt;strong&gt;权力真空&lt;/strong&gt;、军阀混战和难民环境，为什么会给 &lt;strong&gt;塔利班&lt;/strong&gt; 的崛起提供土壤&lt;/li&gt;&#xA;&lt;li&gt;回顾 &lt;strong&gt;基地组织、911 事件、美国入侵、20 年战争与 2021 年撤军&lt;/strong&gt; 之间的连续关系，说明这场战争为什么最终回到原点&lt;/li&gt;&#xA;&lt;li&gt;最后讨论塔利班重新掌权后的现实僵局，以及文章想强调的一条更底层规律：&lt;strong&gt;武力可以短期占领，但很难长期重塑一个社会&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>分布式系统双写一致性问题</title>
      <link>https://code0xff.org/post/2026/04/quota_design_decision/</link>
      <pubDate>Mon, 27 Apr 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/04/quota_design_decision/</guid>
      <description>&lt;p&gt;围绕 AI 平台配额管理里的“双写一致性”问题展开，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先把业务问题讲清楚：是否应该让 &lt;strong&gt;MySQL 中的配额账本&lt;/strong&gt; 与 &lt;strong&gt;K8s 中的真实资源占用&lt;/strong&gt; 保持实时一致&lt;/li&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;FLP&lt;/strong&gt;、&lt;strong&gt;CAP&lt;/strong&gt;、&lt;strong&gt;两将军问题&lt;/strong&gt;、&lt;strong&gt;PACELC&lt;/strong&gt; 这些经典理论出发，说明“跨两个独立分布式系统做实时强一致双写”为什么在理论上不可达&lt;/li&gt;&#xA;&lt;li&gt;再落到工程实践，分析提交链路、运行期和系统层故障会如何把最终一致方案推向状态机、幂等、补偿、对账和组合爆炸&lt;/li&gt;&#xA;&lt;li&gt;最后结合 &lt;strong&gt;Google Borg / Kubernetes / AWS&lt;/strong&gt; 等业界做法，给出结论：放弃“实时库存式扣减”，采用 &lt;strong&gt;准入控制 + K8s 实时用量&lt;/strong&gt; 的方案&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>全球市场消息队列完整指南</title>
      <link>https://code0xff.org/post/2026/04/message_queues/</link>
      <pubDate>Mon, 20 Apr 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/04/message_queues/</guid>
      <description>&lt;p&gt;把主流消息队列做一次完整盘点，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先横向对比 &lt;strong&gt;Kafka、RabbitMQ、RocketMQ、NATS、Pulsar&lt;/strong&gt; 五个主流产品的定位、吞吐、延迟、事务、多租户和学习曲线&lt;/li&gt;&#xA;&lt;li&gt;再分别拆解每个系统的 &lt;strong&gt;架构模型、核心角色、使用场景、示例代码和运维调优要点&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;补充一些更轻量或更窄场景的方案，比如 &lt;strong&gt;Redis Pub/Sub、Redis Streams、PostgreSQL LISTEN/NOTIFY、MySQL 轮询、ActiveMQ&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;最后把 &lt;strong&gt;AWS、Azure、Google Cloud&lt;/strong&gt; 的托管消息服务和自建方案放在一起比较，给出选型和运维上的实际建议&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Claude code 源码分析</title>
      <link>https://code0xff.org/post/2026/04/claude_code/</link>
      <pubDate>Wed, 01 Apr 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/04/claude_code/</guid>
      <description>&lt;p&gt;顺着一次请求在 Claude Code 里的流转过程做源码拆解，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;入口层&lt;/strong&gt;、&lt;strong&gt;运行时层&lt;/strong&gt;、&lt;strong&gt;引擎层&lt;/strong&gt;、&lt;strong&gt;工具层&lt;/strong&gt;、&lt;strong&gt;基础设施层&lt;/strong&gt; 5 个层次看清整体架构和职责边界&lt;/li&gt;&#xA;&lt;li&gt;把 &lt;strong&gt;QueryEngine&lt;/strong&gt;、&lt;strong&gt;工具调用&lt;/strong&gt;、&lt;strong&gt;权限系统&lt;/strong&gt;、&lt;strong&gt;上下文压缩&lt;/strong&gt;、&lt;strong&gt;MCP 集成&lt;/strong&gt;、&lt;strong&gt;多 Agent 协调&lt;/strong&gt; 串成一条主线，方便理解它为什么能稳定跑长任务&lt;/li&gt;&#xA;&lt;li&gt;补充 &lt;strong&gt;Self-Healing Memory&lt;/strong&gt;、&lt;strong&gt;Feature Flag&lt;/strong&gt;、&lt;strong&gt;反蒸馏&lt;/strong&gt;、&lt;strong&gt;挫败检测&lt;/strong&gt;、&lt;strong&gt;Undercover Mode&lt;/strong&gt; 这些不那么显眼但很关键的机制&lt;/li&gt;&#xA;&lt;li&gt;最后用启动流程、核心查询流程、工具生命周期、状态管理几个视角，归纳 Claude Code 的关键数据流&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Iran War</title>
      <link>https://code0xff.org/post/2026/03/iran_war/</link>
      <pubDate>Sat, 28 Mar 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/03/iran_war/</guid>
      <description>&lt;p&gt;Summary: This article analyzes the Iran War through a 6-dimension framework and 13 key points, with emphasis on:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;what is happening on the battlefield: airstrikes, missile exchanges, escalation risks, and the Strait of Hormuz&lt;/li&gt;&#xA;&lt;li&gt;why the conflict escalated: Iran&amp;rsquo;s nuclear program, regional power competition, deterrence failure, and collapsed diplomacy&lt;/li&gt;&#xA;&lt;li&gt;how the war is being fought: air campaigns, drones, cyber operations, asymmetric retaliation, and energy coercion&lt;/li&gt;&#xA;&lt;li&gt;who else is involved: proxy groups, Gulf states, China, Russia, and the wider U.S.-Israel alignment&lt;/li&gt;&#xA;&lt;li&gt;what the broader consequences look like: oil shocks, supply-chain disruption, humanitarian fallout, and long-term security realignment&lt;/li&gt;&#xA;&lt;li&gt;what may happen next: a decisive U.S.-Israel outcome, an Iranian strategic success, or a prolonged stalemate, with stalemate assessed as the most likely path&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>国内外模型和云厂商汇总</title>
      <link>https://code0xff.org/post/2026/03/module_cloud_summary/</link>
      <pubDate>Sun, 08 Mar 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/03/module_cloud_summary/</guid>
      <description>&lt;p&gt;把模型、云平台、合作关系和选型问题放到一张图里看，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;国内部分：梳理 &lt;strong&gt;阿里云、火山引擎、腾讯云、百度云、华为云&lt;/strong&gt; 与 &lt;strong&gt;DeepSeek、Kimi、MiniMax、智谱、百川、零一万物&lt;/strong&gt; 等模型厂商的能力、价格和免费政策&lt;/li&gt;&#xA;&lt;li&gt;国外部分：覆盖 &lt;strong&gt;AWS、Azure、Google Cloud&lt;/strong&gt; 以及 &lt;strong&gt;OpenAI、Anthropic、Google、xAI、Mistral、Cohere&lt;/strong&gt; 等主流玩家&lt;/li&gt;&#xA;&lt;li&gt;关系层面：补充 &lt;strong&gt;云厂商托管第三方模型&lt;/strong&gt;、&lt;strong&gt;投资/战略合作&lt;/strong&gt;、&lt;strong&gt;生态绑定&lt;/strong&gt; 这些容易被忽略但会直接影响选型的因素&lt;/li&gt;&#xA;&lt;li&gt;商业层面：对比 &lt;strong&gt;免费、有限免费、纯商业 API/订阅&lt;/strong&gt; 三类模式，并汇总典型价格区间和适用场景&lt;/li&gt;&#xA;&lt;li&gt;最后落到实用判断：如果你的目标是 &lt;strong&gt;低成本试用、企业级稳定性、多模型接入、开源可控&lt;/strong&gt;，分别应该优先看哪些供应商&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>云南滇西大环线</title>
      <link>https://code0xff.org/post/2026/02/yunnan_west/</link>
      <pubDate>Sat, 28 Feb 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/02/yunnan_west/</guid>
      <description>&lt;p&gt;云南滇西大环线：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;沧源&lt;/strong&gt;：广允缅寺、葫芦小镇、摸你黑广场、翁丁原始部落、班洪葫芦王地景区、班洪村、沧源崖画、千米国画长廊、司岗里溶洞、天坑、龙乃村、永和新村、永和口岸&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;瑞丽&lt;/strong&gt;：一寨两国、瑞丽古城、姐告口岸、喊沙村、大等贺村、弄莫湖公园、独树成林、姐勒金塔、莫里热带雨林、畹町口岸、总佛寺和傣王宫&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;芒市&lt;/strong&gt;：大金塔、大银塔、树包塔、菩提寺、勐巴娜西珍奇园、菩提街、芒市生态田园观光区、板过河湿地公园、芒市广场、孔雀湖公园、德宏州博物馆、傣族古镇、丙午街、德宏州博物馆&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>2015年 -- 2025年</title>
      <link>https://code0xff.org/post/2026/01/2015_2025/</link>
      <pubDate>Sun, 11 Jan 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/01/2015_2025/</guid>
      <description>&lt;p&gt;把 2015 到 2025 年科技行业的变化放到同一套框架里看，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;云服务、芯片、新能源、移动互联网、监管与全球化、元宇宙/虚实融合&lt;/strong&gt; 6 个维度看科技行业底层逻辑如何重构&lt;/li&gt;&#xA;&lt;li&gt;区分 &lt;strong&gt;增长最快&lt;/strong&gt;、&lt;strong&gt;显著增长但放缓&lt;/strong&gt;、&lt;strong&gt;消退或转型&lt;/strong&gt; 这几类赛道，避免把所有科技板块混为同一种增长故事&lt;/li&gt;&#xA;&lt;li&gt;重点解释 &lt;strong&gt;纳斯达克权重结构&lt;/strong&gt;、&lt;strong&gt;估值中枢上移&lt;/strong&gt;、&lt;strong&gt;订阅制与云化&lt;/strong&gt;、&lt;strong&gt;AI 算力基础设施化&lt;/strong&gt; 这些变化为什么会成为过去十年的核心变量&lt;/li&gt;&#xA;&lt;li&gt;最后落到一个更清晰的判断：科技行业已经从 &lt;strong&gt;移动互联网流量红利&lt;/strong&gt; 切换到 &lt;strong&gt;AI + 算力 + 云 + 合规&lt;/strong&gt; 驱动的新阶段&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>longhorn</title>
      <link>https://code0xff.org/post/2026/01/longhorn/</link>
      <pubDate>Fri, 09 Jan 2026 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2026/01/longhorn/</guid>
      <description>&lt;p&gt;按：这篇不是只列出 Longhorn 的 Pod 名称，而是顺着它在 Kubernetes 里的工作方式做拆解，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先从 &lt;strong&gt;Longhorn Manager、Instance Manager、Engine Image、CSI 组件、NFS Provisioner&lt;/strong&gt; 这些核心角色入手，看清控制面、数据面和 K8s 集成层分别负责什么&lt;/li&gt;&#xA;&lt;li&gt;把 &lt;strong&gt;PVC 绑定、卷读写、快照、备份、RWX 共享卷&lt;/strong&gt; 这些常见操作串成完整流程，方便理解 Longhorn 到底在什么时候和 kubelet、CSI、Engine 打交道&lt;/li&gt;&#xA;&lt;li&gt;补充 &lt;strong&gt;物理和逻辑关系&lt;/strong&gt;，把 &lt;code&gt;volumes.longhorn.io&lt;/code&gt;、副本目录、snapshot chain、backupstore 这些对象对应起来，避免只会在 UI 里点但看不清底层&lt;/li&gt;&#xA;&lt;li&gt;最后整理一组 &lt;strong&gt;Advanced Features&lt;/strong&gt;，包括增量快照、跨集群灾备、QoS、克隆、跨可用区复制、监控和静态加密，方便做能力盘点&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>关于AI 的生态</title>
      <link>https://code0xff.org/post/2025/12/ai_infrastructure/</link>
      <pubDate>Sun, 28 Dec 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/12/ai_infrastructure/</guid>
      <description>&lt;p&gt;把 AI 生态拆成一条从底层到上层的产业链来看，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;基础硬件层、平台层、模型层、应用层、API 层&lt;/strong&gt; 依次展开，看清 AI 产业到底由哪些环节共同组成&lt;/li&gt;&#xA;&lt;li&gt;在硬件侧梳理 &lt;strong&gt;英伟达、谷歌、AMD&lt;/strong&gt; 与上游材料、设备、HBM、EDA、台积电封装制造之间的依赖关系&lt;/li&gt;&#xA;&lt;li&gt;在平台和模型侧比较 &lt;strong&gt;AWS、Azure、Google Cloud、Oracle、CoreWeave&lt;/strong&gt; 以及 &lt;strong&gt;OpenAI、Anthropic、Gemini、Grok、DeepSeek、通义、豆包&lt;/strong&gt; 的不同定位&lt;/li&gt;&#xA;&lt;li&gt;在应用和 API 侧补充 &lt;strong&gt;Office、搜索、广告、VR/AR、企业工具链、开发者生态、合规能力&lt;/strong&gt; 这些决定商业化落地的关键因素&lt;/li&gt;&#xA;&lt;li&gt;最后落到未来：&lt;strong&gt;多模态、Agent、具身智能、世界模型、小型化、垂直行业渗透、多智能体系统&lt;/strong&gt; 将如何继续重塑整个 AI 生态&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>关于AI泡沫</title>
      <link>https://code0xff.org/post/2025/11/ai_bubble/</link>
      <pubDate>Sun, 30 Nov 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/11/ai_bubble/</guid>
      <description>&lt;p&gt;重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先整理 &lt;strong&gt;反对派&lt;/strong&gt; 的担忧：循环交易、估值高分位、中低端 GPU 闲置、产业链相关性过高&lt;/li&gt;&#xA;&lt;li&gt;再看 &lt;strong&gt;支持派&lt;/strong&gt; 的理由：生成式 AI 仍在早期，Agent 和空间 AI 还有增量空间，巨头现金流和真实需求都强于互联网泡沫时期&lt;/li&gt;&#xA;&lt;li&gt;补一个 &lt;strong&gt;历史视角&lt;/strong&gt;，对照过去二十多年全球市值公司的更替，观察科技公司和 AI 基础设施如何持续抬升权重&lt;/li&gt;&#xA;&lt;li&gt;重点分析 &lt;strong&gt;英伟达、微软、苹果、谷歌、亚马逊、Meta、博通、特斯拉&lt;/strong&gt; 这些巨头的护城河与估值差异，判断谁更可能承受回调压力&lt;/li&gt;&#xA;&lt;li&gt;最后把结论落到一句话：&lt;strong&gt;短期局部估值偏热，长期产业趋势仍然成立，真正的争议主要集中在英伟达和少数高估值标的上&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>南边的北海</title>
      <link>https://code0xff.org/post/2025/10/china_beihai/</link>
      <pubDate>Tue, 21 Oct 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/10/china_beihai/</guid>
      <description>&lt;p&gt;行程可以分成 &lt;strong&gt;北海市区 + 涠洲岛&lt;/strong&gt; 两段来看，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;北海市区：&lt;strong&gt;金滩、银滩、大墩海、紫霞湾、侨港海滩、侨港风情街、侨港码头、流下村、冠头岭、老街、外沙岛、北海海底世界&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;涠洲岛：&lt;strong&gt;鳄鱼山火山地质公园、石螺口、滴水丹屏、贝壳沙滩、五彩滩、天主教堂附近公路、村里闲逛、南湾街&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;li&gt;玩法上偏轻松：北海市区适合骑小电驴慢慢逛，涠洲岛更适合看海、骑行、走村子和发呆&lt;/li&gt;&#xA;&lt;li&gt;行程安排上，北海市区大概 &lt;strong&gt;3 天&lt;/strong&gt;，涠洲岛 &lt;strong&gt;2 到 3 天&lt;/strong&gt;，再算上往返，整体比较合适的是 &lt;strong&gt;7 到 8 天&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>eBPF的 http跟踪</title>
      <link>https://code0xff.org/post/2025/09/bpf_http/</link>
      <pubDate>Sat, 30 Aug 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/09/bpf_http/</guid>
      <description>&lt;p&gt;围绕“怎么实际跟踪 HTTP/HTTPS”给出两条可落地路径，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;HTTP：基于 &lt;strong&gt;socket filter&lt;/strong&gt; 在网络层筛选 IP/TCP/80 端口流量，解析 HTTP payload，并通过 &lt;strong&gt;ring buffer&lt;/strong&gt; 把结果送到用户态&lt;/li&gt;&#xA;&lt;li&gt;HTTPS：通过 &lt;strong&gt;uprobe/uretprobe&lt;/strong&gt; 挂到 OpenSSL 的读写路径，在加解密前后抓取明文数据，绕开 TLS 在线路上不可见的问题&lt;/li&gt;&#xA;&lt;li&gt;工程上把 &lt;strong&gt;头文件定义、内核态 BPF 程序、用户态 libbpf 程序、skeleton 生成、编译运行&lt;/strong&gt; 串成完整链路，方便照着复现&lt;/li&gt;&#xA;&lt;li&gt;最终形成一个很清楚的认知：&lt;strong&gt;HTTP 更像包级别观测，HTTPS 更像函数级别观测&lt;/strong&gt;，两者抓取点和代价完全不同&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Spark和Flink的对比总结（包含Operator）</title>
      <link>https://code0xff.org/post/2025/09/spark_flink/</link>
      <pubDate>Fri, 29 Aug 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/09/spark_flink/</guid>
      <description>&lt;p&gt;把&lt;code&gt;Spark&lt;/code&gt;和&lt;code&gt;Flink&lt;/code&gt;在计算模型和运维方式上的差异放到一起看，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先看 &lt;strong&gt;Spark 处理流&lt;/strong&gt; 与 &lt;strong&gt;Flink 处理批&lt;/strong&gt; 的天然短板，理解为什么 Spark 更偏微批、Flink 更偏实时，而不是简单说谁“全能”&lt;/li&gt;&#xA;&lt;li&gt;重点拆 &lt;strong&gt;Shuffle、checkpoint、反压、内存模型、代码生成&lt;/strong&gt; 这些底层机制，解释两者性能差异为什么会落到 I/O、CPU 和延迟上&lt;/li&gt;&#xA;&lt;li&gt;再把 &lt;strong&gt;spark-submit、Thrift Server、Spark Operator、Livy&lt;/strong&gt; 与 &lt;strong&gt;flink run、Flink Kubernetes Operator、REST API、SQL Client、Application Mode&lt;/strong&gt; 摆在一起比较&lt;/li&gt;&#xA;&lt;li&gt;最后落到实用选择：如果目标是 &lt;strong&gt;批处理吞吐、流式低延迟、K8s 原生部署、CI/CD 自动化、SQL 接入&lt;/strong&gt;，Spark 和 Flink 分别更适合什么场景&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>JuiceFS</title>
      <link>https://code0xff.org/post/2025/08/juicefs/</link>
      <pubDate>Sat, 23 Aug 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/08/juicefs/</guid>
      <description>&lt;p&gt;包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;数据与元数据分离&lt;/strong&gt; 这个核心设计入手，理解 JuiceFS 为什么能把对象存储包装成一个分布式文件系统&lt;/li&gt;&#xA;&lt;li&gt;把 &lt;strong&gt;chunk、slice、block&lt;/strong&gt; 的组织方式、对象存储里的命名规则、元数据与真实数据的映射关系讲清楚，方便定位读写放大和碎片问题&lt;/li&gt;&#xA;&lt;li&gt;补充 &lt;strong&gt;格式化、挂载、本地验证、缓存、S3 Gateway、clone、同步&lt;/strong&gt; 这些高频运维与功能点，避免只停留在概念层&lt;/li&gt;&#xA;&lt;li&gt;最后看它如何和 &lt;strong&gt;Spark、Flink、Kubernetes CSI&lt;/strong&gt; 集成，理解 JuiceFS 在大数据和云原生场景里最常见的落点&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>bpftrace 12个小命令</title>
      <link>https://code0xff.org/post/2025/08/bpftrace_12_lessons/</link>
      <pubDate>Sun, 10 Aug 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/08/bpftrace_12_lessons/</guid>
      <description>&lt;p&gt;用 12 个小命令把 bpftrace 最常见的能力快速过一遍，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;Listing Probes&lt;/strong&gt;、&lt;strong&gt;Hello World&lt;/strong&gt; 这种最基础的例子入手，先建立对 probe 类型和脚本执行方式的直觉&lt;/li&gt;&#xA;&lt;li&gt;再覆盖 &lt;strong&gt;文件打开、系统调用计数、read() 大小分布、读调用时延、进程级事件统计&lt;/strong&gt; 这些日常排障里最常见的观测场景&lt;/li&gt;&#xA;&lt;li&gt;往后扩展到 &lt;strong&gt;On-CPU 内核栈、调度、块 I/O、内核结构体访问&lt;/strong&gt;，理解 bpftrace 不只是打印日志，而是能直接做内核级分析&lt;/li&gt;&#xA;&lt;li&gt;每个例子都保持单行程序风格，适合拿来即跑，也适合作为后续写复杂脚本前的最小模板&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>eBPF 总结 2</title>
      <link>https://code0xff.org/post/2025/08/the_peak_of_bpf_2/</link>
      <pubDate>Sat, 09 Aug 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/08/the_peak_of_bpf_2/</guid>
      <description>&lt;p&gt;这篇延续上一篇的思路，但不再停留在概念层，而是按资源类型把 eBPF 的观测问题拆开来看，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;CPU、内存、文件系统、磁盘、网络、安全&lt;/strong&gt; 六个方向分别整理“能观测什么、该挂什么事件、常用什么工具”&lt;/li&gt;&#xA;&lt;li&gt;把 &lt;strong&gt;系统调用、kprobe/uprobe、tracepoint、PMC、软中断、运行队列、文件系统事件、块层事件、网络栈事件&lt;/strong&gt; 这些观测入口挂到具体问题上&lt;/li&gt;&#xA;&lt;li&gt;中间穿插 &lt;strong&gt;bpftrace 单行程序&lt;/strong&gt; 和更实用的分析思路，方便把理论直接落到机器排障&lt;/li&gt;&#xA;&lt;li&gt;整体目标不是记命令，而是形成一张“遇到某类性能问题时，先看哪些指标、再挂哪些点”的路线图&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>eBPF 总结</title>
      <link>https://code0xff.org/post/2025/08/the_peak_of_bpf/</link>
      <pubDate>Sat, 02 Aug 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/08/the_peak_of_bpf/</guid>
      <description>&lt;p&gt;eBPF 的总览导图，不是直接上代码，而是先把“为什么要观测、观测什么、用什么工具、落在哪些场景”讲清楚，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;strong&gt;业务负载画像、延迟/速率/利用率/成本、下钻分析、USE 方法&lt;/strong&gt; 这些基础方法论入手，建立一套统一的排障视角&lt;/li&gt;&#xA;&lt;li&gt;再整理 &lt;strong&gt;BCC 工具、bpftrace、编程语言生态&lt;/strong&gt;，帮助区分不同层级的 eBPF 工具链分别适合什么事情&lt;/li&gt;&#xA;&lt;li&gt;往后扩展到 &lt;strong&gt;应用程序、内核、容器、虚拟机、监控&lt;/strong&gt; 等落地场景，理解 eBPF 为什么能成为统一观测底座&lt;/li&gt;&#xA;&lt;li&gt;整体适合作为后面几篇更细分文章的索引页，先看全景，再按 CPU、网络、存储等专题继续深入&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>eBPF 资源</title>
      <link>https://code0xff.org/post/2025/08/ebpf_resource/</link>
      <pubDate>Fri, 01 Aug 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/08/ebpf_resource/</guid>
      <description>&lt;p&gt;&lt;code&gt;eBPF&lt;/code&gt;生态里值得长期跟踪的项目和资料归到一处，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先看 &lt;strong&gt;BCC、bpftrace&lt;/strong&gt; 这类最常见的开源框架和现成工具，建立对“能直接拿来用什么”的认识&lt;/li&gt;&#xA;&lt;li&gt;再整理 &lt;strong&gt;Go 与 Rust 的 eBPF 开发库&lt;/strong&gt;，方便在做工程选型时快速判断依赖、能力边界和适用场景&lt;/li&gt;&#xA;&lt;li&gt;应用层面覆盖 &lt;strong&gt;Cilium、Falco、Katran、Calico、Tracee、KubeArmor、Pixie、kubectl-trace、L3AF&lt;/strong&gt; 等代表项目&lt;/li&gt;&#xA;&lt;li&gt;最后补充 &lt;strong&gt;eBPF 资源&lt;/strong&gt; 与 &lt;strong&gt;CO-RE&lt;/strong&gt; 学习材料，方便从资料入口继续深入&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>人工智能会战胜人类吗？</title>
      <link>https://code0xff.org/post/2025/07/will_ai_outsmart_human_intelligence/</link>
      <pubDate>Sat, 26 Jul 2025 14:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/07/will_ai_outsmart_human_intelligence/</guid>
      <description>&lt;p&gt;Hinton 的一次演讲，包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先回顾 &lt;strong&gt;人工智能从规则系统到神经网络&lt;/strong&gt; 的演化，理解为什么今天的大模型路线能够跑通&lt;/li&gt;&#xA;&lt;li&gt;再区分 &lt;strong&gt;小模型&lt;/strong&gt; 与 &lt;strong&gt;大语言模型&lt;/strong&gt; 的能力边界，解释规模、训练方式和泛化能力为什么会带来质变&lt;/li&gt;&#xA;&lt;li&gt;中间重点讨论 &lt;strong&gt;AI 对人类的威胁&lt;/strong&gt;，不是泛泛而谈失业焦虑，而是更深层的控制权、复制速度、能力增长和不对称风险&lt;/li&gt;&#xA;&lt;li&gt;最后把问题推进到 &lt;strong&gt;数字智能 vs 生物智能&lt;/strong&gt; 以及 &lt;strong&gt;AI 是否可能拥有意识&lt;/strong&gt;，这也是 Hinton 近几年最值得重视的判断之一&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>eBPF 容器</title>
      <link>https://code0xff.org/post/2025/07/ebpf_container/</link>
      <pubDate>Sat, 26 Jul 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/07/ebpf_container/</guid>
      <description>&lt;p&gt;把 &lt;code&gt;eBPF&lt;/code&gt; 放到容器运行时场景里看，包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先从 &lt;strong&gt;命名空间、cgroups、Capabilities&lt;/strong&gt; 这些容器隔离基础说起，理解 eBPF 为什么适合做运行时安全监控和控制&lt;/li&gt;&#xA;&lt;li&gt;重点对比 &lt;strong&gt;Falco、Tracee、AppArmor、Seccomp&lt;/strong&gt; 这几类方案，区分谁是基于 eBPF 的行为观测，谁是基于 LSM/系统调用过滤的预防性控制&lt;/li&gt;&#xA;&lt;li&gt;把 &lt;strong&gt;异常文件访问、特权升级、恶意系统调用、容器逃逸尝试&lt;/strong&gt; 这些安全问题挂到具体工具和技术实现上&lt;/li&gt;&#xA;&lt;li&gt;最后通过实验部分，把“概念上的安全能力”落到机器上的实际观测与验证流程&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>eBPF 网络</title>
      <link>https://code0xff.org/post/2025/07/ebpf_networks/</link>
      <pubDate>Sat, 12 Jul 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/07/ebpf_networks/</guid>
      <description>&lt;p&gt;包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先比较 &lt;strong&gt;XDP、TC、socket、cgroup&lt;/strong&gt; 四类程序的挂载位置、触发时机、可见数据、复杂度和时延差异&lt;/li&gt;&#xA;&lt;li&gt;再从这些程序类型出发，分析 &lt;strong&gt;防火墙、DDoS 防护、四层负载均衡、网络策略、socket 重定向&lt;/strong&gt; 等常见用途为什么适合落在不同层&lt;/li&gt;&#xA;&lt;li&gt;中间补充 &lt;strong&gt;网络问题排查&lt;/strong&gt; 的思路，帮助把 eBPF 和传统抓包、连接观测、延迟分析结合起来&lt;/li&gt;&#xA;&lt;li&gt;后面再落到两个更具体的实现方向：&lt;strong&gt;基于 socket 的负载均衡&lt;/strong&gt; 与 &lt;strong&gt;XDP 转发&lt;/strong&gt;，理解高性能路径和通用路径分别怎么选&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>eBPF 用户态跟踪</title>
      <link>https://code0xff.org/post/2025/07/ebpf_user/</link>
      <pubDate>Sat, 05 Jul 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/07/ebpf_user/</guid>
      <description>&lt;p&gt;包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先从 &lt;strong&gt;DWARF 调试信息&lt;/strong&gt; 讲起，说明为什么跟踪用户态程序时，二进制符号、行号和类型信息会变得非常重要&lt;/li&gt;&#xA;&lt;li&gt;再通过例子把 &lt;strong&gt;uprobes/uretprobes&lt;/strong&gt; 的基本工作方式串起来，建立对函数入口、返回值和参数抓取的直觉&lt;/li&gt;&#xA;&lt;li&gt;后面按 &lt;strong&gt;编译型语言、解释型语言、即时编译型语言&lt;/strong&gt; 分别展开，理解不同运行时下观测难点为什么不一样&lt;/li&gt;&#xA;&lt;li&gt;整体目标是回答一个核心问题：&lt;strong&gt;用户态跟踪并不只是“换个挂点”，而是要同时理解程序语言、编译产物和运行时模型&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>eBPF 内核跟踪</title>
      <link>https://code0xff.org/post/2025/06/ebpf_kernal/</link>
      <pubDate>Sat, 14 Jun 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/06/ebpf_kernal/</guid>
      <description>&lt;p&gt;顺着“如何跟踪内核”这条线把工具和入口组织起来，包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先看 &lt;strong&gt;/proc/kallsyms、DebugFS、tracepoint 格式、perf list&lt;/strong&gt; 这些基础信息源，理解内核里到底有哪些可挂载的位置&lt;/li&gt;&#xA;&lt;li&gt;再比较 &lt;strong&gt;bpftrace、BCC、libbpf&lt;/strong&gt; 三种不同层级的工具链，区分它们在易用性、灵活性和工程化上的差异&lt;/li&gt;&#xA;&lt;li&gt;中间会把 &lt;strong&gt;系统调用、内核函数、跟踪点&lt;/strong&gt; 这些入口和实际例子串起来，帮助建立从“找点”到“采集数据”的完整链路&lt;/li&gt;&#xA;&lt;li&gt;整体目标是形成一个实用认知：&lt;strong&gt;内核跟踪的第一步不是写程序，而是先知道该去哪找符号、参数格式和稳定入口&lt;/strong&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>海边徒步和骑行</title>
      <link>https://code0xff.org/post/2025/06/rz_qd/</link>
      <pubDate>Tue, 03 Jun 2025 10:11:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/06/rz_qd/</guid>
      <description>&lt;p&gt;一次日照、青岛游玩记录&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;日照：日照滨海国家森林公园、东夷小镇、万平海口风景区、湖边骑行&lt;/li&gt;&#xA;&lt;li&gt;青岛：栈桥、琴屿路、鲁迅公园、八大关、唐岛湾骑行、中山公园、小麦岛&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>雅思句子分析和单词（5）</title>
      <link>https://code0xff.org/post/2025/05/english_5/</link>
      <pubDate>Sun, 25 May 2025 10:11:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/05/english_5/</guid>
      <description>&lt;p&gt;雅思句子分析与单词系列的第 5 篇，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;覆盖 &lt;strong&gt;第 81 到 100 个句子&lt;/strong&gt;，对应这一轮 100 句精读训练的最后一部分&lt;/li&gt;&#xA;&lt;li&gt;继续沿用 &lt;strong&gt;逐句翻译 + 结构拆解 + 成分树 + 词汇扩展&lt;/strong&gt; 的方式，把长难句读懂的过程标准化&lt;/li&gt;&#xA;&lt;li&gt;重点会落在 &lt;strong&gt;复杂修饰结构、术语表达、从句层次和逻辑关系&lt;/strong&gt; 的识别上，帮助把前几篇的方法串起来&lt;/li&gt;&#xA;&lt;li&gt;适合作为这一轮系列的收尾：既复习前面的拆句套路，也继续积累写作和阅读都能用到的表达&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>雅思句子分析和单词（4）</title>
      <link>https://code0xff.org/post/2025/05/english_4/</link>
      <pubDate>Sun, 25 May 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/05/english_4/</guid>
      <description>&lt;p&gt;雅思句子分析与单词系列的第 4 篇，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;覆盖 &lt;strong&gt;第 61 到 80 个句子&lt;/strong&gt;，继续向更复杂的长难句推进&lt;/li&gt;&#xA;&lt;li&gt;这一段会更多碰到 &lt;strong&gt;同位语、定语从句、跨层指代、专业术语解释、破折号补充说明&lt;/strong&gt; 这类需要耐心拆的结构&lt;/li&gt;&#xA;&lt;li&gt;分析不仅关心语法本身，还会解释作者为什么这样写，帮助理解学术文本里常见的信息组织方式&lt;/li&gt;&#xA;&lt;li&gt;词汇部分会继续结合原句扩展，适合积累偏正式、偏学术的表达材料&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>eBPF hello-world</title>
      <link>https://code0xff.org/post/2025/05/ebpf_hello/</link>
      <pubDate>Sat, 10 May 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/05/ebpf_hello/</guid>
      <description>&lt;p&gt;借这&lt;code&gt;hello world&lt;/code&gt;最小例子把 &lt;code&gt;eBPF&lt;/code&gt; 的整条入门路径串起来，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先从 &lt;strong&gt;BPF 到 eBPF&lt;/strong&gt; 的背景和基本执行模型说起，理解为什么它会从包过滤扩展成内核顶级子系统&lt;/li&gt;&#xA;&lt;li&gt;再用 &lt;strong&gt;Python + BCC&lt;/strong&gt; 和 &lt;strong&gt;C 代码执行&lt;/strong&gt; 两条路径跑通 hello-world，帮助建立从“写代码”到“内核里跑起来”的直觉&lt;/li&gt;&#xA;&lt;li&gt;中间系统整理 &lt;strong&gt;执行过程、指令、bpf 系统调用、辅助函数、映射、类型格式&lt;/strong&gt;，把平时容易分散记忆的概念串到一起&lt;/li&gt;&#xA;&lt;li&gt;最后补充 &lt;strong&gt;跟踪类、网络类、其他类 eBPF 程序&lt;/strong&gt; 的分类，让 hello-world 不只停留在例子本身，而是成为后续深入学习的入口&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>雅思句子分析和单词（3）</title>
      <link>https://code0xff.org/post/2025/05/english_3/</link>
      <pubDate>Fri, 09 May 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/05/english_3/</guid>
      <description>&lt;p&gt;雅思句子分析与单词系列的第 3 篇，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;覆盖 &lt;strong&gt;第 41 到 60 个句子&lt;/strong&gt;，句子复杂度开始进一步上升，更接近阅读真题里的长难句形态&lt;/li&gt;&#xA;&lt;li&gt;重点拆 &lt;strong&gt;形式主语、并列从句、时间状语从句、被动语态、从句省略&lt;/strong&gt; 等结构，帮助抓住句子骨架&lt;/li&gt;&#xA;&lt;li&gt;每个句子依然会配 &lt;strong&gt;结构树、语法点解释、语义翻译&lt;/strong&gt;，尽量把复杂句子变成可重复的方法&lt;/li&gt;&#xA;&lt;li&gt;词汇扩展会更偏学术语境，适合积累阅读、写作中常见的正式表达&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>雅思句子分析和单词（2）</title>
      <link>https://code0xff.org/post/2025/05/english_2/</link>
      <pubDate>Thu, 08 May 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/05/english_2/</guid>
      <description>&lt;p&gt;雅思句子分析与单词系列的第 2 篇，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;覆盖 &lt;strong&gt;第 21 到 40 个句子&lt;/strong&gt;，延续逐句拆解的方式继续做结构训练&lt;/li&gt;&#xA;&lt;li&gt;重点会更多落在 &lt;strong&gt;并列复合句、形式主语、主语从句、后置定语、谓语并列&lt;/strong&gt; 这类雅思里高频出现的结构&lt;/li&gt;&#xA;&lt;li&gt;除了句法分析，还会补充 &lt;strong&gt;固定搭配、词组边界、句子成分树&lt;/strong&gt;，帮助把“看懂”变成“能自己拆”&lt;/li&gt;&#xA;&lt;li&gt;词汇部分继续围绕原句扩展，适合边做句子精读边积累写作和阅读常用表达&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>雅思句子分析和单词（1）</title>
      <link>https://code0xff.org/post/2025/05/english_1/</link>
      <pubDate>Thu, 01 May 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/05/english_1/</guid>
      <description>&lt;p&gt;雅思句子分析与单词系列的第 1 篇，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;覆盖 &lt;strong&gt;第 1 到 20 个句子&lt;/strong&gt;，先建立这一系列的分析节奏和拆句方法&lt;/li&gt;&#xA;&lt;li&gt;每个句子都从 &lt;strong&gt;结构分析、固定搭配、语义理解、词汇扩展&lt;/strong&gt; 几个角度展开，而不是只给翻译&lt;/li&gt;&#xA;&lt;li&gt;词汇部分会顺着句子主题做延展，补充 &lt;strong&gt;近义词、搭配、词根记忆&lt;/strong&gt;，方便把句子学习和单词积累放在一起&lt;/li&gt;&#xA;&lt;li&gt;整体更适合当成系列入口：先学会怎么看句子，再逐步进入更复杂的长难句&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>OpenLDAP 学习</title>
      <link>https://code0xff.org/post/2025/04/ldap/</link>
      <pubDate>Sun, 13 Apr 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/04/ldap/</guid>
      <description>&lt;p&gt;把 &lt;code&gt;OpenLDAP&lt;/code&gt; 最常见的学习入口整理到一起，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先从 &lt;strong&gt;OpenLDAP 的主要模块&lt;/strong&gt; 入手，理解 &lt;code&gt;slapd&lt;/code&gt;、&lt;code&gt;lloadd&lt;/code&gt;、协议库以及周边工程分别负责什么&lt;/li&gt;&#xA;&lt;li&gt;再结合 &lt;strong&gt;目录树结构&lt;/strong&gt; 和 &lt;strong&gt;按 DNS 分层的组织方式&lt;/strong&gt;，建立对 LDAP 数据组织模型的直觉&lt;/li&gt;&#xA;&lt;li&gt;命令部分集中整理 &lt;strong&gt;ldapadd、ldapmodify、ldapdelete、ldapsearch、ldappasswd、ldapwhoami&lt;/strong&gt; 等常用工具，方便日常查询和维护&lt;/li&gt;&#xA;&lt;li&gt;后面补上 &lt;strong&gt;配置文件、Web 控制台和官方文档入口&lt;/strong&gt;，让这篇既能做入门笔记，也能当成后续排障和查配置时的索引&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Flink 内存管理</title>
      <link>https://code0xff.org/post/2025/03/flink_memory/</link>
      <pubDate>Sat, 29 Mar 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/03/flink_memory/</guid>
      <description>&lt;p&gt;重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;MemorySegment&lt;/strong&gt; 是 Flink 最小的内存分配单元，默认 32KB，既可以直接驻留内存，也可以在必要时借助序列化写到磁盘&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;HeapMemorySegment&lt;/strong&gt;、&lt;strong&gt;DataInputView&lt;/strong&gt;、&lt;strong&gt;DataOutputView&lt;/strong&gt; 这些基础抽象分别负责堆内内存访问、读取视图和写入视图，是上层算子和序列化框架的基础&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;MemoryManager&lt;/strong&gt; 主要管理排序、哈希、缓存等更偏离线计算的内存，而 &lt;strong&gt;NetworkBufferPool&lt;/strong&gt; 则通过 &lt;code&gt;MemorySegmentFactory&lt;/code&gt; 申请网络缓冲区使用的内存&lt;/li&gt;&#xA;&lt;li&gt;调用链可以从 &lt;strong&gt;TaskManager -&amp;gt; TaskSlot -&amp;gt; MemorySegment&lt;/strong&gt; 这条路径去理解，后面再结合 &lt;strong&gt;KryoSerializer&lt;/strong&gt; 和 &lt;code&gt;TypeInformation&lt;/code&gt; 看 Flink 的序列化体系怎么工作&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Flink RPC</title>
      <link>https://code0xff.org/post/2025/03/flink_rpc/</link>
      <pubDate>Sun, 23 Mar 2025 10:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/03/flink_rpc/</guid>
      <description>&lt;p&gt;重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;RPC 层&lt;/strong&gt;：Flink 早期基于 &lt;strong&gt;Akka&lt;/strong&gt; 构建 RPC，&lt;code&gt;Dispatcher&lt;/code&gt;、&lt;code&gt;JobMaster&lt;/code&gt;、&lt;code&gt;ResourceManager&lt;/code&gt; 等组件都继承 &lt;code&gt;RpcEndpoint&lt;/code&gt;，而 &lt;code&gt;RpcServer&lt;/code&gt; 则通过 &lt;code&gt;AkkaInvocationHandler&lt;/code&gt; 完成动态代理&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;网络栈&lt;/strong&gt;：TaskManager 之间的数据传输走 &lt;strong&gt;Netty&lt;/strong&gt;，数据从 &lt;code&gt;RecordWriter&lt;/code&gt; 写入本地 buffer，再进入 &lt;code&gt;ResultPartition&lt;/code&gt;，最后发给对端的 Netty，再转入 &lt;code&gt;InputGate -&amp;gt; OperatorChain -&amp;gt; StreamTaskInput&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;任务执行模型&lt;/strong&gt;：包括直接从外部源读取数据的 &lt;code&gt;SourceStreamTask&lt;/code&gt; / &lt;code&gt;SourceReaderStreamTask&lt;/code&gt;，以及支持从网络或本地消费数据的 &lt;code&gt;OneInputStreamTask&lt;/code&gt; / &lt;code&gt;TwoInputStreamTask&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Shuffle 与反压&lt;/strong&gt;：&lt;code&gt;ResultPartition&lt;/code&gt; 是 &lt;code&gt;IntermediateResultPartition&lt;/code&gt; 的底层物理实现，包含多种实现形态；而基于 &lt;strong&gt;credit&lt;/strong&gt; 的反压机制里，每个 credit 基本就对应一个上游 buffer（默认 32KB）&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>模型微调步骤</title>
      <link>https://code0xff.org/post/2025/03/training/</link>
      <pubDate>Sun, 23 Mar 2025 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/03/training/</guid>
      <description>&lt;p&gt;包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;按任务类型拆开看图像、视频、音频、文本、多模态的微调差异&lt;/li&gt;&#xA;&lt;li&gt;把数据准备、冻结层、学习率、LoRA/全参微调、评估与部署这些通用步骤串起来&lt;/li&gt;&#xA;&lt;li&gt;补上梯度下降、导数这些基础概念，方便把工程流程和模型原理接上&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Flink 状态管理</title>
      <link>https://code0xff.org/post/2025/03/flink_state/</link>
      <pubDate>Sat, 15 Mar 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/03/flink_state/</guid>
      <description>&lt;p&gt;把 &lt;code&gt;Flink&lt;/code&gt; 的状态数据、后端实现和 &lt;code&gt;checkpoint&lt;/code&gt; 主线串起来：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先看 &lt;code&gt;State&lt;/code&gt; 体系本身，包括 &lt;code&gt;MapState&lt;/code&gt;、&lt;code&gt;ValueState&lt;/code&gt;、&lt;code&gt;BroadcastState&lt;/code&gt; 以及内部使用的 &lt;code&gt;InternalKvState&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;再看 &lt;code&gt;KeyedState&lt;/code&gt; 和 &lt;code&gt;OperatorState&lt;/code&gt; 两条实现路径，以及 &lt;code&gt;Heap&lt;/code&gt;、&lt;code&gt;RocksDB&lt;/code&gt;、&lt;code&gt;StateTable&lt;/code&gt;、&lt;code&gt;OperatorStateBackend&lt;/code&gt; 这些核心组件&lt;/li&gt;&#xA;&lt;li&gt;最后把 checkpoint 的触发、barrier 对齐、下游传播、ACK 回传和 job-manager 确认完成的过程连起来&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Flink 集群管理</title>
      <link>https://code0xff.org/post/2025/03/flink_cluster/</link>
      <pubDate>Sat, 08 Mar 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/03/flink_cluster/</guid>
      <description>&lt;p&gt;主要看 &lt;code&gt;Flink&lt;/code&gt; 集群是怎么被创建出来、怎么和外部资源管理器打交道的，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ClusterClientFactory -&amp;gt; ClusterDescriptor -&amp;gt; ClusterClientProvider -&amp;gt; ClusterClient&lt;/code&gt; 这条客户端侧的入口链路&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;AbstractContainerizedClusterClientFactory&lt;/code&gt;、&lt;code&gt;StandaloneClientFactory&lt;/code&gt; 这些不同部署模式下的工厂实现&lt;/li&gt;&#xA;&lt;li&gt;Yarn 和 Kubernetes 两条典型路径里，&lt;code&gt;ResourceManager&lt;/code&gt;、&lt;code&gt;TaskExecutor&lt;/code&gt;、&lt;code&gt;fabric8&lt;/code&gt;、pod/Container 启动之间的关系&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Flink 任务提交</title>
      <link>https://code0xff.org/post/2025/03/flink_submit/</link>
      <pubDate>Sat, 01 Mar 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/03/flink_submit/</guid>
      <description>&lt;p&gt;重点是把“提交一个 Flink 作业”拆成几个明确阶段：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;code&gt;CLIFrontend&lt;/code&gt;、&lt;code&gt;PackagedProgram&lt;/code&gt;、&lt;code&gt;DefaultExecutorServiceLoader&lt;/code&gt; 到不同集群类型下的 &lt;code&gt;PipelineExecutor&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;从 &lt;code&gt;ExecutionEnvironment&lt;/code&gt;、&lt;code&gt;StreamExecutionEnvironment&lt;/code&gt; 生成 &lt;code&gt;StreamGraph&lt;/code&gt; / &lt;code&gt;JobGraph&lt;/code&gt;，再交给运行时调度&lt;/li&gt;&#xA;&lt;li&gt;再往后看 &lt;code&gt;Dispatcher&lt;/code&gt;、&lt;code&gt;JobMaster&lt;/code&gt;、&lt;code&gt;SlotPool&lt;/code&gt;、&lt;code&gt;TaskDeploymentDescriptor&lt;/code&gt;、&lt;code&gt;StreamTask&lt;/code&gt;、Mailbox、重启策略这些运行阶段的关键组件&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Flink-DataStraem</title>
      <link>https://code0xff.org/post/2025/02/flink_datastream/</link>
      <pubDate>Sat, 22 Feb 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/02/flink_datastream/</guid>
      <description>&lt;p&gt;&lt;code&gt;DataStream&lt;/code&gt; 在运行时到底会落到哪些算子和线程模型上：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;code&gt;StreamOperator&lt;/code&gt;、&lt;code&gt;AbstractStreamOperator&lt;/code&gt;、&lt;code&gt;AbstractUdfStreamOperator&lt;/code&gt; 一路看到单输入、双输入算子的继承体系&lt;/li&gt;&#xA;&lt;li&gt;再看 &lt;code&gt;SourceFunction&lt;/code&gt;、&lt;code&gt;SinkFunction&lt;/code&gt;、&lt;code&gt;TwoPhaseCommitSinkFunction&lt;/code&gt;、&lt;code&gt;ProcessFunction&lt;/code&gt;、&lt;code&gt;KeyedProcessFunction&lt;/code&gt; 这些常用扩展点&lt;/li&gt;&#xA;&lt;li&gt;最后顺着 &lt;code&gt;SourceStreamTask -&amp;gt; StreamSource -&amp;gt; user function&lt;/code&gt; 和 &lt;code&gt;StreamSink -&amp;gt; invoke()&lt;/code&gt; 这条路径，把 &lt;code&gt;Watermark&lt;/code&gt;、&lt;code&gt;TimerService&lt;/code&gt;、端到端一致性串起来&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Flink架构</title>
      <link>https://code0xff.org/post/2025/02/flink_arch/</link>
      <pubDate>Sat, 15 Feb 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/02/flink_arch/</guid>
      <description>&lt;p&gt;&lt;code&gt;Flink&lt;/code&gt; 运行时的脑图，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Session 集群、Application 集群两种模式，以及客户端、JobManager、TaskManager 之间的基本关系&lt;/li&gt;&#xA;&lt;li&gt;作业从提交到调度执行的主链路，包括心跳、checkpoint、slot 分配、任务状态汇报&lt;/li&gt;&#xA;&lt;li&gt;运行时启动时会顺带拉起的组件，比如 RPC service、blob server、metric registry、HA service、heartbeat service 等&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Flink执行图的生成</title>
      <link>https://code0xff.org/post/2025/02/flink_inner/</link>
      <pubDate>Sat, 08 Feb 2025 09:10:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/02/flink_inner/</guid>
      <description>&lt;p&gt;&lt;code&gt;Flink&lt;/code&gt; 逻辑计划到物理执行的主线整理，重点包括：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;流任务如何先转换成 &lt;code&gt;StreamGraph&lt;/code&gt;，批任务如何进入 &lt;code&gt;OptimizedPlan&lt;/code&gt;，最后统一落到 &lt;code&gt;JobGraph&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;StreamNode&lt;/code&gt;、&lt;code&gt;StreamEdge&lt;/code&gt;、&lt;code&gt;JobVertex&lt;/code&gt;、&lt;code&gt;JobEdge&lt;/code&gt;、&lt;code&gt;IntermediateDataSet&lt;/code&gt; 这些图结构节点和边分别代表什么&lt;/li&gt;&#xA;&lt;li&gt;再往后如何结合并行度、算子链和调度需求，生成最终的 &lt;code&gt;ExecutionGraph&lt;/code&gt; 并进入物理执行&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>学习一下 pytorch</title>
      <link>https://code0xff.org/post/2025/02/py_torch/</link>
      <pubDate>Thu, 30 Jan 2025 01:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/02/py_torch/</guid>
      <description>&lt;p&gt;&lt;code&gt;PyTorch&lt;/code&gt; 入门学习单，内容比较散，这里把主线收一下：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先从 &lt;code&gt;numpy&lt;/code&gt;、&lt;code&gt;tensor&lt;/code&gt;、索引切片、张量和数组转换这些最基础的操作开始&lt;/li&gt;&#xA;&lt;li&gt;再往上走到 &lt;code&gt;Torchvision&lt;/code&gt;、MNIST、训练评估、模型保存加载，以及常见图像预处理&lt;/li&gt;&#xA;&lt;li&gt;最后补到卷积、padding、空洞卷积、梯度、tensorboard、visdom、分布式训练这些进阶主题&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>公有云中日志收集</title>
      <link>https://code0xff.org/post/2025/01/logs_collection_based_cloud/</link>
      <pubDate>Mon, 27 Jan 2025 01:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/01/logs_collection_based_cloud/</guid>
      <description>&lt;p&gt;在公有云和 &lt;code&gt;Kubernetes&lt;/code&gt; 环境里，日志怎么从 &lt;code&gt;pod&lt;/code&gt; 里拿出来、再怎么落到后端存储：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先对比两种采集方式：程序内通过 &lt;code&gt;log4j appender&lt;/code&gt; 直接发送，或者由辅助程序读取日志文件再转发&lt;/li&gt;&#xA;&lt;li&gt;再看几种常见处理路径，比如写 &lt;code&gt;Kafka&lt;/code&gt;、共享存储、&lt;code&gt;S3&lt;/code&gt;，或者交给 &lt;code&gt;Raft&lt;/code&gt; 集群、&lt;code&gt;NewSQL&lt;/code&gt; 系统做聚合和索引&lt;/li&gt;&#xA;&lt;li&gt;重点不只是&lt;strong&gt;怎么采&lt;/strong&gt;，还包括高可用、吞吐、解耦和后续检索分析成本&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>BTrace 的学习</title>
      <link>https://code0xff.org/post/2025/01/btrace/</link>
      <pubDate>Sun, 12 Jan 2025 01:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/01/btrace/</guid>
      <description>&lt;p&gt;记录一个 &lt;code&gt;BTrace&lt;/code&gt; 脚本，再顺带把几类 &lt;code&gt;Java&lt;/code&gt; 线上诊断工具放到一起看：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先用一个简单的 BTrace 例子理解字节码插桩、运行期观测和不重启排查问题的基本思路&lt;/li&gt;&#xA;&lt;li&gt;再和 &lt;code&gt;Arthas retransform&lt;/code&gt;、&lt;code&gt;jdb&lt;/code&gt; 这种更常见的调试方式做对照&lt;/li&gt;&#xA;&lt;li&gt;最后补上 &lt;code&gt;JFR&lt;/code&gt;、&lt;code&gt;VisualVM&lt;/code&gt;、&lt;code&gt;JProfiler&lt;/code&gt;、&lt;code&gt;MAT&lt;/code&gt;、火焰图这些工具，方便按问题类型选手段&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>YARN原理分析</title>
      <link>https://code0xff.org/post/2025/01/yarn/</link>
      <pubDate>Sat, 11 Jan 2025 01:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/01/yarn/</guid>
      <description>&lt;p&gt;总结：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;先看 &lt;code&gt;client &amp;lt;-&amp;gt; RM&lt;/code&gt;、&lt;code&gt;RM &amp;lt;-&amp;gt; NM&lt;/code&gt;、&lt;code&gt;RM &amp;lt;-&amp;gt; AM&lt;/code&gt;、&lt;code&gt;AM &amp;lt;-&amp;gt; NM&lt;/code&gt; 这些 RPC 通信关系，以及 reactor 和异步事件处理模型&lt;/li&gt;&#xA;&lt;li&gt;再看 &lt;code&gt;ResourceManager&lt;/code&gt;、&lt;code&gt;NodeManager&lt;/code&gt;、&lt;code&gt;ApplicationMaster&lt;/code&gt; 内部模块、状态机和资源调度器&lt;/li&gt;&#xA;&lt;li&gt;最后把队列层级、资源抢占、分布式缓存、日志回收、container 本地化启动和清理这些运行细节串起来&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Spark 注册数据源</title>
      <link>https://code0xff.org/post/2025/01/spark_register_source/</link>
      <pubDate>Sat, 04 Jan 2025 01:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/01/spark_register_source/</guid>
      <description>&lt;p&gt;总结：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;DataSourceRegister&lt;/code&gt; 的注册方式，以及自定义 &lt;code&gt;XXRelationProvider&lt;/code&gt; 是怎么被 Spark 发现和加载的&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;DataSource&lt;/code&gt; 的查找过程，以及 &lt;code&gt;DataFrameReader&lt;/code&gt;、&lt;code&gt;DataFrameWriter&lt;/code&gt; 在读写路径里的角色&lt;/li&gt;&#xA;&lt;li&gt;顺手补到 &lt;code&gt;CheckpointRDDPartition&lt;/code&gt;、&lt;code&gt;ReliableCheckpointRDD&lt;/code&gt; 和 &lt;code&gt;SparkSession&lt;/code&gt; 内部的 &lt;code&gt;SparkContext&lt;/code&gt;、&lt;code&gt;sharedState&lt;/code&gt;、&lt;code&gt;SQLContext&lt;/code&gt;、&lt;code&gt;RuntimeConfig&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Spark Core相关-2</title>
      <link>https://code0xff.org/post/2025/01/spark_core_2/</link>
      <pubDate>Wed, 01 Jan 2025 01:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2025/01/spark_core_2/</guid>
      <description>&lt;p&gt;总结：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;从 &lt;code&gt;RDD&lt;/code&gt;、&lt;code&gt;DAGScheduler&lt;/code&gt;、&lt;code&gt;TaskScheduler&lt;/code&gt;、&lt;code&gt;SchedulerBackend&lt;/code&gt; 看作业是怎么拆成 stage 和 task 再被调度出去的&lt;/li&gt;&#xA;&lt;li&gt;从 &lt;code&gt;MemoryAllocator&lt;/code&gt;、&lt;code&gt;TaskMemoryManager&lt;/code&gt;、&lt;code&gt;MemoryConsumer&lt;/code&gt; 到 &lt;code&gt;AppendOnlyMap&lt;/code&gt;、&lt;code&gt;ExternalSorter&lt;/code&gt;、&lt;code&gt;ShuffleWriter&lt;/code&gt;、&lt;code&gt;ShuffleReader&lt;/code&gt;，看内存和 shuffle 主链路&lt;/li&gt;&#xA;&lt;li&gt;最后补到 &lt;code&gt;Executor&lt;/code&gt; 启动 task、Standalone 下 Driver/Worker/Master 交互，以及 YARN cluster / client 模式的差异&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Llama Factory</title>
      <link>https://code0xff.org/post/2024/12/llamafactory/</link>
      <pubDate>Tue, 24 Dec 2024 22:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/12/llamafactory/</guid>
      <description>Llama Factory</description>
    </item>
    <item>
      <title>Spark Core相关-1</title>
      <link>https://code0xff.org/post/2024/11/spark_core/</link>
      <pubDate>Mon, 25 Nov 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/11/spark_core/</guid>
      <description>SparkContext、存储体系、RPC、Web-UI。&#xA;存储体系，BlockManager和BlockManagerMaster、MemoryManager、MemoryStore、DiskBlockManager、DiskStore。监控体系：MapOutputTracker、MapOutputTrackerMaster、MapOutputTrackerWorker。 Web-UI体系：对应的层级结构为： SparkUI -&amp;gt; WebUITab -&amp;gt; WebUIPage。执行环境：安全体系(SecurityManager、用于设置 yarn，hadoop 的 secret key)；SparkContext 会附带初始化：Metrics 体系、Listener、SparkUI、RPC 整套体系、BlockManager，storage 体系、Executor 体系、Heartbeater、KVStore、SerializerManager，还有度量类、日志体系。 PRC 体系：MessageLoop 中维护了 Inbox 的链表、每个Inbox 中为了 InboxMessage 的链表，InboxMessage包含很多实现类，如 HeartbeatReceiver ，包括了 receiveAndReply。RPC中用到了 netty的通讯体系，根据发送地址，选择对应的 Outbox，每个 Outbox维护一个 OutboxMessage的链表，再通过netty 的 NettyChannel 发送出去</description>
    </item>
    <item>
      <title>sea tunnel</title>
      <link>https://code0xff.org/post/2024/11/sae_tunnel/</link>
      <pubDate>Fri, 15 Nov 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/11/sae_tunnel/</guid>
      <description>sae tunnel</description>
    </item>
    <item>
      <title>k8s 网络</title>
      <link>https://code0xff.org/post/2024/11/k8s_networks/</link>
      <pubDate>Mon, 04 Nov 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/11/k8s_networks/</guid>
      <description>覆盖网络，Flannel 的 UDP模式、xvlan模式、host-gw，Calico 采用了BGP做三层转发，为防止退化为 IPIP，需要设置 BGP 的跳数。 使用 Network Policy 做网络隔离，k8s 的网络本质都是连通的，像是弱多租户。CNI 插件 的网络插件。Service 是由 kube-proxy 组件，加上 iptables 来共同实现的；所谓 Ingress，就是 Service 的“Service”。 调度：根据 etcd 的变化选择合适的 Node 做调度，Priorities为节点打分；Pod 调度失败的情况(抢占、优先级)；K8S 中两个不可替代的组件：kube-apiserver、kubelet；核心是循环控制器检查，容器运行时：CRI，除了docker还有containerd，基于虚拟化的：Kata Containers、gVisor</description>
    </item>
    <item>
      <title>ozone</title>
      <link>https://code0xff.org/post/2024/11/ozone/</link>
      <pubDate>Mon, 04 Nov 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/11/ozone/</guid>
      <description>ozone的三个角色Ozone Manager (OM)，Storage Container Manager (SCM)，DataNode，三个角色的具体存储内容，datanode中数据存储在 container中，按照offset保存数据的位置，recon 提供管理界面，ozone mager和 SCM 的高可用：使用 rocksdb + raft 实现的，这里用的是：ratis。整合spark，flink，presto/trino，doris 都比较容易</description>
    </item>
    <item>
      <title>ES的简单学习</title>
      <link>https://code0xff.org/post/2024/11/es/</link>
      <pubDate>Sun, 03 Nov 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/11/es/</guid>
      <description>主节点管理元数据，数据节点(主分片，从分片)，协调节点，预处理节点。索引-分片-segment。查询：term query、ranger、prefix、wildcard query，组合查询、聚合查询(每个分片做topN协调节点汇总topN可能数据不准确)，各种字段类型。  倒排索引原理，term-index、term dictionary、posting List。Lucene的segment包含多个document，一个document包含多个filed，每个filed有杜丽丽的索引(倒排索引)，变种的前缀树、数据编码、Roaring Bitmaps。相关性评分：TF-IDF (Term Frequency-inverse Document Frequency)、BM25 算分模型。分词器：格式处理清洗、文本切分、对切换后的单词做处理。近实时的原因：Refresh，写入的数据会定期刷盘，刷盘后生成不可变文件就可以被读取。index buffer、transaction log。分页方式：from + size、search after、scroll API、point in time。PacificA主从副本同步协议，多个master使用 raft 协议，主副本写入会带SN，将写入数据和SN一起同步给从分片。监控：cluster API，CAT api，索引生命周期管理：hot、warn、colod、delete。 索引别名、reindex、索引模版，收缩index。 ELK 架构。 ES优化：snapshoot、生命周期管理，批量读写，慢日志查询/CPU/内存/磁盘/网络 监控，索引rate，segment大小，shared数量，存储限流，refresh频率</description>
    </item>
    <item>
      <title>AI的简单学习</title>
      <link>https://code0xff.org/post/2024/11/ai/</link>
      <pubDate>Sat, 02 Nov 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/11/ai/</guid>
      <description>AI的简单学习</description>
    </item>
    <item>
      <title>国内几个云厂商大数据平台</title>
      <link>https://code0xff.org/post/2024/11/big_data_investigation/</link>
      <pubDate>Fri, 01 Nov 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/11/big_data_investigation/</guid>
      <description>国内几个厂商，阿里、华为、腾讯、网易的大数据平台产品粗略调研；共同点：去Ambari 自己的管控平台，报警 监控 自动化运维，智能诊断，数据治理，集成各开源组件，离线、实时、OLAP，数据服务。  阿里云：有 celeborn向量化， EMR on ECS、on ACK，Serverless， 网易：自动化诊断做的不错，Kyuubi、Impala两个增强点； 华为云：基于OpenStack还有 API，鲲鹏硬件整合、CarbonData，Superiro Scheduler；腾讯：TDBS 比较中规中矩 各种都有</description>
    </item>
    <item>
      <title>数据中台总结</title>
      <link>https://code0xff.org/post/2024/11/middle_platform/</link>
      <pubDate>Wed, 30 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/11/middle_platform/</guid>
      <description>数仓时代、大数据出现、大数据平台、数据中台。自顶向下建模、自底向上建模。大数据平台问题：1、指标口径不一致；2、数据重复建设；3、取数难；4、数据质量差；5、成本高；数据中台：OneData、OneService，基于大数据平台，增加数据治理能。其中元数据中心是关键(数据字典、数据血缘、数据特征)。   数据指标：口径不一致，描述错误/不清晰/难以理解/计算逻辑不清晰；面向主题域管理、原子和派生指标、规范命名。数据模型复用：DWD跨层引用，DWS/ADS/DM 汇总查询比列，接管ODS，划分主题域，构建一致性维度、事实表整合、ETL开发。数据质量：添加稽核任务、全链路监控、智能预警、质量打分、SLA。成本治理：全局资产盘点、发现问题、治理优化(无用的下线、高消耗查询、存储成本)、治理效果评估。   数据服务：提供统一接口、解决数据接入效率低、数据和接口无法复用、不知道数据被哪些应用访问；具备网关能力，全链路打通，利用中间存储加速查询，逻辑模型嵌套底层多个物理数据源。  数据安全：HDFS快照+备份；垃圾箱、权限管理：OpenLDAP + Kerberos + Ranger，两套环境物理隔离 or 复用底层设施 + 共享 meta-store。  实践： BI 赋能、打通行业的运营体系、自助取数； 研发流程：需求阶段、开发阶段、交付阶段、运维阶段。   中台建设：数据中台和业务的关系，就是鱼和水的关系，谁也离不开谁；业务想要获得更大的增长，就必须依赖数据中台，数据中台想要存活下去，就必须依赖业务的口碑和认可</description>
    </item>
    <item>
      <title>SRE总结</title>
      <link>https://code0xff.org/post/2024/10/sre/</link>
      <pubDate>Sat, 26 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/10/sre/</guid>
      <description>SRE是一个体系化工程，包括Pre-MTBF，MTTR(MTTI,MTTK,MTTF,MTTV)，Post-MTBF；衡量标准包括：故障时间维度，请求维度，SLI 监控的指标、SLO 指标对应的目标；包括系统层面、应用服务器层面、应用运行层面、PaaS层面、数据层面、业务层面；SLI指标方法 VALET volume、Availablity、Latency、Errors、Tickets；错误预算，燃尽图，故障定级；衡量SLO有效性三组指标：达成情况、人肉投入程度、用户满意度。落地SLO 包括确认核心交易链路、确认强弱依赖关系，核心链路要求更严格、弱依赖需要降级，核心依赖共享Error Budget，验证 核心链路 SLO包括：容量压测、混沌工程。 实践，on-call机制，也就是确认 MTTI部分；故障处理，角色分工，故障排查中定期汇报，问题扩大需要运营侧公开反馈。故障复盘：故障原因？怎样保证不出现类似问题？怎样短时间恢复业务？互联网的SRE组织架构，根据分布式架构慢慢推动演化了组织架构。以赛带练</description>
    </item>
    <item>
      <title>Spark的一些优化</title>
      <link>https://code0xff.org/post/2024/10/spark_optimize/</link>
      <pubDate>Wed, 23 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/10/spark_optimize/</guid>
      <description>web-ui观察 executor指标：失败，shuffle，cache，CPU，内存，RDD数量，GC；stage关注 DAG，也是shuffle等数据，还有 Event Timeline。shuffle优化方式：增加并行度，group by变成局部聚合+全局聚合；转为 BHJ，大表 join 大表的 外表加盐，内表复制N份，再去盐gourp原始id，最后聚合；shuffle原理，HashShuffleManager(废除)，SortShuffleManager。 with 缓存优化，查询下推，自动倾斜join优化，LIMIT大数量优化，bucked join，4表join转为2个2个join增加并行度。RSS，向量化， AQE</description>
    </item>
    <item>
      <title>DataX和Canal相关</title>
      <link>https://code0xff.org/post/2024/10/datax_canal/</link>
      <pubDate>Tue, 22 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/10/datax_canal/</guid>
      <description>DataX：读写插件，Job任务拆分，Task和Task Group，transform(filter，substr，replace，可自定义)，流控，脏数据，数据库冥等写入，ETL架构。Canal：Server（服务端-客户端模式，嵌入式模式），多个instance，包括：eventParser (数据源接入，模拟slave协议和master进行交互，协议解析)、eventSink (Parser和Store链接器，进行数据过滤，加工，分发的工作)、eventStore (数据存储)、metaManager (增量订阅&amp;amp;消费信息管理器)</description>
    </item>
    <item>
      <title>系统设计</title>
      <link>https://code0xff.org/post/2024/10/system_design/</link>
      <pubDate>Sun, 20 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/10/system_design/</guid>
      <description>系统设计</description>
    </item>
    <item>
      <title>微服务架构</title>
      <link>https://code0xff.org/post/2024/10/microservice_architecture/</link>
      <pubDate>Sat, 19 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/10/microservice_architecture/</guid>
      <description>五种暗能量：Simple components、Team autonomy、Fast deployment pipeline、Multiple technology stacks、Segregate by characteristics、；Service collaboration patterns：Saga 模式、CQRS 模式、；Communicate、MessagingAPI composition；一些重要的设计：、Database per Service pattern、API Gateway pattern、Circuit Breaker、Access token。可观测性模式：Log aggregation、Application metrics、Audit logging、Distributed tracing、Exception tracking、Health check API、Log deployments and changes。Testing patterns：Service Component Test、Service Integration Contract Test。UI 模式：Server-side page fragment composition、Client-side UI composition</description>
    </item>
    <item>
      <title>Kafka架构</title>
      <link>https://code0xff.org/post/2024/10/kafka_architecture/</link>
      <pubDate>Fri, 18 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/10/kafka_architecture/</guid>
      <description>producer, broker, consumer，consumer group消费对应的partition数据，partition 包括多个 log segment，当一个达到阈值后，变成read only，再生成一个新的；每次都是head或者tail读，以及append写，速度很快，另外用了page cache会将数据写先到缓存再刷新；每个分区都有一个leader，副本只用于备份不做读写处理；副本如果能跟上leader就会放到 ISR集合中，ISR集合中最小的读确认offset 就是高水位，低水位是下次写的offset；producer 用 ack=0、1、all来表示副本节点是否接受了消息；ZK 后面迁移到了 Z-Raft 了，还有分层存储；kafka balance 是 NP问题，kafka connect，kafka streams；未来发展：完全基于云的kafka，用C++重写的kafka，数据存储在S3上的 statefulness 的kafka</description>
    </item>
    <item>
      <title>scala summary</title>
      <link>https://code0xff.org/post/2024/10/scala_summary/</link>
      <pubDate>Tue, 15 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/10/scala_summary/</guid>
      <description>高阶函数、函数柯里化、隐式转换(类型，对象)，lazy延迟计算、最后一行默认返回return。内置的可变 不可变集合、自动类型推导、操作符重载、模式匹配、内部函数、对象的apply和unapply、None和Some以及Option。foldLeft ，增强的for 循环，协变、逆变，上界 和 下界</description>
    </item>
    <item>
      <title>大数据上云</title>
      <link>https://code0xff.org/post/2024/10/bigdata_2_cloud/</link>
      <pubDate>Thu, 03 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/10/bigdata_2_cloud/</guid>
      <description>大数据平台上云的问题：集群管控方式变了，YARN调度系统变了；安全性问题、DDos、数据治理问题；成本问题，计费策略；存储迁移，HDFS -&amp;gt; S3 语义的变化；多云高可用方案；混合云方案；适配其他业务线</description>
    </item>
    <item>
      <title>Spark中的 parquet 原理</title>
      <link>https://code0xff.org/post/2024/10/parquet_4_spark/</link>
      <pubDate>Wed, 02 Oct 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/10/parquet_4_spark/</guid>
      <description>Spark执行Delta的过程，通过自定义的format格式，到DataFrameWriter.saveToV1Source，在是到DeltaDataSource#createRealation，写入做优化事务处理，再用FileFormatWriter创建多个Task并行写入，之后就是到Parquet内部执行阶段。Parquet包含Row Groups，往下是Column Chunk，再往下是Page，文件尾部包含Footer和一些元数据信息。Spark是按行写入的，一次写一行，每行写对应的 column。Parquet编码包括Dictionary Encoding、Run Length Encoding (RLE)、Delta Encoding。读取的主要类是VectorizedParquetRecordReader执行一批读取，调用VectorizedColumnReaders(对应每个column)，再调用VectorizedValuesReader(读取一个column中的一段数据)，返回由上层应用消费 。</description>
    </item>
    <item>
      <title>一些系统设计的文章</title>
      <link>https://code0xff.org/post/2024/09/system_designing/</link>
      <pubDate>Wed, 25 Sep 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/09/system_designing/</guid>
      <description>国外科技巨头的系统架构</description>
    </item>
    <item>
      <title>spark 的 streaming</title>
      <link>https://code0xff.org/post/2024/09/spark_streaming/</link>
      <pubDate>Mon, 09 Sep 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/09/spark_streaming/</guid>
      <description>spark streaming的基本原理，包括MicroBatchExecution，ContinuousExecution，通过IncrementalExecution + 状态实现micro-batch 并复用了spark 的所有查询逻辑；Source接口支持 getOffset，commit，可以自定义各种扩展实现；Sink包括：FileStreamSink、KafkaSink、DeltaSink、、ForeachBatchSink，ForeachWriteTable；Stateful将信息存如StateStoreRDD，保存到 HDFSBackedStateStoreProvider、RocksDBStateStoreProvider 中；Stream-Stream Join使用了StreamingSymmetricHashJoin，需要保证状态；Session Window同样也是通过插入一些流相关的算子 + 状态保存实现的</description>
    </item>
    <item>
      <title>Spark的 数据分布</title>
      <link>https://code0xff.org/post/2024/09/data_distribution/</link>
      <pubDate>Sun, 01 Sep 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/09/data_distribution/</guid>
      <description>Distribution及相关类，Partitioning类，Partitioner类，排序的物理算子，UnsafeExternalSorter 和UnsafeInMemorySorter，spill和归并排序；shuffle操作，ShuffleDependency，ShuffleRowRDD，map端的ShuffleMapTasks，reduce端 ShuffleDependency 从shuffle manager 那里读取数据，拿到MapStauts 状态；ShuffleManager 包含了ShuffleWriter，ShuffleReader；BypassMergeSortShuffleWriter 、UnsafeShuffleWriter、SortShuffleWriter、、BlockStoreShuffleReader</description>
    </item>
    <item>
      <title>对 O数据库 CDC 的一些改动</title>
      <link>https://code0xff.org/post/2024/08/open_log_rac/</link>
      <pubDate>Sun, 25 Aug 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/08/open_log_rac/</guid>
      <description>对 CDC 工具的一些改动，支持ASM 文件读取，支持 RAC 多个活跃节点，高可用等</description>
    </item>
    <item>
      <title>对O数据库CDC工具做编译</title>
      <link>https://code0xff.org/post/2024/07/open_log/</link>
      <pubDate>Mon, 15 Jul 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/07/open_log/</guid>
      <description>open log replicator 编译</description>
    </item>
    <item>
      <title>某O 数据库的 CDC 工作原理</title>
      <link>https://code0xff.org/post/2024/06/open_log_replicator/</link>
      <pubDate>Sat, 15 Jun 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/06/open_log_replicator/</guid>
      <description>open log replicator 使用</description>
    </item>
    <item>
      <title>英文语法的简单总结</title>
      <link>https://code0xff.org/post/2024/05/english_grammar/</link>
      <pubDate>Sun, 19 May 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/05/english_grammar/</guid>
      <description>英文语法总结</description>
    </item>
    <item>
      <title>code-gen</title>
      <link>https://code0xff.org/post/2024/05/spark_codegen/</link>
      <pubDate>Mon, 06 May 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/05/spark_codegen/</guid>
      <description>入口点：CollapseCodegenStages，插入WholeStageCodegenExec；对于不支持的，或者 SortMergeJoinExec、ShuffledHashJoinExec 会插入 InputAdapter；代码生成可以看作是两个方向相反的递归过程：代码的整体框架由 produce/doProduce 方法负责，父节点调用子节点。代码具体处理逻辑由 consume/doConsume 方法负责，由子节点调用父节点。整个物理算子树的执行过程被InputAdapter分隔开。boradcast-hash-join跟普通的bhj类似，分割部分插入了InputAdapter。shuffle-hash-join，跟 bhj 类似，只是左右两个子节点都增加了 InputAdapter，作为code-gen 的分割。sort-merge-join 左右两边都是 InputAdapter，对code-gen做了分割，之后调用SortExec 再次增加 InputAdapter，然后是shuffle逻辑，会生成5个代码片段。BroadcastNestedLoopJoin：广播+nested loop实现。CartesianProduct 没有 code-gen</description>
    </item>
    <item>
      <title>Spark 代码生成工具 Janino</title>
      <link>https://code0xff.org/post/2024/05/janino/</link>
      <pubDate>Sun, 05 May 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/05/janino/</guid>
      <description>Janino的一些例子，Expression Evaluator，Script Evaluator，Class Body Evaluator，Simple Compiler，as a Source Code Class Loader，jsh - the Java shell，Compiler Plugin for Tomcat，code analysisi，debug</description>
    </item>
    <item>
      <title>Spark原理-JOIN</title>
      <link>https://code0xff.org/post/2024/05/spark_join/</link>
      <pubDate>Sat, 27 Apr 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/05/spark_join/</guid>
      <description>join的语法定义，join类型，解析、优化过程，join选择策略：hint、等值、数据size，父hash join： streamedlter 和 buildlter，数据的节点分布，对子节点的要求，JoinedRow 类型；BroadcastHashJoin 和 BroadcastExchange； ShuffleHashJoin 和 ClusteredDistribution，先将数据物化再通过AQEShuffleRead 读取； Shuffle Sort Merge Join，Sort ，Exchange，SortMergeJoinScanner(ExternalAppendOnlyUnsafeRowArray）；BroadcastNestedLoopJoinExec ，BroadcastDistribution 等价两个for循环； CartesianProduct 对子节点无要求也是两个for循环; 排序算子执行过程</description>
    </item>
    <item>
      <title>Spark原理-窗口函数和多维分析</title>
      <link>https://code0xff.org/post/2024/05/spark_windows_cube/</link>
      <pubDate>Sat, 27 Apr 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/05/spark_windows_cube/</guid>
      <description>cube，rollup，grouping set，窗口函数执行过程，lateral，pivot，unpivot，with cube 的代码生成</description>
    </item>
    <item>
      <title>Spark原理-聚合</title>
      <link>https://code0xff.org/post/2024/04/spark_agg/</link>
      <pubDate>Fri, 19 Apr 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/04/spark_agg/</guid>
      <description>聚合的基本原理，聚合方式的分类：Partial、ParitialMerge、Final、Complete；distinct 和 非 distinct聚合；DeclarativeAggregate、ImperativeAggregate，聚合迭代器；基于排序的聚合，自定义函数 V1 和 V2 实现，自定义的 classloader，V2方式的自定义聚合函数，ObjectHashAggregate，基于hash 的聚合；自定义函数下推：标量函数下推、聚合函数下推；基于Hash 的聚会</description>
    </item>
    <item>
      <title>Trino架构</title>
      <link>https://code0xff.org/post/2024/04/trino_architecture/</link>
      <pubDate>Sun, 07 Apr 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/04/trino_architecture/</guid>
      <description>三种角色：discovery、coordinate、worker；连接器的设计：Metadata SPI、Data Statistics SPI、Data Location SPI、Data Stream SPI；查询计划，物理计划和调度，Stage，split，page，driver；Dynamic filtering，Spill to disk，Table statistics，JOIN 策略，CBO，join order，Join pushdown</description>
    </item>
    <item>
      <title>简单的排列组合问题</title>
      <link>https://code0xff.org/post/2024/03/permutation/</link>
      <pubDate>Fri, 15 Mar 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/03/permutation/</guid>
      <description>一些概率问题</description>
    </item>
    <item>
      <title>Spark原理-物理计划&amp;聚合</title>
      <link>https://code0xff.org/post/2024/03/spark_plan_agg/</link>
      <pubDate>Wed, 13 Mar 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/03/spark_plan_agg/</guid>
      <description>Spark物理计划-聚合</description>
    </item>
    <item>
      <title>Spark原理-优化规则</title>
      <link>https://code0xff.org/post/2024/03/spark_optimized/</link>
      <pubDate>Mon, 04 Mar 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/03/spark_optimized/</guid>
      <description>子查询优化：查询合并、展开，一行一列，单行多列，多行单列，多行多列，转换为 exist，子查询上提转join，子查询重写(转为semi/anti join）；算子合并：CollapseRepartition、CollapseProject、CombineFilters、CombineUnions；常量折叠和强度消减：NullPropagation&#xA;、ConstantPropagation、OptimizeIn、ConstantFolding、ReplaceNullWithFalseInPredicate、CombineConcats；算子简化：&#xA;LikeSimplification、BooleanSimplification、SimplifyBinaryComparison、PruneFilters、EliminateSerialization、SimplifyExtractValueOps； Rewrite/Replace/Eliminate规则：EliminateOuterJoin、EliminateDistinct、EliminateLimits； 下推规则：PushDownPredicates、PushPredicateThroughNonJoin、PushPredicateThroughJoin、LimitPushDown、ColumnPruning</description>
    </item>
    <item>
      <title>Spark原理：逻辑计划解析、扩展点、catalog等</title>
      <link>https://code0xff.org/post/2024/03/spark_internal/</link>
      <pubDate>Sat, 02 Mar 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/03/spark_internal/</guid>
      <description>逻辑计划扩展，注入点。TreeNode的两个子类：Expression，QueryPlan。而&#x9;QueryPlan。而QueryPlan的子类是：LogicalPlan、SparkPlan。并将规则分为Batch。 CatalogV2Util#loadTable会解析：库、表、列信息，ResolveReferences。内置的一堆优化规则。查询下推、join下推。SPark的catalog体系，主要拷贝各种SupportRead、Wirte、Dialect，各种数据源的Catalog扩展如HiveCatalog。SessionCatalog 会使用hive 的meta-store走老的catalog路线。自定义函数下推，继承UnboundFunction、ScalarFunction、AggregateFunction，使用Spark的线程上下文classloader 机制加载类，也是用 新Catalog扩展如MyCatalog去执行loadFunction、functionExists</description>
    </item>
    <item>
      <title>Apache Iceberg中的压缩</title>
      <link>https://code0xff.org/post/2024/03/compaction-_in_apache_iceberg/</link>
      <pubDate>Thu, 29 Feb 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/03/compaction-_in_apache_iceberg/</guid>
      <description>压缩，可以将多个小文件合并为大文件提高读性能，几种压缩策略：binpack（简单合并）、sort、z-order（适合多列查询），Expire Snapshots 可以删除过期的数据文件，还提供了参数可以自动删除manifest 文件、保留多少manifest文件，以及清除orphan 文件</description>
    </item>
    <item>
      <title>Copy-On-Write vs Merge-On-Read in Apache Iceberg</title>
      <link>https://code0xff.org/post/2024/03/cow_mor_iceberg/</link>
      <pubDate>Wed, 28 Feb 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/03/cow_mor_iceberg/</guid>
      <description>Copy-On-Write适用的场景和优缺点，Merge-On-Read的 position deletes、equality deletes 原理，以及适用的场景，优缺点，如何选择COW和MOR，以及如何配置他们</description>
    </item>
    <item>
      <title>Apache Iceberg Tables 的读写和查询管理</title>
      <link>https://code0xff.org/post/2024/03/the_life_of_iceberg/</link>
      <pubDate>Mon, 26 Feb 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/03/the_life_of_iceberg/</guid>
      <description>介绍了存储的结构，元数据层包括：manifest files、manifest list, metadata files，catalog指向最新的 metadata files；每一层都可以做裁减，包括数据层，介绍了读取、time travel过程，是自上往下的读取和裁减过程；写入过程：插入、删除、merge过程，写 过程是自下而上的，通过 切换catalog指向，利用OCC控制并发，实现ACID</description>
    </item>
    <item>
      <title>Iceberg 简单总结</title>
      <link>https://code0xff.org/post/2024/02/icer_berg/</link>
      <pubDate>Sun, 25 Feb 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/02/icer_berg/</guid>
      <description>branch 和 tag，schema、partition、sort order演化，快照的维护（合并，删除孤儿文件等），manifest list 和 manifest files 两级布局；Hive的问题以及iceberg的优化：list是O(1)的，细粒度的partition，OCC，并发冲突，单节点的plan；Hidden partitioning，Time travelVersion rollback。支持：Spark、Flink、Hive、Trino、ClickHouse、Presto、Dremio、starrocks、Athena、EMR、Impala、Dori</description>
    </item>
    <item>
      <title>数据摄取：工具选择策略</title>
      <link>https://code0xff.org/post/2024/02/data_ingestion_tool-selection-strategy/</link>
      <pubDate>Mon, 19 Feb 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/02/data_ingestion_tool-selection-strategy/</guid>
      <description>Data Ingestion: Tool Selection Strategy，1、工具选择标准：策略标准、定价标准、数据功能、数据源/目标、数据契约； 工具偏好：批加载、CDC、连接器、基于代码； 3、摄取工具选择策略</description>
    </item>
    <item>
      <title>YARN 简单总结</title>
      <link>https://code0xff.org/post/2024/03/yarn_summary/</link>
      <pubDate>Sun, 11 Feb 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/03/yarn_summary/</guid>
      <description>YARN 的简单使用总结</description>
    </item>
    <item>
      <title>数据开发工程师的工作内容（meta）</title>
      <link>https://code0xff.org/post/2024/02/data-engineering-at-meta/</link>
      <pubDate>Fri, 02 Feb 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/02/data-engineering-at-meta/</guid>
      <description>Data engineering at Meta，High-Level Overview of the internal tech stack</description>
    </item>
    <item>
      <title>数据摄取：架构和模式</title>
      <link>https://code0xff.org/post/2024/01/data_ingestion_architectural_patterns/</link>
      <pubDate>Mon, 15 Jan 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/01/data_ingestion_architectural_patterns/</guid>
      <description>Data Ingestion: Architectural Patterns，data ingestion 的几种架构：Unified Data Repository、Data Virtualization、ETL、ELT、Stream Processing</description>
    </item>
    <item>
      <title>关于 HMS 的原理和一些优化</title>
      <link>https://code0xff.org/post/2024/01/hms/</link>
      <pubDate>Sun, 14 Jan 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/01/hms/</guid>
      <description>Hive MetaStore的实现原理，Hive Thrift 客户端和服务端的实现，MetaCat对 HMS 的兼容以及优化，Spark调用 HMS 的逻辑</description>
    </item>
    <item>
      <title>分析和比较几种 LakeHouse 存储系统</title>
      <link>https://code0xff.org/post/2024/01/lakehouse_storage_systems/</link>
      <pubDate>Wed, 10 Jan 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/01/lakehouse_storage_systems/</guid>
      <description>《Analyzing and Comparing Lakehouse Storage Systems》讨论了 LakeHouse 系统设计的难点，在不可变高延迟的对象存储之上，增加事务特性，三大系统都使用了OCC做隔离，事务实现都用了MVCC，源数据库管理delta和hudi用了表格式，iceberg用了层次存储(单节点处理)，数据更新三者都支持CoW(适合读多写少场景)，hudi和iceberg支持MoR(适合写多的场景)</description>
    </item>
    <item>
      <title>系统调优</title>
      <link>https://code0xff.org/post/2024/01/system_tuning/</link>
      <pubDate>Sun, 07 Jan 2024 08:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/01/system_tuning/</guid>
      <description>一些系统调优的排查工具汇总</description>
    </item>
    <item>
      <title>Doris Advanced</title>
      <link>https://code0xff.org/post/2024/01/doris_advanced/</link>
      <pubDate>Fri, 05 Jan 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/01/doris_advanced/</guid>
      <description>Pipeline Execution Engine, Nereids-the Brand New Planner, High-Concurrency Point Query, Materialized View, Statistics, Join Optimization.  Multi-catalog, Spark Doris Connector, Other Connector, Plugin Development Manual, CloudCanal Data Import, DBT Doris Adapter, UDF, cluster management, Data Admin, Other Manager, Maintenance and Monitor, Metadata Operations and Maintenance</description>
    </item>
    <item>
      <title>Doris Basic</title>
      <link>https://code0xff.org/post/2024/01/doris/</link>
      <pubDate>Fri, 05 Jan 2024 09:08:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2024/01/doris/</guid>
      <description>Introduce Doris,include: Data Model(Aggregate Model,Unique Model,Duplicate Model), Data Partition(Rollup),Index(Inverted Index,BloomFilter Index,NGram BloomFilter Index,Bitmap Index). Import Scenes,Import Way(Broker Load,Routine Load,Spark Load,Stream Load,MySql Load,S3 Load,Insert Into,Importing Data in JSON Format,Min Load Replica Num),Export,Update and Delete</description>
    </item>
    <item>
      <title>难忘的时刻(2023年)</title>
      <link>https://code0xff.org/post/2023/12/%E9%9A%BE%E5%BF%98%E7%9A%84%E7%9E%AC%E9%97%B4/</link>
      <pubDate>Sun, 31 Dec 2023 08:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/12/%E9%9A%BE%E5%BF%98%E7%9A%84%E7%9E%AC%E9%97%B4/</guid>
      <description>2023年的最后一天，记录一下那些难忘的时刻</description>
    </item>
    <item>
      <title>网易对Impala的一些使用</title>
      <link>https://code0xff.org/post/2023/12/impala_in_netease/</link>
      <pubDate>Sat, 09 Dec 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/12/impala_in_netease/</guid>
      <description>Impala在网易的一些使用，包括元数据同步增强、基于ZK的高可用、支持更多的后端、HBO和查询持久化、K8S部署、物化视图、虚拟数仓、完善的监控和报警系统</description>
    </item>
    <item>
      <title>Impala Tuning Summary</title>
      <link>https://code0xff.org/post/2023/12/impala_tuning/</link>
      <pubDate>Fri, 01 Dec 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/12/impala_tuning/</guid>
      <description>Impala Tuning, Architecture. tunning: join,statistics,cache,coordinators,web ui. admission control,administration configuration,security. SQL Statements and Data Type, built-in functions,udf, explain commands, file formats, Supported table and storage</description>
    </item>
    <item>
      <title>大数据的历史</title>
      <link>https://code0xff.org/post/2023/11/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%8E%86%E5%8F%B2/</link>
      <pubDate>Sun, 19 Nov 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/11/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%8E%86%E5%8F%B2/</guid>
      <description>从谷歌的三篇论文到Hadoop的诞生，再是各种开源产品依次出现，Hive对MapReduce的易用性改进，三大Hadoop 供应商，谷歌新三篇论文诞生了交互式查询（三大供应商推出）以及各种开源存储格式，Spark的出现和各种流处理系统，Netflix也证明了云的强大，流批一体以及各种分布式调度系统，基于云的数仓产品出现，HDFS替换上云、容器化出现、全托管数仓Modern Data Stack、深度学习对Hadoop的影响，三大供应商被收购，三大开放表格存储的出现，几个元数据管理产品，几个新的调度框架，LakeHouse的出现以及相关类似云产品</description>
    </item>
    <item>
      <title>TPCx-HS优化总结</title>
      <link>https://code0xff.org/post/2023/11/tpcx-hs%E4%BC%98%E5%8C%96%E6%80%BB%E7%BB%93/</link>
      <pubDate>Thu, 09 Nov 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/11/tpcx-hs%E4%BC%98%E5%8C%96%E6%80%BB%E7%BB%93/</guid>
      <description>TPCx-HS优化总结</description>
    </item>
    <item>
      <title>C&#43;&#43;模版的一些记录</title>
      <link>https://code0xff.org/post/2023/10/c&#43;&#43;%E6%A8%A1%E7%89%88%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AE%B0%E5%BD%95/</link>
      <pubDate>Sun, 29 Oct 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/10/c&#43;&#43;%E6%A8%A1%E7%89%88%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AE%B0%E5%BD%95/</guid>
      <description>C++模板的一些记录</description>
    </item>
    <item>
      <title>热带城市-西双版纳</title>
      <link>https://code0xff.org/post/2023/10/%E7%83%AD%E5%B8%A6%E5%9F%8E%E5%B8%82-%E8%A5%BF%E5%8F%8C%E7%89%88%E7%BA%B3/</link>
      <pubDate>Sat, 07 Oct 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/10/%E7%83%AD%E5%B8%A6%E5%9F%8E%E5%B8%82-%E8%A5%BF%E5%8F%8C%E7%89%88%E7%BA%B3/</guid>
      <description>西双版纳游记，去了北线：曼掌村、原始森林公园、野象谷；东线：曼远村、中科院植物园、傣族园；市内的：江边夜市、星光夜市、曼听公园、总佛寺、勐腊旅游文化区、般若寺、六国水上市场</description>
    </item>
    <item>
      <title>Gluten源码结构</title>
      <link>https://code0xff.org/post/2023/09/gluten%E6%BA%90%E7%A0%81%E7%BB%93%E6%9E%84/</link>
      <pubDate>Sun, 24 Sep 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/09/gluten%E6%BA%90%E7%A0%81%E7%BB%93%E6%9E%84/</guid>
      <description>Spark向量化扩展 gluten 源码结构分析</description>
    </item>
    <item>
      <title>左值右值</title>
      <link>https://code0xff.org/post/2023/09/lvalue_rvalue/</link>
      <pubDate>Sun, 17 Sep 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/09/lvalue_rvalue/</guid>
      <description>左值、右值、移动语义，std::move, std::forward 等一些基本概念</description>
    </item>
    <item>
      <title>xsimd</title>
      <link>https://code0xff.org/post/2023/09/xsimd/</link>
      <pubDate>Sat, 09 Sep 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/09/xsimd/</guid>
      <description>xsimd 介绍</description>
    </item>
    <item>
      <title>Ambari架构</title>
      <link>https://code0xff.org/post/2023/09/ambari/</link>
      <pubDate>Sat, 02 Sep 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/09/ambari/</guid>
      <description>介绍 Ambari 的基本功能，依赖的其他开源组件，主要模块 Ambari-Server、Agent、web、metrics 的介绍</description>
    </item>
    <item>
      <title>Gluten和相关依赖</title>
      <link>https://code0xff.org/post/2023/08/gluten%E5%92%8C%E7%9B%B8%E5%85%B3%E4%BE%9D%E8%B5%96/</link>
      <pubDate>Sun, 27 Aug 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/08/gluten%E5%92%8C%E7%9B%B8%E5%85%B3%E4%BE%9D%E8%B5%96/</guid>
      <description>对Spark性能增加的一个方案，将处理密集型数据部分的逻辑，由 JVM 交给 C++处理，Gluten只是一个胶水层，本身不做太多的事情，它将Spark的物理计划转为Substrait计划，然后序列化再转发给底层的向量化引擎，如Velox、ClickHouse等。对于不支持的算子会交给原生Spark处理，这种思路跟Databricks 发表的论文Photon是很类似的</description>
    </item>
    <item>
      <title>大数据采集</title>
      <link>https://code0xff.org/post/2023/07/%E6%95%B0%E6%8D%AE%E9%87%87%E9%9B%86/</link>
      <pubDate>Sun, 23 Jul 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/07/%E6%95%B0%E6%8D%AE%E9%87%87%E9%9B%86/</guid>
      <description>总结一下大数据采集框架：Flumen、Fluentd、Sqoop、Datax、SeaTunel</description>
    </item>
    <item>
      <title>JVM GC 介绍</title>
      <link>https://code0xff.org/post/2023/07/jvm-gc/</link>
      <pubDate>Sat, 22 Jul 2023 09:13:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/07/jvm-gc/</guid>
      <description>基于分带的几款老 GC，Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS，以及新一代基于region划分的 G1、ZGC、ShenandoahGC，以及用于测试环境的 Epsilon，一共 10 款 GC</description>
    </item>
    <item>
      <title>Presto在各大公司的应用</title>
      <link>https://code0xff.org/post/2023/07/presto%E5%9C%A8%E5%90%84%E5%A4%A7%E5%85%AC%E5%8F%B8%E7%9A%84%E5%BA%94%E7%94%A8/</link>
      <pubDate>Wed, 12 Jul 2023 09:11:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/07/presto%E5%9C%A8%E5%90%84%E5%A4%A7%E5%85%AC%E5%8F%B8%E7%9A%84%E5%BA%94%E7%94%A8/</guid>
      <description>Presto在 B站、字节跳动等 各大公司的应用</description>
    </item>
    <item>
      <title>Spark性能调优</title>
      <link>https://code0xff.org/post/2023/06/spark_tuning/</link>
      <pubDate>Fri, 30 Jun 2023 11:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/06/spark_tuning/</guid>
      <description>Spark性能调优</description>
    </item>
    <item>
      <title>BitWeaving: Fast Scans for Main Memory Data Processing</title>
      <link>https://code0xff.org/post/2023/06/bitweaving/</link>
      <pubDate>Thu, 01 Jun 2023 09:11:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/06/bitweaving/</guid>
      <description>基于主内存数据库的 scan 优化，提出的技术：BitWeaving，又分为两种：BitWeaving/V 和 BitWeaving/H；BW/H 相当于是bit 级别的水平分布，将列的数据水平的分布到不同segment 中，通过亦或、以及各种位运算技术，实现了 =、!=、&amp;lt;、&amp;lt;= 的比较操作，比较完之后，每个process word 分隔符bit就会被设置为 1 或者0，然后将上下四组分别做不同的位移在 or，就能得到最终结果；BW/V 实现bit 级别的列存储，一列数据将每个数据的第一个bit存到 process word v1中，第二列存到 v2中，按照这种分布就可以实现早期裁剪，SIMD 再进一步优化，他的scan很快，但是查找需要跨多个processor word，相当于是垂直的从左往右计算，性能会 BW/H要差；而对于 VBP，其真实数据布局可以再优化，比如原先 9个processor word 一个segment，变成一个segment 3个 bit group，每个bit group 3个 processor word，这样做 cut-off的时候可以不用再加载斗鱼的processor word，节省了内存带宽，减少cache miss；从性能对比看，BW 技术在scan方面是最好的，SIMD有打包和对其开销所以效果远不如 BW，而BW 存在选择 BW/V 和 BW/H 布局的问题，也是待研究的问题</description>
    </item>
    <item>
      <title>Cache Conscious Indexing for Decision-Support in Main Memory</title>
      <link>https://code0xff.org/post/2023/05/cache_conscious/</link>
      <pubDate>Sun, 28 May 2023 09:11:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/cache_conscious/</guid>
      <description>对于主内存 OLAP 场景，提出的针对 cache有效性的优化，如果排序数组远大于 cache line，则二分查找的 cache miss 是很严重的，基本每查找一次就有一次cache miss；T树 看起来是缓存友好的，但每次查找只有 min、max做了匹配，仍然会有很大的 cache miss，B 树虽然是面向磁盘的，但有多个子节点，一次可以做多个匹配，所以cache miss 比 T 树更好一些，hash index需要占用大量空间，当然二分的好处是不用空间；在这些基础上论文提出了针对cache line的 CSS树(Cache Sensitive Search Trees)，他在排序数组基础上，增加了一个字典数组，使得整个树可以被平铺，有点像 树堆，不过它的节点有多个，个数一般跟 cache line有关，它没有子节点指针，而是用数组下标来代替，这样一个 node 内可以放更多的数据，查找起来的cache miss就会小很多；值得注意的是类似满二叉树，CSS树的字典指向的排序数组其 part-1、part-2整合跟正常排序数组是相反的；从测试结果看CSS 树的表现也不错，随着CPU和内存差距越来越大，CSS树可能会变现的更好</description>
    </item>
    <item>
      <title>Column Imprints: A Secondary Index Structure</title>
      <link>https://code0xff.org/post/2023/05/column_imprints/</link>
      <pubDate>Fri, 26 May 2023 18:11:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/column_imprints/</guid>
      <description>针对主内存数据库，提出了一种轻量级二级索引技术：imprints column，它是属于bit 向量索引家族的，zone map对于随机值正好落在min、max内的查询就无效了，仍然需要扫描，而 bit map占用的空间更大，imprint 则综合了这两者的优点，它是基于cache line做bit向量分组的，对CPU更友好，而且将一个cache line内的值统一合并为一个bit向量，占用空间更小；通过 counter 和 repeat标志位，可以实现imprint 的压缩，论文中给出了相关的压缩、查询算法，由于是针对读场景的设计，更新主要是append和索引重建；通过实验对比，imprint 对于数据分布随机和有规律的场景，表现的都很好，索引压缩效果不错，压缩后的索引占比看 imprint最少，zonemap也差不多，WAH最高；查询性能看，三个索引基本差不多，imprint略好一些，时间上imprint也略块一些，但随着选择率上升几个都趋同；总体看随选择率上升也跟scan 差不多，但是对于熵低/高的场景表现都比较稳定</description>
    </item>
    <item>
      <title>SqlServer的列存索引</title>
      <link>https://code0xff.org/post/2023/05/sql_server_column_store_indexes/</link>
      <pubDate>Wed, 24 May 2023 18:11:07 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/sql_server_column_store_indexes/</guid>
      <description>《SQL Server Column Store Indexes》：SQL Server 11代 Denali，在行存系统上增加了列存和索引结构，这些改动并不是重新来一套，而是基于现有技术的改进，如对行做了分片segment，每个 row segment 再根据 column 进一步细分为 column segment；column segment本身是现有的 blob存储，同时还利用了压缩技术，基于 column segment 又开发出了 segment directory，这个 directory包含了一些元信息如行数量、size、多少数据被编码了、min和max等，这些改动之后，还可以跟现有的lock、log、recovery、patition、mirror、replication完全兼容整合；之后查询引擎部分也会做一些改动来兼容行、列数据，这里使用了多核、bitmap filter、算子间的内存共享、SIMD等进一步优化，根据代价模型评估，选择合适的索引，测试TPC-DS时，前面大部分数据都是批的方式处理的，而且做了并行化，只有最后的聚合、重分区是用 行模式处理的，最后效率大幅度提升</description>
    </item>
    <item>
      <title>Bitmap Index Design and Evaluation
</title>
      <link>https://code0xff.org/post/2023/05/bitmap_index/</link>
      <pubDate>Mon, 22 May 2023 09:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/bitmap_index/</guid>
      <description>针对 bitmap 索引提出的一系列指导设计建议，传统方式对于带谓词的查询，一般是：全表scan、B树 索引、每个谓词做scan然后merge；使用 bitmap 后采用第三种方案效果最好，论文中提出了四种时空权衡：空间最优、时间最优、基于空间限制下的时间最优、时空权衡；&#xA;在大量数、数据基础范围较小的情况下使用 bitmap 索引效果很好，而 bitmap 可以采用 基于范围的、基于等值的；基于范围的相当于 Value-List set，在这种场景下继续拆分，如基于&amp;lt;3,3&amp;gt;的Value-List，其空间比原始的更小；论文中提出了对 Algorithm RangeEval 改进的 Algorithm RangeEval-Opt 算法，需要处理的谓词更少，只需一次扫描；论文指出 范围编码的时空权衡效果更好，之后又对比了压缩的情况，buffer的增大，对于时空权衡也有帮助</description>
    </item>
    <item>
      <title>深入数据库系统: History of Databases</title>
      <link>https://code0xff.org/post/2023/05/advanced_database_systems-history_of_databases/</link>
      <pubDate>Sun, 21 May 2023 09:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/advanced_database_systems-history_of_databases/</guid>
      <description>数据库的发展历史，从复杂模型：网络模型、层次模型，再到简单的关系模型最后胜出，关系模型不止是简单，而且提出了物理、逻辑解耦、高层级别API；所以从1970年代开始，数据库的基本模型，发展方向是定了；后面出现了各种对关系模型的补充，但是大多数只是重复发明，除了code in database，schema last是比较新颖的发明；在这几十年内，商业数据库一直是主导，IBM、Oracle、微软一直是领导者；直到2000年互联网的出现打破了这个局面，数据库面临大量的访问，需要购买大量商业数据库成本太贵，此时开源产品就是更好的选择；同时也出现了各种对关系模型，他们的扩展性、性能都非常好，但他们不支持SQL、不支持事务，十年之后再看这些数据库多多少少都有一些局限性，于是分布式的NewSQL出现，加上云厂商的对象存储，云上数据库也成为主流；现在数据库有很多细分市场，每个主题内都有好几个玩家，这些数据库在巩固自己领地的同时，又在不断扩展自己的能力；他们开始支持SQL，增加事务，从历史角度看，声明式语言、解耦、简单模型一直是有生命力的</description>
    </item>
    <item>
      <title>Column Sketches: A Scan Accelerator for Rapid and Robust Predicate Evaluation</title>
      <link>https://code0xff.org/post/2023/05/column_sketches/</link>
      <pubDate>Wed, 17 May 2023 09:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/column_sketches/</guid>
      <description>B数索引 对于选择率低时效果很好、但选择率一旦上升性能就不行了；轻量级索引 Zone Map、Column Imprints、Feature Based Data Skipping对数据聚集性有要求；早期裁剪 ByteSlicing、Bit-Slicing、Approximate and Refine 在数据倾斜情况下，高位可能都是重复的效果不好。Column Sketches使用直方图统计列数据分布，同时考虑了频繁值和普通值，之后建立映射函数，将频繁值映射成唯一code，非频繁值均匀分布，通过这种映射之后，数值类型的 原先 8bit 的值，映射完只需要 2bit 就可以表示了，对于频繁唯一值也不需要回表检查进一步加速；对于分类型也是类似方式，只是不需要排序，可以直接映射。对比其他方案，Column Sketches在选择率高/低，L1 miss，tuple处理速度，数据倾斜，鲁棒性，数据加载上都很不错；Column Sketches还可以利用 SIMD加速scan，可以跟现有技术做整合</description>
    </item>
    <item>
      <title>资源隔离修改配置动态加载</title>
      <link>https://code0xff.org/post/2023/06/%E8%B5%84%E6%BA%90%E9%9A%94%E7%A6%BB%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BD/</link>
      <pubDate>Sun, 14 May 2023 11:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/06/%E8%B5%84%E6%BA%90%E9%9A%94%E7%A6%BB%E4%BF%AE%E6%94%B9%E9%85%8D%E7%BD%AE%E5%8A%A8%E6%80%81%E5%8A%A0%E8%BD%BD/</guid>
      <description>在资源隔离大功能的基础上，实现动态加载配置修改功能，当用户 alter 了资源配置表，会动态生效</description>
    </item>
    <item>
      <title>资源隔离设计</title>
      <link>https://code0xff.org/post/2023/06/%E8%B5%84%E6%BA%90%E9%9A%94%E7%A6%BB%E8%AE%BE%E8%AE%A1/</link>
      <pubDate>Sat, 13 May 2023 11:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/06/%E8%B5%84%E6%BA%90%E9%9A%94%E7%A6%BB%E8%AE%BE%E8%AE%A1/</guid>
      <description>基于高可用的两层调度方式，配合 k8s 实现一套资源隔离机制，并实现自定义的语法</description>
    </item>
    <item>
      <title>Optimal Column Layout for Hybrid Workloads</title>
      <link>https://code0xff.org/post/2023/05/optimal_column_layout_for_hybrid_workloads/</link>
      <pubDate>Sat, 13 May 2023 09:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/optimal_column_layout_for_hybrid_workloads/</guid>
      <description>基于 HTAP 场景的列布局优化，仍然使用列布局，但是对列做水平分区，一个分区内包含多个 block，每个block 的大小是 CPU cache 的数倍，这样更好利用CPU；每个分区根据是否为边界(0 或 1 表示)，输出为一堆的 bit范围，这是一个 NP hard问题，也有相关研究可以解决此问题；工作负载包括：点查询、范围查询、插入、删除、更新；每种场景对应底层 I/O 包括 随机读、随机写、顺序读、顺序写，不同场景对于 block的访问频率也是不同的，论文给出了 10 种统计的直方图；之后收集各种负载的 block 访问情况然后离线分析，再将分析后的结果优化，输出为一堆bit，这样就可以动态调整分区，达到了自适应的效果；从性能分析结果看，可以适用于各种场景，除了读基本不变，其他场景都有大幅度提升，同时吞吐量也保持不变</description>
    </item>
    <item>
      <title>镜像合并&amp;配置文件同步</title>
      <link>https://code0xff.org/post/2023/06/%E9%95%9C%E5%83%8F%E5%90%88%E5%B9%B6%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%90%8C%E6%AD%A5/</link>
      <pubDate>Fri, 12 May 2023 11:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/06/%E9%95%9C%E5%83%8F%E5%90%88%E5%B9%B6%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E5%90%8C%E6%AD%A5/</guid>
      <description>将业务镜像和底层基础镜像合并，去掉spark的k8s模板配置文件，通过init容器 + env + volumn方式实现</description>
    </item>
    <item>
      <title>列存 vs 行存，到底有什么不同？</title>
      <link>https://code0xff.org/post/2023/05/column-stores_vs_row-stores_how_different_are_they_really/</link>
      <pubDate>Sun, 07 May 2023 13:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/column-stores_vs_row-stores_how_different_are_they_really/</guid>
      <description>《Column-Stores vs. Row-Stores: How Different Are They Really?》论文中通过行存系统来模拟列存，并将几个可能提升的关键点：延迟物化、块迭代、压缩、invisible-join，挨个拆分，并分析每种可能提升的原因和提升比例‘在行存的系统中使用垂直分区依然达不到列存性能，因为垂直分区后需要冗余存储主键，重建这些tuple 需要hash-join，数量大内存CPU开销也大；全索引如果返回的数据多hash-join压力大可能会更慢，反之可能更快；物化视图最好只需要读取部分数据，bitmap选择率高时效率会变差。对于列存：块迭代可以提升5% - 50%性能(取决于压缩)、invisible-join可以提升50% - 70%、压缩为2倍，如果数据有序可以量级提升、延迟物化提升3倍，如果将这些全部去掉，列存跟行存就差不多了；在列存中使用反规范化大宽表效果不好，增加维度表列冗余数据变多、只有大宽表的维度属性是排序高度压缩的才有效</description>
    </item>
    <item>
      <title>Lakehouse A New Generation of Open Platforms that Unify
Data Warehousing and Advanced Analytics</title>
      <link>https://code0xff.org/post/2023/05/lakehouse-a-new-generation-of-open-platforms-that-unify/</link>
      <pubDate>Sat, 06 May 2023 12:17:11 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/lakehouse-a-new-generation-of-open-platforms-that-unify/</guid>
      <description>第一代的数仓有很好的数据治理，缺点是计算存储耦合，且无法存储半结构数据；第二代的数据湖将计算存储分离，且能存储各种格式，云厂商推出的对象存储本质是差不多，不过扩展和可靠性更高更便宜，但二代需要两套系统，数据要在数仓和对象存储之间做ETL，有很多问题；而LakeHouse则试图解决这些问题，通过在对象存储之上增加元数据管理，实现事务功能，数据质量、ACID都实现了，因为是基于开放的格式，不会锁定厂商，也能支持各种场景。因为开放的格式和对象存储的延迟问题，性能和每秒事务不会很好，通过缓存系统、辅助数据结构、数据布局优化来优化性能，另外DataFream 支持SQL和 API，可以延迟处理这样可以进一步优化。目前的限制：S3的延迟、单表事务、servless；通过TPC-DS对比其他云厂商的数仓，性能和价格都很不错，还能支持传统场景，机器学习、科学分析等各种复杂场景。</description>
    </item>
    <item>
      <title>基于存算分离下的Elastic Query Engine</title>
      <link>https://code0xff.org/post/2023/05/building-an-elastic-query-engine-on-disaggregated-storage/</link>
      <pubDate>Thu, 04 May 2023 09:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/building-an-elastic-query-engine-on-disaggregated-storage/</guid>
      <description>SnowFlake的一篇论文《Building An Elastic Query Engine on Disaggregated Storage》，目前的架构包含四层：中心化的服务处理端到端的查询、计算层、临时存储层、对象存储层，并讨论了设计临时存储这一层的原因，通过访问数据指标能发现，临时存储的需求变化很大，跟计算层，远端持久存储层都不同。为更好的提高利用率需要计算层跟 临时存储层解耦。调度方面包括：工作窃取、延迟的一致性hash。由于云厂商的计费方式支持到秒级别，原先的预热VM 方式不好使了需要采用共享资源的方式来支持多租户，带来的挑战是，重新设计临时存储层(这层缓存了持久数据和中间数据，扩容会影响其他租户)，需要提供私有地址。三个开放问题：临时存和计算层解耦、内存-SSD-远端存储三层机制的有效管理、亚秒计费策略的共享资源架构挑战</description>
    </item>
    <item>
      <title>What Goes Around Comes Around</title>
      <link>https://code0xff.org/post/2023/05/what-goes-around-comes-around/</link>
      <pubDate>Wed, 03 May 2023 11:23:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/05/what-goes-around-comes-around/</guid>
      <description>Stonebraker的论文，介绍了 9个不同时代的数据模型；层次数据库IMS，以及网络数据库CODASYL，这两者都是逻辑数据、物理数据耦合，之后出现了关系模型，有了数据独立；再往后就是各种对关系模型的补充，如实体-关系模型、关系模型++、语义数据模型、OO模型、对象关系模型、半结构模型等；从中我们可以总结到：查询优化器很有用、技术的争论通常由市场和其他因素决定，简单模型比复制模型更容易实现数据独立、KISS 保持简单是很重要的、除非用户使用中出现很大问题否则他们不会买单、没有编程语言社区的支持想在语言上做改进突破很难、新技术的推广，需要标准化，或者大力度的推广、schema-last 可能只合适小部分场景</description>
    </item>
    <item>
      <title>LevelDB Mulit vesion and compaction</title>
      <link>https://code0xff.org/post/2023/04/levedb-%E5%A4%9A%E7%89%88%E6%9C%AC%E5%92%8C%E5%8E%8B%E7%BC%A9/</link>
      <pubDate>Fri, 14 Apr 2023 19:20:03 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/04/levedb-%E5%A4%9A%E7%89%88%E6%9C%AC%E5%92%8C%E5%8E%8B%E7%BC%A9/</guid>
      <description>LevelDB 多版本和压缩</description>
    </item>
    <item>
      <title>LevelDB Utils(内存分配、编码、LRU、bloom filter)</title>
      <link>https://code0xff.org/post/2023/04/levedb-%E5%B7%A5%E5%85%B7%E7%B1%BB/</link>
      <pubDate>Tue, 11 Apr 2023 09:20:01 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/04/levedb-%E5%B7%A5%E5%85%B7%E7%B1%BB/</guid>
      <description>LevelDB 的辅助工具类，如内存分配、编码、LRU、bloom filter等</description>
    </item>
    <item>
      <title>LevelDB SSTable </title>
      <link>https://code0xff.org/post/2023/04/levedb-sstable%E6%A8%A1%E5%9D%97/</link>
      <pubDate>Sun, 09 Apr 2023 09:22:11 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/04/levedb-sstable%E6%A8%A1%E5%9D%97/</guid>
      <description>LevelDB 的SSTable模块，存储在磁盘上的结构，包括文件格式的组织、数据文件块是如何读取的、索引文件块是如何组织的</description>
    </item>
    <item>
      <title>LevelDB MemTable </title>
      <link>https://code0xff.org/post/2023/04/levedb-memtable%E6%A8%A1%E5%9D%97/</link>
      <pubDate>Thu, 06 Apr 2023 11:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/04/levedb-memtable%E6%A8%A1%E5%9D%97/</guid>
      <description>LevelDB 的MemTable模块，底层使用 skip-list实现的，用来实现内存的读、写操作</description>
    </item>
    <item>
      <title>LevelDB Log module</title>
      <link>https://code0xff.org/post/2023/04/levedb-log%E6%A8%A1%E5%9D%97/</link>
      <pubDate>Mon, 03 Apr 2023 11:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/04/levedb-log%E6%A8%A1%E5%9D%97/</guid>
      <description>LevelDB 的Log模块，用来实现WAL</description>
    </item>
    <item>
      <title>LevelDB 公开的接口</title>
      <link>https://code0xff.org/post/2023/03/levedb-%E5%85%AC%E5%BC%80%E6%8E%A5%E5%8F%A3/</link>
      <pubDate>Thu, 30 Mar 2023 11:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/03/levedb-%E5%85%AC%E5%BC%80%E6%8E%A5%E5%8F%A3/</guid>
      <description>LevelDB 的 src/include目录下的公开接口、跨平台的移植(对文件读写、线程、锁做了简单封装方便了跨平台迁移)，读写流程的大致流程等</description>
    </item>
    <item>
      <title>LevelDB 基本概念</title>
      <link>https://code0xff.org/post/2023/03/levedb-%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</link>
      <pubDate>Mon, 27 Mar 2023 11:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/03/levedb-%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5/</guid>
      <description>LevelDB的架构，各个组件的基本原理，一些基本操作(open、增删改)，高级特性(options、自定义比较器)</description>
    </item>
    <item>
      <title>OceanBase开发者大会分享</title>
      <link>https://code0xff.org/post/2023/03/oceanbase%E5%BC%80%E5%8F%91%E8%80%85%E5%A4%A7%E4%BC%9A/</link>
      <pubDate>Sun, 26 Mar 2023 11:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/03/oceanbase%E5%BC%80%E5%8F%91%E8%80%85%E5%A4%A7%E4%BC%9A/</guid>
      <description>看了几位大佬的分享，总结一下</description>
    </item>
    <item>
      <title>bustub数据库</title>
      <link>https://code0xff.org/post/2023/03/bustub%E6%95%B0%E6%8D%AE%E5%BA%93/</link>
      <pubDate>Mon, 20 Mar 2023 14:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/03/bustub%E6%95%B0%E6%8D%AE%E5%BA%93/</guid>
      <description>卡耐基梅隆的bustub数据库，实验课程；包括：LRU-k实现、可扩展的hash表、B+的的增删改查、B+树的并发控制、各种SQL算子的执行和优化，并发处理</description>
    </item>
    <item>
      <title>CPU and Cache Efficient Management of Memory-Resident Databases</title>
      <link>https://code0xff.org/post/2023/02/cpu-and-cache-efficient-management-of-memory-resident-databases/</link>
      <pubDate>Wed, 08 Feb 2023 17:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/02/cpu-and-cache-efficient-management-of-memory-resident-databases/</guid>
      <description>CPU and Cache Efficient Management of Memory-Resident Databases</description>
    </item>
    <item>
      <title>Efficiently Compiling Efficient Query Plans for Modern Hardware</title>
      <link>https://code0xff.org/post/2023/02/efficiently-compiling-efficient-query-plans-for-modern-hardware/</link>
      <pubDate>Sun, 05 Feb 2023 17:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/02/efficiently-compiling-efficient-query-plans-for-modern-hardware/</guid>
      <description>这是HyPer的一篇论文(HyPer是由德国莫尼黑大学主导的OLAP、OLTP混合型主内存数据库)，介绍了code-gen的具体实现，最初HyPer的code-gen是生成了C++代码，然后使用gcc编译；但编译时间很长，再加上优化时间就更长了，甚至比查询执行时间还长；于是HyPer做了优化，改用LLVM，将code-gen的核心代码转为了LLVM的IR，这个IR是调用LLVM的API生成的，不是手写的所以相对容易一些，对于一些简单的操作是生成了LLVM，于是复杂的操作，如scan、join、sort需要将LLVM和C++混合执行，LLVM可以直接调用C++，所以不存在性能损失；通过最后执行来看，LLVM的code-gen从编译、优化时间，SQL执行时间，都比其他系统有很大提升</description>
    </item>
    <item>
      <title>Generating code for holistic query evaluation</title>
      <link>https://code0xff.org/post/2023/02/generating-code-for-holistic-query-evaluation/</link>
      <pubDate>Sat, 04 Feb 2023 07:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/02/generating-code-for-holistic-query-evaluation/</guid>
      <description>英国爱丁堡大学的一篇论文，从传统系统到现代系统的变化一个重要点是：内存增大很多，以前的I/O瓶颈对于现在来说不那么重要了，反而是CPU和内存瓶颈；而之前的火山模型对于CPU利用率来说很不好，大量的虚函数调用，多层级的函数调用增加了cache miss，也会产生更多的指令，不利于并行化和cache局部性；这篇论文提出了一个代码模板，通过识别不同的查询计划算子，来对应的生成不同的代码(对应一个大函数)，不同函数之间通过物化来连接，之后通过编译器GCC来编译这段C代码，还可以对代码最O2级别优化(但会增加运行期执行时间)来达到更好的效果，论文对比了join、sort、聚合，虽然使用的是NSM存储模型，但是执行效果来看跟MonetDB的DSM差不多了；代码生成的缺点是对于小查询会有额外的开销(编译、优化、link时间)</description>
    </item>
    <item>
      <title>Implementing Database Operations Using SIMD Instructions</title>
      <link>https://code0xff.org/post/2023/02/implementing-database-operations-using-simd-instructions/</link>
      <pubDate>Wed, 01 Feb 2023 07:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/02/implementing-database-operations-using-simd-instructions/</guid>
      <description>介绍了SIMD指令一些基本概念，并行流水线，以及分支预测失败带来的影响；论文中提到了使用SIMD指令的方式，以及不同平台产生的差异；之后用伪代码的方式描述几个数据库常用操作；scan操作详细对比了标量版和SIMD版的区别，以及如何消除分支的方式，还有返回选中的一个元素、多个元素的标量、SIMD方式；聚合的实现方式SIMD有提供相关的操作 SIMD_min、SIMD_max即可，对于索引部分主要是介绍树结构索引，详细讨论了中间节点、叶子节点的实现方式；在有序元素上使用二分效率是非常高的，但也会有分支预测失败问题，论文中给出了混合二分+顺序扫描方式；最后是join处理方式，这里只列出了nested-loop join的SIMD实现，Duplicate-outer、Duplicate-inner、Rotate-inner</description>
    </item>
    <item>
      <title>Rethinking SIMD Vectorization for In-Memory Databases</title>
      <link>https://code0xff.org/post/2023/01/rethinking-simd-vectorization-for-in-memory-databases/</link>
      <pubDate>Fri, 27 Jan 2023 10:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/rethinking-simd-vectorization-for-in-memory-databases/</guid>
      <description>这是Oracle联合哥伦比亚大学做的研究，论文中讨重点讨论了数据并行化(线程、指令、数据)，也就是SIMD实现；论文中给出了一些基本的SIMD操作，如selective sotre/load、gather、scatter，在论文发表的时候，这几个操作主流CPU不是全支持，只能通过一些模拟操作来支持，如permutation等；通过定义这四个最基本的操作，再往上就可以定义数据库查询中比较重要的操作了，如：scan、hash-table(horizontal、vertical、build、线性探测、double hash、cuckoo hash)、bloom filter、分区(radix、hash、range)；通过hash、分区等操作，又可以定义出排序、join等更复杂的操作，相当于是层层搭积木；测试结果SIMD会有大幅度性能提升，但也受到cache size的影响</description>
    </item>
    <item>
      <title>深入数据库系统: Query Execution &amp; Processing</title>
      <link>https://code0xff.org/post/2023/01/advanced-database-systems-query-execution-and-processing/</link>
      <pubDate>Sun, 22 Jan 2023 19:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/advanced-database-systems-query-execution-and-processing/</guid>
      <description>这一部分是属于 执行引擎组件，由于现代系统从I/O变为CPU瓶颈，CPU的指令依赖、分支预测就阻塞了并行优化；MonetDB/X100就指出了火山模型、物化模型的问题，后使用了向量化/批模型来优化，为后续系统提供了方向。查询处理又包括：自顶向下vs字底向上；并行化包括：水平(exchange算子)、垂直、以及混合；worker的分配还包括单核单线程、单核pool；列存重建使用早期物化+SIP达到了早期物化的简单，同时兼具性能；主内存系统中二级索引和scan都有用，但需要综合考虑：选择性；硬件参数、数据布局、并发，优化器也需要配合重构整合；Oracle首创的混合行+列存储，又进一步提供了表达式替换(本质上是语法树子节点替换)</description>
    </item>
    <item>
      <title>SIMD-Scan: Ultra Fast in-Memory Table Scan using onChip Vector Processing Units</title>
      <link>https://code0xff.org/post/2023/01/ultra-fast-in-memory-table-scan-using-onchip-vector-processing-units/</link>
      <pubDate>Thu, 19 Jan 2023 10:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/ultra-fast-in-memory-table-scan-using-onchip-vector-processing-units/</guid>
      <description>现代数据库由I/O瓶颈转向了CPU瓶颈，利用多核能力加速全表扫描，但是向量化的能力没能充分发挥。使用向量化包括：内嵌汇编、硬件厂商提供的跨平台库函数、编译器指示符、编译器自动优化，每种都是可用性和可控性之间的权衡。论文中引入了两项优化：使用SIMD方式在寄存器中解压 轻量压缩数据(使用concatenate、shift、shuffle、mark等指令完成)；使用SIMD完成等值和范围查找(使用掩码指令，将4个元素加载到寄存器中，再通过min、max比较范围，最后生成索引数组向量位)，通过测试结果都有大幅度提升，并且优化实现可以适用各种数据库</description>
    </item>
    <item>
      <title>Make the most out of your SIMD investments: counter control flow divergence in compiled query pipelines</title>
      <link>https://code0xff.org/post/2023/01/make-the-most-out-of-your-simd-investments/</link>
      <pubDate>Tue, 17 Jan 2023 06:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/make-the-most-out-of-your-simd-investments/</guid>
      <description>现代数据库很多都采用了向量化执行，也就是利用 SIMD 指令，SIMD指令在碰到分支时，会出现部分元素不满足条件，导致不活跃影响利用率吞吐量下降，论文中利用了 AVX512指令集的：mark指令、permute指令、compress、expand，来实现重填充算法和策略；包括：全消费策略(需增加寄存器，主要利用buffer)，以及部分消费策略(增加新寄存器，利用mark)，在能放入cache的场景中，这两种算法表现的都不错，是scalar的两倍，但对于复杂场景，以及cache放不下的场景则表现退化，另外如何设置 阈值也是一个开放问题</description>
    </item>
    <item>
      <title>Accelerating Analytics with Dynamic In-Memory Expressions</title>
      <link>https://code0xff.org/post/2023/01/accelerating-analytics-with-dynamic-in-memory-expressions/</link>
      <pubDate>Fri, 13 Jan 2023 14:05:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/accelerating-analytics-with-dynamic-in-memory-expressions/</guid>
      <description>Oracle12推出了混合行/列的存储格式，磁盘(buffer pool)中按列存储，内存中按列存储加速OLAP场景；而表达式求值在很多场景下是黑盒，不易监控、也占用资源，Oracle捕获了频繁使用的表达式，将表达式物化到内存中，然后在查询计划中，根据代价来改变查询计划，将原始的查询计划的子树，替换为内存中的物化表达式，在OLAP场景中大幅度提升性能，在混合OLTP场景中也非常有效</description>
    </item>
    <item>
      <title>Materialization Strategies in the Vertica Analytic Database: Lessons Learned</title>
      <link>https://code0xff.org/post/2023/01/materialization-strategies-in-the-vertica-analytic-database-lessons-learned/</link>
      <pubDate>Sat, 07 Jan 2023 20:05:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/materialization-strategies-in-the-vertica-analytic-database-lessons-learned/</guid>
      <description>列存数据库会通过物化的方式来重建tuple，包括早期物化EM、延迟物化LM，延迟物化的性能更好，但实现更难，当出现join溢出时会出现，此时会退回到早期物化；论文在早期物化基础上增加了：边信息传递SIP技术，并给出了实现细节，如何创建SIP，如何做push down；使用EM+SIP技术，比原始的EM性能大幅度提升，并且在很多场景下比延迟物化LM性能更好</description>
    </item>
    <item>
      <title>MonetDB/X100: Hyper-Pipelining Query Execution</title>
      <link>https://code0xff.org/post/2023/01/monetdbx100-hyper-pipelining-query-execution/</link>
      <pubDate>Thu, 05 Jan 2023 10:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/monetdbx100-hyper-pipelining-query-execution/</guid>
      <description>2005年的一篇论文，通过分析MySQL、MonetDB发现这两种没有达到硬件上的预期效果，MySQL是因为经典的火山模型导致编译器没法利用循环流水线，出现大量CPU等待；而MonetDB避免了上述情况但使用了物化，又导致大量的内存带宽拷贝；这篇论文结合了这两者的特点，选择了向量化的执行方式，并配合了合适的cache size，使得执行效率大幅度提升</description>
    </item>
    <item>
      <title>Access Path Selection in Main-Memory Optimized Data Systems Should I Scan or Should I Probe</title>
      <link>https://code0xff.org/post/2023/01/access-path-selection-in-main-memory-optimized-data-systems-should-i-scan-or-should-i-probe/</link>
      <pubDate>Tue, 03 Jan 2023 10:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/access-path-selection-in-main-memory-optimized-data-systems-should-i-scan-or-should-i-probe/</guid>
      <description>CMU Query Execution &amp;amp; Processing课程的一篇论文，现代分析系统中scan越来越重要，但二级索引依然有用，通过对比硬件参数、数据布局、压缩、并发等综合情况考虑之下，来选择：scan执行 或者index执行；通过性能评估发现，调节scan或者index并不是一个固定的值，而是根据不同的参数以及硬件情况，会动态变化的</description>
    </item>
    <item>
      <title>Photon A Fast Query Engine for Lakehouse Systems</title>
      <link>https://code0xff.org/post/2023/01/photon-a-fast-query-engine-for-lakehouse-systems/</link>
      <pubDate>Mon, 02 Jan 2023 10:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/photon-a-fast-query-engine-for-lakehouse-systems/</guid>
      <description>Databricks 2022年在SIGMOD上发表的论文(最佳工业论文奖)，由于I/O方面有很多优化措施，而JVM的对向量化支持较差，之后用C++实现了向量化的执行引擎Photon，来实现进一步的性能提升；首先是从最底层scan开始替换，因为中间替换的代价较高，之后不断往上，直到某个算子Photon不能适配，则由列存转换为Spark的行存，退回到Spark执行，总体看性能可以提升好几倍</description>
    </item>
    <item>
      <title>MySQL的并发</title>
      <link>https://code0xff.org/post/2023/01/mysql%E7%9A%84%E5%B9%B6%E5%8F%91/</link>
      <pubDate>Sun, 01 Jan 2023 08:15:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2023/01/mysql%E7%9A%84%E5%B9%B6%E5%8F%91/</guid>
      <description>MVCC的基本概念，读已提交、可重复读隔离级别下的ReadView，MVCC的purage；锁的基本类型，X/S/IX/IS锁；record lock、gap lock、next-key lock、insert intention lock、隐式锁；各种隔离级别下的加锁过程，SHOW ENGINE INNODB STATUS 分析加锁过程，死锁的分析</description>
    </item>
    <item>
      <title>MySQL的恢复</title>
      <link>https://code0xff.org/post/2022/12/mysql%E7%9A%84%E6%81%A2%E5%A4%8D/</link>
      <pubDate>Thu, 22 Dec 2022 08:15:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/12/mysql%E7%9A%84%E6%81%A2%E5%A4%8D/</guid>
      <description>redo log的格式(逻辑+物理混合格式)、Mini-Transaction、redo log写入过程，写入page cache，log_sys结构、redo log的文件格式，如何刷新到磁盘上的，checkpoint过程，恢复过程；   undo log的格式(逻辑格式)、undo log的组织、回滚段、系统表空间的5号page，多个回滚段、rollback的过程；以及源码中的redo log定义、undo log定义</description>
    </item>
    <item>
      <title>MySQL的缓存</title>
      <link>https://code0xff.org/post/2022/12/mysql%E7%9A%84%E7%BC%93%E5%AD%98/</link>
      <pubDate>Mon, 19 Dec 2022 08:15:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/12/mysql%E7%9A%84%E7%BC%93%E5%AD%98/</guid>
      <description>Buffer Pool、Doublewrite Buffer、Redo相关的Log Buffer，自适应Hash索引、change buffer、以及InnoDB相关的参数汇总</description>
    </item>
    <item>
      <title>MySQL查询分析</title>
      <link>https://code0xff.org/post/2022/12/mysql%E6%9F%A5%E8%AF%A2%E5%88%86%E6%9E%90/</link>
      <pubDate>Thu, 15 Dec 2022 08:15:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/12/mysql%E6%9F%A5%E8%AF%A2%E5%88%86%E6%9E%90/</guid>
      <description>一些经典的RBO优化，包括子查询优化；一些CBO优化，统计信息收集，CBO的统计计算方式，常数成本调节；JOIN优化，并详细介绍了EXPLAIN的各个字段含义，其中select_type、type、Extra这几个字段比较重要，另外还有JSON个事的执行计划，optimizer trace</description>
    </item>
    <item>
      <title>用工具分析MySQL存储文件</title>
      <link>https://code0xff.org/post/2022/12/%E7%94%A8%E5%B7%A5%E5%85%B7%E5%88%86%E6%9E%90mysql%E5%AD%98%E5%82%A8%E6%96%87%E4%BB%B6/</link>
      <pubDate>Tue, 13 Dec 2022 08:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/12/%E7%94%A8%E5%B7%A5%E5%85%B7%E5%88%86%E6%9E%90mysql%E5%AD%98%E5%82%A8%E6%96%87%E4%BB%B6/</guid>
      <description>innodb_ruby是专门分析InnoDB的工具，通过这个工具能获取到系统表空间、普通表空间的统计信息，段信息、区信息，以及4个核心的SYS表；；以及索引信息统计，page信息汇总，page信息dump，还可以用图表的方式展示</description>
    </item>
    <item>
      <title>一本书、一部电影(2022年)</title>
      <link>https://code0xff.org/post/2022/12/2022%E5%B9%B4%E7%9C%8B%E7%9A%84%E4%B9%A6%E5%92%8C%E7%94%B5%E5%BD%B1/</link>
      <pubDate>Sun, 11 Dec 2022 08:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/12/2022%E5%B9%B4%E7%9C%8B%E7%9A%84%E4%B9%A6%E5%92%8C%E7%94%B5%E5%BD%B1/</guid>
      <description>2022年看过的书籍、电影，旅游过的地方</description>
    </item>
    <item>
      <title>MySQL文件存储结构</title>
      <link>https://code0xff.org/post/2022/12/mysql%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8%E7%BB%93%E6%9E%84/</link>
      <pubDate>Fri, 02 Dec 2022 08:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/12/mysql%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8%E7%BB%93%E6%9E%84/</guid>
      <description>InnoDB架构包含内存、磁盘两种结构；基于磁盘的结构中包括：系统表空间、普通表空间、通用表空间、双写缓冲区、Undo表空间、redo日志；临时表空间；这里最重要的当属系统表空间 和 普通表空间；普通表空间分为段、区、页、行这些概念，256个区一组，第0组包含FSP_HDR、XDES、INODE，存储数据的地方是INDEX；系统表空间则多了Data Dictionary Header部分</description>
    </item>
    <item>
      <title>调试MySQL</title>
      <link>https://code0xff.org/post/2022/11/%E8%B0%83%E8%AF%95mysql/</link>
      <pubDate>Sun, 20 Nov 2022 08:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/11/%E8%B0%83%E8%AF%95mysql/</guid>
      <description>搭建一个MySQL调试环境</description>
    </item>
    <item>
      <title>关于云环境中多租户问题的论文</title>
      <link>https://code0xff.org/post/2022/11/multi-tenant-cloud-data-services/</link>
      <pubDate>Fri, 18 Nov 2022 18:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/11/multi-tenant-cloud-data-services/</guid>
      <description>主要挑战：存储计算分离架构，多租户共享资源需要解决的问题，serverless不需要预定资源随用随付费；隔离VS安全，隔离程度高越安全但价格高，整合程度高虚拟化stack高便捷性好便宜；自建机房的SLA基本能确定，但在云共享环境中就不是一个固定值了，一般厂商会提供可用性、吞吐量、延迟这些保证，还有多租户集群管理；开放问题：CPU的扩展和内存之间的结构、缓存的动态迁移、云服务价格优化、自动调优、新硬件的影响、资源评估</description>
    </item>
    <item>
      <title>MillWheel</title>
      <link>https://code0xff.org/post/2022/11/millwheel/</link>
      <pubDate>Fri, 18 Nov 2022 08:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/11/millwheel/</guid>
      <description>MillWheel: Fault-Tolerant Stream Processing at&#xA;Internet Scale</description>
    </item>
    <item>
      <title>How to Read a Paper</title>
      <link>https://code0xff.org/post/2022/11/how-to-read-a-paper/</link>
      <pubDate>Thu, 17 Nov 2022 08:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/11/how-to-read-a-paper/</guid>
      <description>一篇论文要读三遍，第一遍读摘要和所有标题，对论文有大概的了解，这是什么类型的论文、测试的？还是分析型的？根据其他哪些论文有关？论文的主要贡献是什么？第二遍仔细阅读，对于共识和非常细节的地方可以略过；第三遍，要站在作者的角度去理解这篇论文，甚至要反推论文中的实现</description>
    </item>
    <item>
      <title>CMU数据库总结</title>
      <link>https://code0xff.org/post/2022/11/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E6%80%BB%E7%BB%93/</link>
      <pubDate>Sun, 13 Nov 2022 19:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/11/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E6%80%BB%E7%BB%93/</guid>
      <description>基础部分、查询处理&amp;amp;优化、并发控制、事务和恢复、分布式数据库 总结思维导图</description>
    </item>
    <item>
      <title>FlumeJava: Easy, Efficient Data-Parallel Pipelines</title>
      <link>https://code0xff.org/post/2022/11/flumejava%E8%AE%BA%E6%96%87/</link>
      <pubDate>Thu, 10 Nov 2022 08:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/11/flumejava%E8%AE%BA%E6%96%87/</guid>
      <description>FlumeJava论文:《FlumeJava: Easy, Efficient Data-Parallel Pipelines》翻译</description>
    </item>
    <item>
      <title>Apache Flink™: Stream and Batch Processing in a Single Engine</title>
      <link>https://code0xff.org/post/2022/11/flink%E8%AE%BA%E6%96%87/</link>
      <pubDate>Sat, 05 Nov 2022 09:35:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/11/flink%E8%AE%BA%E6%96%87/</guid>
      <description>Flink论文：《Apache Flink™: Stream and Batch Processing in a Single Engine》翻译</description>
    </item>
    <item>
      <title>容器网络</title>
      <link>https://code0xff.org/post/2022/10/%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C/</link>
      <pubDate>Sun, 16 Oct 2022 12:12:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/10/%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C/</guid>
      <description>容器网络原理</description>
    </item>
    <item>
      <title>B&#43;树执行过程</title>
      <link>https://code0xff.org/post/2022/10/b&#43;%E6%A0%91%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B/</link>
      <pubDate>Sat, 15 Oct 2022 12:12:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/10/b&#43;%E6%A0%91%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B/</guid>
      <description>B+树的原理、插入和删除</description>
    </item>
    <item>
      <title>k8s POD使用总结</title>
      <link>https://code0xff.org/post/2022/09/k8s%E4%BD%BF%E7%94%A8/</link>
      <pubDate>Sun, 18 Sep 2022 12:12:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/09/k8s%E4%BD%BF%E7%94%A8/</guid>
      <description>k8s使用的一些记录</description>
    </item>
    <item>
      <title>高可用设计</title>
      <link>https://code0xff.org/post/2022/09/%E9%AB%98%E5%8F%AF%E7%94%A8%E8%AE%BE%E8%AE%A1/</link>
      <pubDate>Sun, 18 Sep 2022 12:12:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/09/%E9%AB%98%E5%8F%AF%E7%94%A8%E8%AE%BE%E8%AE%A1/</guid>
      <description>扩展spark thrift，变成两层调度</description>
    </item>
    <item>
      <title>Architecture of a Database System论文翻译</title>
      <link>https://code0xff.org/post/2022/09/architecture-of-a-database-system/</link>
      <pubDate>Sat, 03 Sep 2022 11:11:11 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/09/architecture-of-a-database-system/</guid>
      <description>Hellerstein、Michael Stonebraker、James Hamilton几位大神写的数据库系统架构</description>
    </item>
    <item>
      <title>确定要在DBMS中用mmap吗</title>
      <link>https://code0xff.org/post/2022/08/%E7%A1%AE%E5%AE%9A%E8%A6%81%E5%9C%A8dbms%E4%B8%AD%E7%94%A8mmap%E5%90%97/</link>
      <pubDate>Thu, 11 Aug 2022 19:08:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/08/%E7%A1%AE%E5%AE%9A%E8%A6%81%E5%9C%A8dbms%E4%B8%AD%E7%94%A8mmap%E5%90%97/</guid>
      <description>2022年 CIDR的一篇论文，CMU的网红教授发表的，介绍mmap的概念，以及为什么数据库不要用mmap</description>
    </item>
    <item>
      <title>为何Uber要将PostgreSQL迁到MySQL</title>
      <link>https://code0xff.org/post/2022/08/%E4%B8%BA%E4%BD%95uber%E8%A6%81%E5%B0%86postgresql%E8%BF%81%E5%88%B0mysql/</link>
      <pubDate>Mon, 08 Aug 2022 12:12:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/08/%E4%B8%BA%E4%BD%95uber%E8%A6%81%E5%B0%86postgresql%E8%BF%81%E5%88%B0mysql/</guid>
      <description>2016年的一篇文章，讲述了uber为什么要将PostgreSQL迁移到MySQL</description>
    </item>
    <item>
      <title>Kyuubi设计调研</title>
      <link>https://code0xff.org/post/2022/08/kyuubi%E8%AE%BE%E8%AE%A1%E8%B0%83%E7%A0%94/</link>
      <pubDate>Mon, 01 Aug 2022 12:12:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/08/kyuubi%E8%AE%BE%E8%AE%A1%E8%B0%83%E7%A0%94/</guid>
      <description>Kyuubi设计调研</description>
    </item>
    <item>
      <title>容灾部署调研</title>
      <link>https://code0xff.org/post/2022/07/%E5%AE%B9%E7%81%BE%E9%83%A8%E7%BD%B2%E8%B0%83%E7%A0%94/</link>
      <pubDate>Sat, 30 Jul 2022 14:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/%E5%AE%B9%E7%81%BE%E9%83%A8%E7%BD%B2%E8%B0%83%E7%A0%94/</guid>
      <description>容灾部署调研</description>
    </item>
    <item>
      <title>卡内基梅隆的数据库课程-1</title>
      <link>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B/</link>
      <pubDate>Fri, 22 Jul 2022 20:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B/</guid>
      <description>卡内基梅隆的数据库课程，包括：背景、关系代数、数据库存储、buffer pool、hash table、index、index concurrency control、sorting+aggregations、joins algorithms</description>
    </item>
    <item>
      <title>卡内基梅隆的数据库课程-2</title>
      <link>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B-2/</link>
      <pubDate>Mon, 04 Jul 2022 20:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B-2/</guid>
      <description>卡内基梅隆的数据库课程，包括：查询执行，火山-物化-向量模型，访问方式，顺序-索引-多索引等，顺序访问的优化，表达式评估，并行VS分布式，调度模式，I/O并行化；查询优化架构、RBO、CBO、逻辑计划VS物理计划、关系代数的优化以及一些例子、复杂谓词的类型和选择性、采样、基于概率的选择性、多join查询的优化，动态规划、遗传优化等</description>
    </item>
    <item>
      <title>卡内基梅隆的数据库课程-3</title>
      <link>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B-3/</link>
      <pubDate>Mon, 04 Jul 2022 19:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B-3/</guid>
      <description>卡内基梅隆的数据库课程，包括：事务的定义和ACID，隔离性(并发场景下的交错执行)，RW、WR、WW冲突，可串行化、Conflict Serializability(交换、优先图)、View Serializability(NP完全问题)；lock VS latch，lock类型，锁管理器，2PL，S2PL，SS2PL；死锁检测(是否有环)，根据各种条件打破循环，死锁预防(基于时间戳分配)，锁粒度(层级锁，支持更高并发)，IS、IX、SIX锁； 时间戳排序并发控制，W-TS(X)、R-TS(X)，可恢复性；OCC，三个方面阶段：读/写、校验、写入，backward validation，forward validation；幻读，重新执行，谓词锁，索引锁，事务隔离级别，基于2PL方式的各种隔离级别；MVCC并发控制，TO、OCC、2PL，版本存储append-only、time-travel、delta-storage；垃圾收集：Tuple-level(Background Vacuuming vs. Cooperative Cleaning)、Transaction-level；索引管理，主索引管理，二级索引管理(Logical Pointers、Physical Pointers)、MVCC index；MVCC delete(Deleted Flag、Tombstone Tuple)</description>
    </item>
    <item>
      <title>卡内基梅隆的数据库课程-4</title>
      <link>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B-4/</link>
      <pubDate>Mon, 04 Jul 2022 19:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B-4/</guid>
      <description>卡内基梅隆的数据库课程，包括：失败的各种情况，各种存储类型，失败的分类；redo 和 undo；buffer pool 策略；steal、no-force；shadow paging，sqlite的shadow paging；WAL协议格式，物理日志，逻辑日志，checkpoint失败恢复算法ARIES：Write-Ahead Logging，Repeating History During Redo，Logging Changes During Undo；LSN Log Sequence Numbers；正常事务操作恢复，终止事务操作恢复；Fuzzy Checkpointing，活跃事务表，脏页表；Recovery Algorithm的三个阶段：Analysis、Redo、Undo，恢复算法的性能改进</description>
    </item>
    <item>
      <title>卡内基梅隆的数据库课程-5</title>
      <link>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B-5/</link>
      <pubDate>Mon, 04 Jul 2022 19:31:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/cmu%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B-5/</guid>
      <description>卡内基梅隆的数据库课程，包括：分布式数据库，并行vs分布式，分布式数据库架构，shared-everything、shared-memory、shared-disk、shared-nothing；同质化节点vs非同质化节点；数据的透明传输，单节点vs分布式节点；协调事务，hash分区，range分区；OLTP，非拜占庭环境，原子提交协议，2PC，3PC、paxos、raft、zab、viewstamped，2PC的优化，multi-paxos，2PC vs paxos；复制配置：主-副本、多主，k-safety，传播时机：continuous、on commit，主动 vs 被动；CAP理论联邦数据库；OLAP，星型模型vs雪花模型，push vs pull，查询计划片段 vs SQL重写，分布式join算法，云系统，组件分解：系统catalog、节点管理、query优化；统一的访问格式</description>
    </item>
    <item>
      <title>What&#39;s Really New with NewSQL论文</title>
      <link>https://code0xff.org/post/2022/07/whats-really-new-with-newsql%E8%AE%BA%E6%96%87/</link>
      <pubDate>Sun, 03 Jul 2022 20:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/whats-really-new-with-newsql%E8%AE%BA%E6%96%87/</guid>
      <description>What’s Really New with NewSQL? 论文 2016年发表在 sigmod上的</description>
    </item>
    <item>
      <title>PingCAP提供的数据库学习资料</title>
      <link>https://code0xff.org/post/2022/07/pingcap%E6%8F%90%E4%BE%9B%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/</link>
      <pubDate>Sat, 02 Jul 2022 14:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/pingcap%E6%8F%90%E4%BE%9B%E7%9A%84%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%96%99/</guid>
      <description>PingCAP提供的数据库学习资料</description>
    </item>
    <item>
      <title>Snowflake论文</title>
      <link>https://code0xff.org/post/2022/07/snowflake%E8%AE%BA%E6%96%87/</link>
      <pubDate>Sat, 02 Jul 2022 14:32:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/snowflake%E8%AE%BA%E6%96%87/</guid>
      <description>The Snowflake Elastic Data Warehouse 论文 2015年发表在 sigmod上的</description>
    </item>
    <item>
      <title>Spark SQL论文</title>
      <link>https://code0xff.org/post/2022/07/spark-sql%E8%AE%BA%E6%96%87/</link>
      <pubDate>Fri, 01 Jul 2022 20:45:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/07/spark-sql%E8%AE%BA%E6%96%87/</guid>
      <description>Spark SQL: Relational Data Processing in Spark 论文</description>
    </item>
    <item>
      <title>Delta Lake论文</title>
      <link>https://code0xff.org/post/2022/06/delta-lake%E8%AE%BA%E6%96%87/</link>
      <pubDate>Fri, 24 Jun 2022 21:45:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/06/delta-lake%E8%AE%BA%E6%96%87/</guid>
      <description>Delta Lake: High-Performance ACID Table Storage over&#xA;Cloud Object Stores 论文</description>
    </item>
    <item>
      <title>Chubby论文</title>
      <link>https://code0xff.org/post/2022/06/chubby%E8%AE%BA%E6%96%87/</link>
      <pubDate>Thu, 16 Jun 2022 09:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/06/chubby%E8%AE%BA%E6%96%87/</guid>
      <description>The Chubby lock service for loosely-coupled distributed systems 论文</description>
    </item>
    <item>
      <title>Raft A Consensus Algorithm for Replicated Logs记录</title>
      <link>https://code0xff.org/post/2022/06/raft-a-consensus-algorithm-for-replicated-logs%E8%AE%B0%E5%BD%95/</link>
      <pubDate>Sun, 05 Jun 2022 09:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/06/raft-a-consensus-algorithm-for-replicated-logs%E8%AE%B0%E5%BD%95/</guid>
      <description>Raft A Consensus Algorithm for Replicated Logs总结</description>
    </item>
    <item>
      <title>自定义HiveServer设计</title>
      <link>https://code0xff.org/post/2022/06/%E8%87%AA%E5%AE%9A%E4%B9%89hiveserver%E8%AE%BE%E8%AE%A1/</link>
      <pubDate>Sun, 05 Jun 2022 09:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/06/%E8%87%AA%E5%AE%9A%E4%B9%89hiveserver%E8%AE%BE%E8%AE%A1/</guid>
      <description>实现一套自己定义的Hive RPC服务</description>
    </item>
    <item>
      <title>Raft论文</title>
      <link>https://code0xff.org/post/2022/05/raft%E8%AE%BA%E6%96%87/</link>
      <pubDate>Mon, 16 May 2022 18:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/05/raft%E8%AE%BA%E6%96%87/</guid>
      <description>In Search of an Understandable Consensus Algorithm</description>
    </item>
    <item>
      <title>Multi Paxos总结</title>
      <link>https://code0xff.org/post/2022/05/multi-paxos/</link>
      <pubDate>Sun, 15 May 2022 18:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/05/multi-paxos/</guid>
      <description>Implemening Replicated Logs with Paxos 中的Multi Paxos部分</description>
    </item>
    <item>
      <title>Basic Paxos总结</title>
      <link>https://code0xff.org/post/2022/05/basic-paxos/</link>
      <pubDate>Sat, 14 May 2022 09:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/05/basic-paxos/</guid>
      <description>Implemening Replicated Logs with Paxos 中的Basic Paxos部分</description>
    </item>
    <item>
      <title>Java的APM工具原理</title>
      <link>https://code0xff.org/post/2022/05/java%E7%9A%84apm%E5%B7%A5%E5%85%B7%E5%8E%9F%E7%90%86/</link>
      <pubDate>Mon, 02 May 2022 10:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/05/java%E7%9A%84apm%E5%B7%A5%E5%85%B7%E5%8E%9F%E7%90%86/</guid>
      <description>Java的APM工具原理</description>
    </item>
    <item>
      <title>Paxos Made Simple论文</title>
      <link>https://code0xff.org/post/2022/05/paxos-made-simple%E8%AE%BA%E6%96%87/</link>
      <pubDate>Sun, 01 May 2022 20:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/05/paxos-made-simple%E8%AE%BA%E6%96%87/</guid>
      <description>Paxos Made Simple论文</description>
    </item>
    <item>
      <title>BigTable论文</title>
      <link>https://code0xff.org/post/2022/04/bigtable%E8%AE%BA%E6%96%87/</link>
      <pubDate>Wed, 20 Apr 2022 20:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/04/bigtable%E8%AE%BA%E6%96%87/</guid>
      <description>BigTable论文</description>
    </item>
    <item>
      <title>MapReduce论文</title>
      <link>https://code0xff.org/post/2022/04/mapreduce%E8%AE%BA%E6%96%87/</link>
      <pubDate>Wed, 20 Apr 2022 12:43:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/04/mapreduce%E8%AE%BA%E6%96%87/</guid>
      <description>MapReduce论文</description>
    </item>
    <item>
      <title>GFS论文</title>
      <link>https://code0xff.org/post/2022/04/gfs%E8%AE%BA%E6%96%87/</link>
      <pubDate>Wed, 13 Apr 2022 08:54:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/04/gfs%E8%AE%BA%E6%96%87/</guid>
      <description>读GFS论文</description>
    </item>
    <item>
      <title>MapRedue是一个巨大的退步</title>
      <link>https://code0xff.org/post/2022/03/mapredue%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B7%A8%E5%A4%A7%E7%9A%84%E9%80%80%E6%AD%A5/</link>
      <pubDate>Sat, 26 Mar 2022 11:38:31 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/03/mapredue%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B7%A8%E5%A4%A7%E7%9A%84%E9%80%80%E6%AD%A5/</guid>
      <description>2008年的一篇文章，著名数据库专家抨击MapReduce相比数据库是巨大退步</description>
    </item>
    <item>
      <title>Hive论文</title>
      <link>https://code0xff.org/post/2022/03/hive%E8%AE%BA%E6%96%87/</link>
      <pubDate>Sun, 20 Mar 2022 08:54:37 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/03/hive%E8%AE%BA%E6%96%87/</guid>
      <description>Hive论文</description>
    </item>
    <item>
      <title>Spark逻辑计划的解析</title>
      <link>https://code0xff.org/post/2022/03/spark%E9%80%BB%E8%BE%91%E8%AE%A1%E5%88%92%E7%9A%84%E8%A7%A3%E6%9E%90/</link>
      <pubDate>Sun, 06 Mar 2022 11:20:43 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/03/spark%E9%80%BB%E8%BE%91%E8%AE%A1%E5%88%92%E7%9A%84%E8%A7%A3%E6%9E%90/</guid>
      <description>介绍spark是如何做逻辑计划解析，并优化的</description>
    </item>
    <item>
      <title>Spark的注入规则</title>
      <link>https://code0xff.org/post/2022/03/spark%E7%9A%84%E6%B3%A8%E5%85%A5%E8%A7%84%E5%88%99/</link>
      <pubDate>Fri, 04 Mar 2022 21:46:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/03/spark%E7%9A%84%E6%B3%A8%E5%85%A5%E8%A7%84%E5%88%99/</guid>
      <description>扩展Spark的注入规则，实现updaet</description>
    </item>
    <item>
      <title>用javacc实现四则运算</title>
      <link>https://code0xff.org/post/2022/02/%E7%94%A8javacc%E5%AE%9E%E7%8E%B0%E5%9B%9B%E5%88%99%E8%BF%90%E7%AE%97/</link>
      <pubDate>Sat, 26 Feb 2022 15:15:11 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/02/%E7%94%A8javacc%E5%AE%9E%E7%8E%B0%E5%9B%9B%E5%88%99%E8%BF%90%E7%AE%97/</guid>
      <description>用javacc实现四则运算</description>
    </item>
    <item>
      <title>scala的一些特性</title>
      <link>https://code0xff.org/post/2022/02/scala%E7%9A%84%E4%B8%80%E4%BA%9B%E7%89%B9%E6%80%A7/</link>
      <pubDate>Thu, 24 Feb 2022 18:35:31 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/02/scala%E7%9A%84%E4%B8%80%E4%BA%9B%E7%89%B9%E6%80%A7/</guid>
      <description>scala的一些特性</description>
    </item>
    <item>
      <title>Kudu论文翻译</title>
      <link>https://code0xff.org/post/2022/02/kudu%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91/</link>
      <pubDate>Sun, 20 Feb 2022 10:27:11 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/02/kudu%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91/</guid>
      <description>读Kudu论文</description>
    </item>
    <item>
      <title>Kudu的模型设计</title>
      <link>https://code0xff.org/post/2022/02/kudu%E7%9A%84%E6%A8%A1%E5%9E%8B%E8%AE%BE%E8%AE%A1/</link>
      <pubDate>Sun, 13 Feb 2022 14:28:17 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/02/kudu%E7%9A%84%E6%A8%A1%E5%9E%8B%E8%AE%BE%E8%AE%A1/</guid>
      <description>关于kudu的数据模型</description>
    </item>
    <item>
      <title>几种开源数据库对元数据的管理</title>
      <link>https://code0xff.org/post/2022/01/%E5%87%A0%E7%A7%8D%E5%BC%80%E6%BA%90%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AF%B9%E5%85%83%E6%95%B0%E6%8D%AE%E7%9A%84%E7%AE%A1%E7%90%86/</link>
      <pubDate>Tue, 25 Jan 2022 18:17:22 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/01/%E5%87%A0%E7%A7%8D%E5%BC%80%E6%BA%90%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AF%B9%E5%85%83%E6%95%B0%E6%8D%AE%E7%9A%84%E7%AE%A1%E7%90%86/</guid>
      <description>几种开源数据库对元数据的管理</description>
    </item>
    <item>
      <title>LR算法</title>
      <link>https://code0xff.org/post/2022/01/lr%E7%AE%97%E6%B3%95/</link>
      <pubDate>Sun, 23 Jan 2022 10:09:33 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/01/lr%E7%AE%97%E6%B3%95/</guid>
      <description>图解LR算法</description>
    </item>
    <item>
      <title>对永久组合的实践</title>
      <link>https://code0xff.org/post/2022/01/%E5%AF%B9%E6%B0%B8%E4%B9%85%E7%BB%84%E5%90%88%E7%9A%84%E5%AE%9E%E8%B7%B5/</link>
      <pubDate>Sun, 16 Jan 2022 18:17:22 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/01/%E5%AF%B9%E6%B0%B8%E4%B9%85%E7%BB%84%E5%90%88%E7%9A%84%E5%AE%9E%E8%B7%B5/</guid>
      <description>对永久组合的实践</description>
    </item>
    <item>
      <title>用DFA验证字符串中的数字</title>
      <link>https://code0xff.org/post/2022/01/%E7%94%A8dfa%E9%AA%8C%E8%AF%81%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E7%9A%84%E6%95%B0%E5%AD%97/</link>
      <pubDate>Sat, 08 Jan 2022 09:11:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2022/01/%E7%94%A8dfa%E9%AA%8C%E8%AF%81%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%E7%9A%84%E6%95%B0%E5%AD%97/</guid>
      <description>一个字符串，包含小数和指数部分，采用DFA的方式做验证其有效性</description>
    </item>
    <item>
      <title>数据迁移工具DB-bridge</title>
      <link>https://code0xff.org/post/2021/12/%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB%E5%B7%A5%E5%85%B7db-bridge/</link>
      <pubDate>Thu, 30 Dec 2021 13:07:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB%E5%B7%A5%E5%85%B7db-bridge/</guid>
      <description>Teradata调研</description>
    </item>
    <item>
      <title>HANA调研</title>
      <link>https://code0xff.org/post/2021/12/hana%E8%B0%83%E7%A0%94/</link>
      <pubDate>Wed, 29 Dec 2021 13:07:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/hana%E8%B0%83%E7%A0%94/</guid>
      <description>HANA调研</description>
    </item>
    <item>
      <title>Teradata调研</title>
      <link>https://code0xff.org/post/2021/12/teradata%E8%B0%83%E7%A0%94/</link>
      <pubDate>Tue, 28 Dec 2021 13:07:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/teradata%E8%B0%83%E7%A0%94/</guid>
      <description>Teradata调研</description>
    </item>
    <item>
      <title>统一查询项目整合Calcite</title>
      <link>https://code0xff.org/post/2021/12/%E7%BB%9F%E4%B8%80%E6%9F%A5%E8%AF%A2%E6%95%B4%E5%90%88calcite/</link>
      <pubDate>Mon, 27 Dec 2021 13:07:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/%E7%BB%9F%E4%B8%80%E6%9F%A5%E8%AF%A2%E6%95%B4%E5%90%88calcite/</guid>
      <description>统一查询项目介绍</description>
    </item>
    <item>
      <title>统一查询项目介绍</title>
      <link>https://code0xff.org/post/2021/12/%E7%BB%9F%E4%B8%80%E6%9F%A5%E8%AF%A2%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D/</link>
      <pubDate>Sun, 26 Dec 2021 13:07:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/%E7%BB%9F%E4%B8%80%E6%9F%A5%E8%AF%A2%E9%A1%B9%E7%9B%AE%E4%BB%8B%E7%BB%8D/</guid>
      <description>统一查询项目介绍</description>
    </item>
    <item>
      <title>QuickSQL执行过程</title>
      <link>https://code0xff.org/post/2021/12/quicksql%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B/</link>
      <pubDate>Sun, 26 Dec 2021 13:06:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/quicksql%E6%89%A7%E8%A1%8C%E8%BF%87%E7%A8%8B/</guid>
      <description>quick-sql 原理分析</description>
    </item>
    <item>
      <title>分布式数据库课程中的论文</title>
      <link>https://code0xff.org/post/2021/12/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B%E4%B8%AD%E7%9A%84%E8%AE%BA%E6%96%87/</link>
      <pubDate>Sun, 19 Dec 2021 20:53:31 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AF%BE%E7%A8%8B%E4%B8%AD%E7%9A%84%E8%AE%BA%E6%96%87/</guid>
      <description>这里罗列了《分布式数据库课程中的论文》这个网络课程中推荐的论文</description>
    </item>
    <item>
      <title>数据密集型应用设计读书笔记</title>
      <link>https://code0xff.org/post/2021/12/%E6%95%B0%E6%8D%AE%E5%AF%86%E9%9B%86%E5%9E%8B%E5%BA%94%E7%94%A8%E8%AE%BE%E8%AE%A1/</link>
      <pubDate>Thu, 02 Dec 2021 12:07:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/%E6%95%B0%E6%8D%AE%E5%AF%86%E9%9B%86%E5%9E%8B%E5%BA%94%E7%94%A8%E8%AE%BE%E8%AE%A1/</guid>
      <description>读《数据密集型应用设计》</description>
    </item>
    <item>
      <title>UNIX环境高级编程读书笔记</title>
      <link>https://code0xff.org/post/2021/12/unix%E7%8E%AF%E5%A2%83%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B/</link>
      <pubDate>Wed, 01 Dec 2021 12:07:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/unix%E7%8E%AF%E5%A2%83%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B/</guid>
      <description>读《UNIX环境高级编程》</description>
    </item>
    <item>
      <title>HANA和TeraData数据库迁移调研</title>
      <link>https://code0xff.org/post/2021/11/hana%E5%92%8Cteradata%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%81%E7%A7%BB%E8%B0%83%E7%A0%94/</link>
      <pubDate>Fri, 26 Nov 2021 17:46:21 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/11/hana%E5%92%8Cteradata%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%81%E7%A7%BB%E8%B0%83%E7%A0%94/</guid>
      <description>调研HANA和TD的数据类型，各种语法，调研迁移的可能性</description>
    </item>
    <item>
      <title>TPC-DS</title>
      <link>https://code0xff.org/post/2021/11/tpc-ds/</link>
      <pubDate>Fri, 26 Nov 2021 17:46:21 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/11/tpc-ds/</guid>
      <description>TPC-DS的安装和测试</description>
    </item>
    <item>
      <title>A Critique of ANSI SQL Isolation Levels论文</title>
      <link>https://code0xff.org/post/2021/11/a-critique-of-ansi-sql-isolation-levels/</link>
      <pubDate>Fri, 26 Nov 2021 13:06:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/11/a-critique-of-ansi-sql-isolation-levels/</guid>
      <description>读A Critique of ANSI SQL Isolation Levels论文</description>
    </item>
    <item>
      <title>Alluxio论文</title>
      <link>https://code0xff.org/post/2021/11/alluxio%E8%AE%BA%E6%96%87/</link>
      <pubDate>Mon, 22 Nov 2021 12:32:17 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/11/alluxio%E8%AE%BA%E6%96%87/</guid>
      <description>读Alluxio论文</description>
    </item>
    <item>
      <title>Spark论文</title>
      <link>https://code0xff.org/post/2021/11/spark%E8%AE%BA%E6%96%87/</link>
      <pubDate>Sat, 06 Nov 2021 08:49:11 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/11/spark%E8%AE%BA%E6%96%87/</guid>
      <description>读Spark论文</description>
    </item>
    <item>
      <title>LFU缓存</title>
      <link>https://code0xff.org/post/2021/11/lfu%E7%BC%93%E5%AD%98/</link>
      <pubDate>Wed, 03 Nov 2021 08:54:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/11/lfu%E7%BC%93%E5%AD%98/</guid>
      <description>设计一个LFU缓存</description>
    </item>
    <item>
      <title>N皇后</title>
      <link>https://code0xff.org/post/2021/10/n%E7%9A%87%E5%90%8E/</link>
      <pubDate>Thu, 21 Oct 2021 09:58:22 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/n%E7%9A%87%E5%90%8E/</guid>
      <description>著名的8皇后问题</description>
    </item>
    <item>
      <title>两个有序数组的中位数</title>
      <link>https://code0xff.org/post/2021/10/%E4%B8%A4%E4%B8%AA%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E4%B8%AD%E4%BD%8D%E6%95%B0/</link>
      <pubDate>Wed, 20 Oct 2021 12:34:12 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E4%B8%A4%E4%B8%AA%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E4%B8%AD%E4%BD%8D%E6%95%B0/</guid>
      <description>给定两个有序数组，如何在对数时间查找出其中位数？</description>
    </item>
    <item>
      <title>沸腾新十年(上)</title>
      <link>https://code0xff.org/post/2021/10/%E6%B2%B8%E8%85%BE%E6%96%B0%E5%8D%81%E5%B9%B4%E4%B8%8A/</link>
      <pubDate>Mon, 18 Oct 2021 19:33:17 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E6%B2%B8%E8%85%BE%E6%96%B0%E5%8D%81%E5%B9%B4%E4%B8%8A/</guid>
      <description>中国移动互联网的十年，上半部</description>
    </item>
    <item>
      <title>沸腾新十年(下)</title>
      <link>https://code0xff.org/post/2021/10/%E6%B2%B8%E8%85%BE%E6%96%B0%E5%8D%81%E5%B9%B4%E4%B8%8B/</link>
      <pubDate>Mon, 18 Oct 2021 19:33:17 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E6%B2%B8%E8%85%BE%E6%96%B0%E5%8D%81%E5%B9%B4%E4%B8%8B/</guid>
      <description>中国移动互联网的十年，下半部</description>
    </item>
    <item>
      <title>推荐一些不错的韩国电影</title>
      <link>https://code0xff.org/post/2021/10/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%BA%9B%E4%B8%8D%E9%94%99%E7%9A%84%E9%9F%A9%E5%9B%BD%E7%94%B5%E5%BD%B1/</link>
      <pubDate>Sat, 16 Oct 2021 11:39:19 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%BA%9B%E4%B8%8D%E9%94%99%E7%9A%84%E9%9F%A9%E5%9B%BD%E7%94%B5%E5%BD%B1/</guid>
      <description>推荐一些豆瓣评分很高的韩国电影，值得观看</description>
    </item>
    <item>
      <title>马拉车算法</title>
      <link>https://code0xff.org/post/2021/10/%E9%A9%AC%E6%8B%89%E8%BD%A6%E7%AE%97%E6%B3%95/</link>
      <pubDate>Sat, 16 Oct 2021 10:49:09 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E9%A9%AC%E6%8B%89%E8%BD%A6%E7%AE%97%E6%B3%95/</guid>
      <description>介绍马拉车算法，这是一种用在回文字符串场景下的算法，可以将时间复杂度压缩到极致</description>
    </item>
    <item>
      <title>TD-SQL-PG版总结</title>
      <link>https://code0xff.org/post/2021/12/td-sql-pg%E7%89%88%E6%80%BB%E7%BB%93/</link>
      <pubDate>Mon, 11 Oct 2021 14:57:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/td-sql-pg%E7%89%88%E6%80%BB%E7%BB%93/</guid>
      <description>腾讯基于PostGreSQL改造的分布式数据库</description>
    </item>
    <item>
      <title>多彩的黔东南</title>
      <link>https://code0xff.org/post/2021/10/%E5%A4%9A%E5%BD%A9%E7%9A%84%E9%BB%94%E4%B8%9C%E5%8D%97/</link>
      <pubDate>Sun, 10 Oct 2021 20:10:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E5%A4%9A%E5%BD%A9%E7%9A%84%E9%BB%94%E4%B8%9C%E5%8D%97/</guid>
      <description>贵州省东南部的黔东南地区，旅行内容：镇远古城，一江分为两岸，远处是酒吧一条街，对岸是旅店，往后是一座山可以俯视整个古城；西江千户苗寨，有上千户人家组成的大景区，曾经是贫困地区后将这些变成景点，当地人在这里生活也做起来生意，包括各种风雨桥，还有演出，基本做到了盈利和原始生态的平衡</description>
    </item>
    <item>
      <title>从汇编角度看程序的执行</title>
      <link>https://code0xff.org/post/2021/10/%E4%BB%8E%E6%B1%87%E7%BC%96%E8%A7%92%E5%BA%A6%E7%9C%8B%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%89%A7%E8%A1%8C/</link>
      <pubDate>Sun, 10 Oct 2021 14:09:03 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E4%BB%8E%E6%B1%87%E7%BC%96%E8%A7%92%E5%BA%A6%E7%9C%8B%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%89%A7%E8%A1%8C/</guid>
      <description>分析一段程序的汇编代码，循环、函数调用、浮点执行等</description>
    </item>
    <item>
      <title>TD-SQL总结-MySQL版</title>
      <link>https://code0xff.org/post/2021/12/td-sql%E6%80%BB%E7%BB%93/</link>
      <pubDate>Sat, 09 Oct 2021 14:09:03 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/td-sql%E6%80%BB%E7%BB%93/</guid>
      <description>腾讯基于mysql改造的分布式数据库</description>
    </item>
    <item>
      <title>莫里斯遍历</title>
      <link>https://code0xff.org/post/2021/10/%E8%8E%AB%E9%87%8C%E6%96%AF%E9%81%8D%E5%8E%86/</link>
      <pubDate>Tue, 05 Oct 2021 14:09:03 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E8%8E%AB%E9%87%8C%E6%96%AF%E9%81%8D%E5%8E%86/</guid>
      <description>详解介绍莫里斯遍历，通过树中的空闲指针，极限压缩空间达到常数级别，本文介绍两种莫里斯版本，第一种是破坏性的；第二种是非破坏性的</description>
    </item>
    <item>
      <title>朝鲜之行</title>
      <link>https://code0xff.org/post/2021/10/%E6%9C%9D%E9%B2%9C%E4%B9%8B%E8%A1%8C/</link>
      <pubDate>Mon, 04 Oct 2021 11:10:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E6%9C%9D%E9%B2%9C%E4%B9%8B%E8%A1%8C/</guid>
      <description>直飞朝鲜平壤，旅行内容：凯旋门广场、朝友谊纪念塔(看到了曾经在书本上的那些英雄的名字)、开城-高丽人参、开城板门店、38线、停战协议签署大厅、高丽时代的大学堂-成均馆、开城铜碗餐、金日成广场、万寿台、妙香山、国际友谊展览馆、妙香山普贤寺、万景台(金日成诞生之地)、参观中学和学生演出、参观当地的教室、平壤的地铁、朝鲜冷面</description>
    </item>
    <item>
      <title>日本之行</title>
      <link>https://code0xff.org/post/2021/10/%E6%97%A5%E6%9C%AC%E4%B9%8B%E8%A1%8C/</link>
      <pubDate>Sun, 03 Oct 2021 14:09:03 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E6%97%A5%E6%9C%AC%E4%B9%8B%E8%A1%8C/</guid>
      <description>大板住长堀桥附近，逛道顿堀尝日本当地美食、蟹乐道、一兰拉面、各种寿司店，心斋桥、天守阁；京都游：伏见稻荷大社、二年坂、三年坂、清水寺、金阁寺、岚山，奈良：看小鹿、若草山；东京：全球最复杂地铁站-新宿站、东京银座、歌舞伎厅、上野公园、浅草寺、浅草寺出去坐船游东京湾、东京塔、明治神宫、皇居</description>
    </item>
    <item>
      <title>丽江之行</title>
      <link>https://code0xff.org/post/2021/10/%E4%B8%BD%E6%B1%9F%E4%B9%8B%E8%A1%8C/</link>
      <pubDate>Sat, 02 Oct 2021 14:09:03 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E4%B8%BD%E6%B1%9F%E4%B9%8B%E8%A1%8C/</guid>
      <description>大研古城(丽江古城)、古城外逛街、黑龙潭公园、涑河古镇、拉市海、玉龙雪山、泸沽湖、大理洱海</description>
    </item>
    <item>
      <title>海边的亚庇</title>
      <link>https://code0xff.org/post/2021/10/%E6%B5%B7%E8%BE%B9%E7%9A%84%E4%BA%9A%E5%BA%87/</link>
      <pubDate>Fri, 01 Oct 2021 14:09:03 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/10/%E6%B5%B7%E8%BE%B9%E7%9A%84%E4%BA%9A%E5%BA%87/</guid>
      <description>水上清真寺、沙巴大学(粉色清真寺)、亚庇夜市、天桥底下榴莲市场、加雅街(唐人街)、亚庇湿地公园、黑海滩、丹绒亚路海滩、马里马里文化村、在水一方萤火虫基地，附近海岛：东姑阿都拉曼海洋公园，去了面积第二小的MANUKAN岛、美人鱼岛，玩浮潜</description>
    </item>
    <item>
      <title>多瑙河畔的布达佩斯</title>
      <link>https://code0xff.org/post/2021/09/%E5%A4%9A%E7%91%99%E6%B2%B3%E7%95%94%E7%9A%84%E5%B8%83%E8%BE%BE%E4%BD%A9%E6%96%AF/</link>
      <pubDate>Thu, 30 Sep 2021 11:12:13 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E5%A4%9A%E7%91%99%E6%B2%B3%E7%95%94%E7%9A%84%E5%B8%83%E8%BE%BE%E4%BD%A9%E6%96%AF/</guid>
      <description>匈牙利游记，我们去了布达佩斯，看看蓝色的多瑙河；伊丽莎白桥、渔人堡、匈牙利牛肉汤和鸡腿饭、塞切尼链桥、戴阿克费伦茨广场、多瑙河游船、城堡山</description>
    </item>
    <item>
      <title>城中国梵蒂冈</title>
      <link>https://code0xff.org/post/2021/09/%E5%9F%8E%E4%B8%AD%E5%9B%BD%E6%A2%B5%E8%92%82%E5%86%88/</link>
      <pubDate>Wed, 29 Sep 2021 12:16:14 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E5%9F%8E%E4%B8%AD%E5%9B%BD%E6%A2%B5%E8%92%82%E5%86%88/</guid>
      <description>意大利游记，我们去了梵蒂冈，看看宗教圣地；圣彼得大教堂、三大宝《圣伤》、青铜华盖、圣彼得的宝座、小博物馆、登顶教堂、米开朗基罗设计的穹顶、俯看圣彼得广场、梵蒂冈博物馆，拉斐尔的壁画，西斯廷教堂</description>
    </item>
    <item>
      <title>永恒之城罗马</title>
      <link>https://code0xff.org/post/2021/09/%E6%B0%B8%E6%81%92%E4%B9%8B%E5%9F%8E%E7%BD%97%E9%A9%AC/</link>
      <pubDate>Tue, 28 Sep 2021 12:16:14 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E6%B0%B8%E6%81%92%E4%B9%8B%E5%9F%8E%E7%BD%97%E9%A9%AC/</guid>
      <description>意大利游记，我们去了罗马，看看这座永恒之城；斗兽场、罗马城遗址、帕拉蒂尼山、威尼斯广场、许愿池、西班牙广场、博尔塞纳湖、天空之城、圣天使城堡</description>
    </item>
    <item>
      <title>微服务的设计的IDEALS</title>
      <link>https://code0xff.org/post/2021/09/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%9A%84%E8%AE%BE%E8%AE%A1%E7%9A%84ideals/</link>
      <pubDate>Mon, 27 Sep 2021 18:34:37 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E7%9A%84%E8%AE%BE%E8%AE%A1%E7%9A%84ideals/</guid>
      <description>微服务的设计的IDEALS</description>
    </item>
    <item>
      <title>水上的威尼斯(下)</title>
      <link>https://code0xff.org/post/2021/09/%E6%B0%B4%E4%B8%8A%E7%9A%84%E5%A8%81%E5%B0%BC%E6%96%AF_2/</link>
      <pubDate>Mon, 27 Sep 2021 12:07:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E6%B0%B4%E4%B8%8A%E7%9A%84%E5%A8%81%E5%B0%BC%E6%96%AF_2/</guid>
      <description>意大利游记，我们去了威尼斯，看看著名的水城；中转多哈，进入威尼斯，坐游船、圣马可广场，逛主岛、学院桥、圣母安康教堂、美术馆、乔尔乔内画展、叹息桥、圣马可教堂、贡多拉游船，玻璃岛，彩色岛(burano岛)，马泽博岛，lido岛，总督府，这篇是下部</description>
    </item>
    <item>
      <title>水上的威尼斯(上)</title>
      <link>https://code0xff.org/post/2021/09/%E6%B0%B4%E4%B8%8A%E7%9A%84%E5%A8%81%E5%B0%BC%E6%96%AF_1/</link>
      <pubDate>Mon, 27 Sep 2021 11:06:04 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E6%B0%B4%E4%B8%8A%E7%9A%84%E5%A8%81%E5%B0%BC%E6%96%AF_1/</guid>
      <description>意大利游记，我们去了威尼斯，看看著名的水城；中转多哈，进入威尼斯，坐游船、圣马可广场，逛主岛、学院桥、圣母安康教堂、美术馆、乔尔乔内画展、叹息桥、圣马可教堂、贡多拉游船，玻璃岛，彩色岛(burano岛)，马泽博岛，lido岛，总督府；这篇是上部</description>
    </item>
    <item>
      <title>越南海边城市岘港</title>
      <link>https://code0xff.org/post/2021/09/%E8%B6%8A%E5%8D%97%E7%9A%84%E5%B2%98%E6%B8%AF/</link>
      <pubDate>Thu, 23 Sep 2021 13:58:33 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E8%B6%8A%E5%8D%97%E7%9A%84%E5%B2%98%E6%B8%AF/</guid>
      <description>越南海边城市岘港</description>
    </item>
    <item>
      <title>开发软件为啥这么难</title>
      <link>https://code0xff.org/post/2021/09/%E5%BC%80%E5%8F%91%E8%BD%AF%E4%BB%B6%E4%B8%BA%E5%95%A5%E8%BF%99%E4%B9%88%E9%9A%BE/</link>
      <pubDate>Wed, 22 Sep 2021 15:28:13 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E5%BC%80%E5%8F%91%E8%BD%AF%E4%BB%B6%E4%B8%BA%E5%95%A5%E8%BF%99%E4%B9%88%E9%9A%BE/</guid>
      <description>开发软件为啥这么难</description>
    </item>
    <item>
      <title>曾经搭建博客的过程</title>
      <link>https://code0xff.org/post/2021/09/%E6%9B%BE%E7%BB%8F%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2%E7%9A%84%E8%BF%87%E7%A8%8B/</link>
      <pubDate>Wed, 22 Sep 2021 14:58:33 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E6%9B%BE%E7%BB%8F%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2%E7%9A%84%E8%BF%87%E7%A8%8B/</guid>
      <description>第一次搭建博客的记录</description>
    </item>
    <item>
      <title>TD-SQL调研</title>
      <link>https://code0xff.org/post/2021/12/td-sql%E8%B0%83%E7%A0%94/</link>
      <pubDate>Wed, 22 Sep 2021 14:09:03 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/12/td-sql%E8%B0%83%E7%A0%94/</guid>
      <description>调研TD-SQL问题</description>
    </item>
    <item>
      <title>第一篇文章</title>
      <link>https://code0xff.org/post/2021/09/%E7%AC%AC%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0/</link>
      <pubDate>Wed, 22 Sep 2021 13:58:33 +0800</pubDate>
      <guid>https://code0xff.org/post/2021/09/%E7%AC%AC%E4%B8%80%E7%AF%87%E6%96%87%E7%AB%A0/</guid>
      <description>用hugo+github+gitee搭建的博客</description>
    </item>
    <item>
      <title></title>
      <link>https://code0xff.org/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://code0xff.org/about/</guid>
      <description>网站介绍</description>
    </item>
    <item>
      <title></title>
      <link>https://code0xff.org/archives/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://code0xff.org/archives/</guid>
      <description>文章归档</description>
    </item>
    <item>
      <title></title>
      <link>https://code0xff.org/linked/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://code0xff.org/linked/</guid>
      <description>链接结果</description>
    </item>
    <item>
      <title></title>
      <link>https://code0xff.org/post/2026/05/%E7%9D%A1%E7%9C%A0%E5%8C%BB%E5%AD%A6%E6%9C%AF%E8%AF%AD%E9%80%9A%E4%BF%97%E9%80%9F%E6%9F%A5%E6%89%8B%E5%86%8C/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://code0xff.org/post/2026/05/%E7%9D%A1%E7%9C%A0%E5%8C%BB%E5%AD%A6%E6%9C%AF%E8%AF%AD%E9%80%9A%E4%BF%97%E9%80%9F%E6%9F%A5%E6%89%8B%E5%86%8C/</guid>
      <description>&lt;h1 id=&#34;睡眠医学术语通俗速查手册&#34;&gt;睡眠医学术语通俗速查手册&lt;/h1&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;本手册把睡眠医学里常见的专业术语翻译成&amp;quot;人话&amp;quot;,方便日常理解、查阅和体检报告解读。&lt;/p&gt;&#xA;&lt;p&gt;大原则:具体数值仅供参考,实际诊断要结合医生判断和个人情况。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;一睡眠的五个阶段基础概念&#34;&gt;一、睡眠的五个阶段(基础概念)&lt;/h2&gt;&#xA;&lt;p&gt;睡眠不是&amp;quot;睡着 / 没睡着&amp;quot;的开关,而是一个分阶段的过程。一夜会循环 4–6 次,每个周期约 90 分钟。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;阶段&lt;/th&gt;&#xA;          &lt;th&gt;学名&lt;/th&gt;&#xA;          &lt;th&gt;通俗理解&lt;/th&gt;&#xA;          &lt;th&gt;占整夜比例&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;清醒&lt;/td&gt;&#xA;          &lt;td&gt;Wake&lt;/td&gt;&#xA;          &lt;td&gt;还没睡着,大脑活跃&lt;/td&gt;&#xA;          &lt;td&gt;—&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;N1&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;浅睡 1 期&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;刚迷糊&amp;quot;阶段,容易被弄醒,可能突然腿一抽&lt;/td&gt;&#xA;          &lt;td&gt;2–5%&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;N2&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;浅睡 2 期&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;正经睡着了&amp;rdquo;,占整夜最多时间&lt;/td&gt;&#xA;          &lt;td&gt;45–55%&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;N3&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;深睡 / 慢波睡眠&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;雷打不醒&amp;quot;阶段,身体大修期&lt;/td&gt;&#xA;          &lt;td&gt;15–25%&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;REM&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;快速眼动睡眠&lt;/td&gt;&#xA;          &lt;td&gt;做梦阶段,大脑很活跃但身体被锁住&lt;/td&gt;&#xA;          &lt;td&gt;20–25%&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;strong&gt;记忆要点&lt;/strong&gt;:N1 → N2 → N3 → REM,顺序固定不可逆。但整夜会循环多次,后半夜以 N2 ↔ REM 为主,N3 越来越少。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;二脑电波类型怎么判断你睡到哪个阶段&#34;&gt;二、脑电波类型(怎么判断你睡到哪个阶段)&lt;/h2&gt;&#xA;&lt;p&gt;医生看脑电图(EEG)主要看波形。波形频率越快 = 大脑越活跃。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;脑波&lt;/th&gt;&#xA;          &lt;th&gt;频率&lt;/th&gt;&#xA;          &lt;th&gt;通俗理解&lt;/th&gt;&#xA;          &lt;th&gt;出现在哪&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;β 波&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;13–30 Hz&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;工作状态&amp;rdquo;——专注、思考&lt;/td&gt;&#xA;          &lt;td&gt;清醒、紧张时&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;α 波&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;8–13 Hz&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;放空状态&amp;rdquo;——闭眼放松&lt;/td&gt;&#xA;          &lt;td&gt;清醒但放松,准备入睡&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;θ 波&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;4–7 Hz&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;迷糊状态&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td&gt;N1、N2、REM&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;δ 波&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;0.5–4 Hz&lt;/td&gt;&#xA;          &lt;td&gt;&amp;ldquo;深度休眠&amp;rdquo;——慢慢悠悠的大波&lt;/td&gt;&#xA;          &lt;td&gt;N3 的标志&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;睡眠纺锤波&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;短促爆发&lt;/td&gt;&#xA;          &lt;td&gt;像纺锤的小波,大脑在&amp;quot;屏蔽外界&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td&gt;N2 标志&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;K 复合波&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;单个尖波&lt;/td&gt;&#xA;          &lt;td&gt;大脑在评估&amp;quot;这个声音要不要把我叫醒&amp;rdquo;&lt;/td&gt;&#xA;          &lt;td&gt;N2 标志&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;锯齿波&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;锯齿形&lt;/td&gt;&#xA;          &lt;td&gt;REM 期的特征波形&lt;/td&gt;&#xA;          &lt;td&gt;REM 标志&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;三整夜睡眠的成绩单指标&#34;&gt;三、整夜睡眠的&amp;quot;成绩单&amp;quot;指标&lt;/h2&gt;&#xA;&lt;p&gt;这些是体检或睡眠监测报告里最常见的数字。&lt;/p&gt;&#xA;&lt;h3 id=&#34;时长类&#34;&gt;时长类&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;缩写&lt;/th&gt;&#xA;          &lt;th&gt;全称&lt;/th&gt;&#xA;          &lt;th&gt;通俗解释&lt;/th&gt;&#xA;          &lt;th&gt;健康参考&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;TIB&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;总卧床时间&lt;/td&gt;&#xA;          &lt;td&gt;你在床上待了多久(包括没睡着的时间)&lt;/td&gt;&#xA;          &lt;td&gt;—&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;TST&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;总睡眠时间&lt;/td&gt;&#xA;          &lt;td&gt;你实际睡着的时间&lt;/td&gt;&#xA;          &lt;td&gt;成人 7–9 小时&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;SE&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;睡眠效率&lt;/td&gt;&#xA;          &lt;td&gt;TST ÷ TIB,即&amp;quot;躺在床上有多少时间真的睡着了&amp;quot;&lt;/td&gt;&#xA;          &lt;td&gt;≥ 85% 良好,&amp;lt;75% 提示失眠&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;入睡与觉醒类&#34;&gt;入睡与觉醒类&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;缩写&lt;/th&gt;&#xA;          &lt;th&gt;全称&lt;/th&gt;&#xA;          &lt;th&gt;通俗解释&lt;/th&gt;&#xA;          &lt;th&gt;健康参考&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;SOL&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;入睡潜伏期&lt;/td&gt;&#xA;          &lt;td&gt;关灯后多久睡着&lt;/td&gt;&#xA;          &lt;td&gt;10–20 分钟正常;&amp;gt;30 分钟入睡困难;&amp;lt;5 分钟说明你太困了&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;REM 潜伏期&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;—&lt;/td&gt;&#xA;          &lt;td&gt;睡着后多久第一次进入 REM&lt;/td&gt;&#xA;          &lt;td&gt;70–120 分钟;明显缩短可能提示抑郁&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;WASO&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;入睡后觉醒时间&lt;/td&gt;&#xA;          &lt;td&gt;睡着后又醒过来的总时长&lt;/td&gt;&#xA;          &lt;td&gt;&amp;lt;30 分钟正常&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;觉醒次数&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;—&lt;/td&gt;&#xA;          &lt;td&gt;整夜醒了几次&lt;/td&gt;&#xA;          &lt;td&gt;偶尔几次正常&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;觉醒指数&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Arousal Index&lt;/td&gt;&#xA;          &lt;td&gt;每小时被&amp;quot;惊扰&amp;quot;几次(包括没完全醒的微觉醒)&lt;/td&gt;&#xA;          &lt;td&gt;&amp;lt;10 次/小时&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;&lt;strong&gt;怎么解读自己的报告&lt;/strong&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>搜索</title>
      <link>https://code0xff.org/search/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://code0xff.org/search/</guid>
      <description>搜索结果</description>
    </item>
  </channel>
</rss>
