1<!DOCTYPE html><html lang="en" data-astro-cid-3zuafzni> <head><!-- Global Metadata --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="icon" href="/favicon.ico"> <meta name="generator" content="Astro v7.1.1"> <!-- Astro Nano font preloads --> <link rel="preload" href="/_astro/inter-latin-400-normal.C38fXH4l.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/_astro/inter-latin-500-normal.Cerq10X2.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="/_astro/inter-latin-600-normal.LgqL8muc.woff2" as="font" type="font/woff2" crossorigin> <!-- Canonical URL --> <link rel="canonical" href="https://www.skyzh.dev/blog/"> <!-- Primary Meta Tags --> <title>Blog | Alex Chi Z.</title> <meta name="title" content="Blog | Alex Chi Z."> <meta name="description" content="Alex Chi's personal website"> <!-- Twitter --> <meta property="twitter:card" content="summary"> <meta property="twitter:site" content="iskyzh"> <meta property="twitter:url" content="https://www.skyzh.dev/blog/"> <meta property="twitter:title" content="Blog | Alex Chi Z."> <meta property="twitter:description" content="Alex Chi's personal website"> <meta property="twitter:image" content="https://www.skyzh.dev/images/skyzh.jpeg"> <!-- Open Graph / Facebook --> <meta property="og:type" content="website"> <meta property="og:url" content="https://www.skyzh.dev/blog/"> <meta property="og:title" content="Blog | Alex Chi Z."> <meta property="og:description" content="Alex Chi's personal website"> <meta property="og:image" content="https://www.skyzh.dev/images/skyzh.jpeg"> <!-- sitemap --> <link rel="sitemap" href="/sitemap-index.xml"> <link rel="alternate" type="application/rss+xml" title="Alex Chi Z." href="/rss.xml">
1<script> 2 (() => { 3 document.documentElement.classList.remove("dark"); 4 document.documentElement.dataset.theme = "light"; 5 6 /* Theme preferences are disabled for now. Restore this block with the 7 * controls in Footer.astro to re-enable light/dark/system selection. 8 const preference = localStorage.getItem("theme") || "system"; 9 const dark = preference === "dark" || 10 (preference === "system" && window.matchMedia("(prefers-color-scheme: dark)").matches); 11 document.documentElement.classList.toggle("dark", dark); 12 document.documentElement.dataset.theme = preference; 13 */ 14 })(); 15</script>
15 <!-- Google tag (gtag.js)
vendor: 64 bytes, lines 15-16
15 16<script async src="https://www.googletagmanager.com/gtag/js?id=
16G-812BQ96S8Q
vendor: 12 bytes, line 16
16"></script>
17<script> 18
vendor: 134 bytes, lines 18-22
18window.dataLayer = window.dataLayer || []; 19 function gtag(){dataLayer.push(arguments);} 20 gtag('js', new Date()); 21 22 gtag('config', '
22G-812BQ96S8Q
vendor: 4 bytes, line 22
22');
23</script>
23 -->
23<script async src="https://analytics.umami.is/script.js" data-website-id="b7635e6c-8c66-456d-92fa-b8fed556bde7"></script>
23<link rel="stylesheet" href="/_astro/Header.Dt5Vt96s.css"><style>.post-row[data-astro-cid-geb7tcfo]{grid-template-columns:7.3rem minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.post-row[data-astro-cid-geb7tcfo] time{color:var(--text-muted);font-size:.875rem}.post-card[data-astro-cid-geb7tcfo]{border:1px solid var(--border);border-radius:.55rem;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.8rem .9rem;font-family:Inter,ui-sans-serif,system-ui,sans-serif;text-decoration:none;transition:background-color .18s,border-color .18s,color .18s;display:flex}.post-card[data-astro-cid-geb7tcfo]:hover{border-color:var(--border-strong);background:var(--surface-hover)}.post-copy[data-astro-cid-geb7tcfo]{flex-direction:column;min-width:0;display:flex}.post-copy[data-astro-cid-geb7tcfo] strong[data-astro-cid-geb7tcfo],.post-copy[data-astro-cid-geb7tcfo]>span[data-astro-cid-geb7tcfo]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.post-copy[data-astro-cid-geb7tcfo]>span[data-astro-cid-geb7tcfo]{color:var(--text-muted);font-size:.875rem}.external-marker[data-astro-cid-geb7tcfo]{color:var(--text-muted);margin-left:.35rem;font-size:.875em}svg[data-astro-cid-geb7tcfo]{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;flex:none;width:1.15rem;height:1.15rem;transition:transform .18s}.post-card[data-astro-cid-geb7tcfo]:hover svg[data-astro-cid-geb7tcfo]{transform:translate(.18rem)}.post-row[data-astro-cid-geb7tcfo].compact{grid-template-columns:minmax(0,1fr)}@media (width<=560px){.post-row[data-astro-cid-geb7tcfo]{grid-template-columns:1fr;gap:.35rem}} 24.blog-list[data-astro-cid-3zuafzni]{flex-direction:column;gap:2.75rem;display:flex}.blog-heading[data-astro-cid-3zuafzni]{margin:0;font-weight:600}section[data-astro-cid-3zuafzni],.year-group[data-astro-cid-3zuafzni]{flex-direction:column;gap:1rem;display:flex}h2[data-astro-cid-3zuafzni],h3[data-astro-cid-3zuafzni]{margin:0}ul[data-astro-cid-3zuafzni]{flex-direction:column;gap:.9rem;margin:0;padding:0;list-style:none;display:flex}.previous-posts[data-astro-cid-3zuafzni]{border-top:1px solid var(--border);padding-top:2.75rem} 25</style></head> <body data-astro-cid-3zuafzni> <header data-astro-cid-nen7h5rs> <div class="container"> <div class="header-inner" data-astro-cid-nen7h5rs> <a class="site-name" href="/" data-astro-cid-nen7h5rs>Alex Chi Z.</a> <nav aria-label="Primary navigation" data-astro-cid-nen7h5rs> <a href="/blog/" class="active" data-astro-cid-nen7h5rs="true" data-astro-cid-evkijfd6> blog </a> <span aria-hidden="true" data-astro-cid-nen7h5rs>/</span> <a href="/work/" data-astro-cid-nen7h5rs="true" data-astro-cid-evkijfd6> work </a> <span aria-hidden="true" data-astro-cid-nen7h5rs>/</span> <a href="/cv/" data-astro-cid-nen7h5rs="true" data-astro-cid-evkijfd6> cv </a> </nav> </div> </div> </header> <main data-astro-cid-3zuafzni> <div class="container"> <div class="blog-list" data-astro-cid-3zuafzni> <h1 class="blog-heading" data-astro-cid-3zuafzni>Blog</h1> <section data-astro-cid-3zuafzni> <h2 data-astro-cid-3zuafzni>2025</h2> <ul data-astro-cid-3zuafzni> <li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2025-02-06T17:00:00.000Z"> Feb 6, 2025 </time> <a class="post-card" href="/blog/2025-02-06-optimizer-lesson-01/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> Plan Representation: #1 Lesson Learned from Building an Optimizer </strong> <span data-astro-cid-geb7tcfo>Let's find out the best plan representation for building an extensible query optimizer.</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li> </ul> </section><section data-astro-cid-3zuafzni> <h2 data-astro-cid-3zuafzni>2023</h2> <ul data-astro-cid-3zuafzni> <li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2023-12-31T10:00:00.000Z"> Dec 31, 2023 </time> <a class="post-card" href="/blog/2023-12-31-lsm-kv-separation-overview/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo>
25 Key-Value Separation in LSM Storage Engines </strong> <span data-astro-cid-geb7tcfo>In this blog post, we walk through several different implementations of key-value separation in LSM storage engines.</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2023-12-28T07:00:00.000Z"> Dec 28, 2023 </time> <a class="post-card" href="/blog/2023-12-28-store-of-streaming-states/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> State Store in Streaming Systems </strong> <span data-astro-cid-geb7tcfo>In this blog post, we walk through three different approaches to designing state stores in streaming systems.</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2023-12-20T10:00:00.000Z"> Dec 20, 2023 </time> <a class="post-card" href="/blog/2023-12-20-the-final-semester-in-bustub/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> My Final Semester in BusTub </strong> <span data-astro-cid-geb7tcfo>During Chiâs final semester at CMU, he made many changes to the BusTub project. In this post, he shares the story behind the BusTub MVCC project and his approach to designing a good course project.</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2023-08-11T21:00:00.000Z"> Aug 11, 2023 </time> <a class="post-card" href="/blog/2023-08-11-a-year-in-bustub/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> A Year in BusTub </strong> <span data-astro-cid-geb7tcfo>This blog post revisits everything that has happened in BusTub in the past year and sets the next milestone for the system.</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2023-07-09T17:00:00.000Z"> Jul 9, 2023 </time> <a class="post-card" href="/blog/2023-07-09-blog-update/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> Blog Updates and Reactions Powered by Neon Postgres + Vercel </strong> <span data-astro-cid-geb7tcfo>Chi has updated his blog to use the Astro web framework. You can now react to each post by clicking the reaction buttons at the end; the feature is powered by Vercel Edge Functions and Neon Postgres.</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2023-04-07T04:00:00.000Z"> Apr 7, 2023 </time> <a class="post-card" href="/blog/2023-03-02-bustub-query-processing/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> Query Processing in BusTub </strong> <span data-astro-cid-geb7tcfo>Query Processing in BusTub</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li> </ul> </section><section data-astro-cid-3zuafzni> <h2 data-astro-cid-3zuafzni>2022</h2> <ul data-astro-cid-3zuafzni> <li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-12-28T18:00:00.000Z"> Dec 28, 2022 </time> <a class="post-card" href="/blog/2022-12-28-shared-state-in-risingwave/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> Shared Indexes and Joins in Streaming Databases <span class="external-marker" aria-label="Originally published elsewhere" data-astro-cid-geb7tcfo>â</span> </strong> <span data-astro-cid-geb7tcfo>
25Shared Indexes and Joins in Streaming Databases</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-12-27T21:00:00.000Z"> Dec 27, 2022 </time> <a class="post-card" href="/blog/2022-12-27-mini-lsm/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> MiniLSM: Build an LSM-Tree Storage Engine in a Week! <span class="external-marker" aria-label="Originally published elsewhere" data-astro-cid-geb7tcfo>â</span> </strong> <span data-astro-cid-geb7tcfo>MiniLSM: Build an LSM-Tree Storage Engine in a Week</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-07-12T12:00:00.000Z"> Jul 12, 2022 </time> <a class="post-card" href="/blog/2022-07-12-risedev/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> Developer Experience Counts: Behind the Scenes of RiseDev <span class="external-marker" aria-label="Originally published elsewhere" data-astro-cid-geb7tcfo>â</span> </strong> <span data-astro-cid-geb7tcfo>Developer Experience Counts: Behind the Scenes of RiseDev</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li> </ul> </section> <section class="previous-posts" data-astro-cid-3zuafzni> <h2 data-astro-cid-3zuafzni>Previous posts in Chinese</h2> <div class="year-group" data-astro-cid-3zuafzni> <h3 data-astro-cid-3zuafzni>2023</h3> <ul data-astro-cid-3zuafzni> <li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2023-12-22T16:00:00.000Z"> Dec 22, 2023 </time> <a class="post-card" href="/blog/2023-12-23-third-semester-in-cmu/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> è¿å®å®ç广 CMU ç§æ¸¸è®° <span class="external-marker" aria-label="Originally published elsewhere" data-astro-cid-geb7tcfo>â</span> </strong> <span data-astro-cid-geb7tcfo>è¿å®å®ç广 CMU ç§æ¸¸è®° / CMU 第ä¸å¦æç妿æ»ç»</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2023-05-12T16:00:00.000Z"> May 12, 2023 </time> <a class="post-card" href="/blog/2023-05-13-second-semester-in-cmu/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> è¿å®å®ç广 CMU æ¥æ¸¸è®° <span class="external-marker" aria-label="Originally published elsewhere" data-astro-cid-geb7tcfo>â</span> </strong> <span data-astro-cid-geb7tcfo>è¿å®å®ç广 CMU æ¥æ¸¸è®° / CMU 第äºå¦æç妿æ»ç»</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li> </ul> </div><div class="year-group" data-astro-cid-3zuafzni> <h3 data-astro-cid-3zuafzni>2022</h3> <ul data-astro-cid-3zuafzni> <li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-12-04T16:00:00.000Z"> Dec 4, 2022 </time> <a class="post-card" href="/blog/2022-12-05-first-semester-in-cmu/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> è¿å®å®ç广 CMU 游记 <span class="external-marker" aria-label="Originally published elsewhere" data-astro-cid-geb7tcfo>â</span> </strong> <span data-astro-cid-geb7tcfo>è¿å®å®ç广 CMU 游记 / CMU 第ä¸å¦æç妿æ»ç»</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-10-06T02:00:00.000Z"> Oct 6, 2022 </time> <a class="post-card" href="/blog/2022-10-05-bustub-query-processing/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> BusTub å
»æè®°ï¼ä»è¯¾ç¨é¡¹ç®å° SQL æ°æ®åº </strong> <span data-astro-cid-geb7tcfo>BusTub å
»æè®°ï¼ä»è¯¾ç¨é¡¹ç®å° SQL æ°æ®åº</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-06-18T02:00:00.000Z"> Jun 18, 2022 </time> <a class="post-card" href="/blog/2022-06-18-rusttalk-rust-database/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> RustTalk 第åæï¼ä¸è¿å
çè Rust 䏿°æ®åºç³»ç» <span class="external-marker" aria-label="Originally published elsewhere" data-astro-cid-geb7tcfo>â</span> </strong> <span data-astro-cid-geb7tcfo>RustTalk 第åæï¼ä¸è¿å
çè Rust 䏿°æ®åºç³»ç»</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-05-29T15:00:00.000Z"> May 29, 2022 </time> <a class="post-card" href="/blog/2022-05-29-shared-state-in-risingwave/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> æµå¤ç弿ä¸åºäºå
±äº«ç¶æç´¢å¼ç Delta Join </strong> <span data-astro-cid-geb7tcfo>æµå¤ç弿ä¸åºäºå
±äº«ç¶æç´¢å¼ç Delta Join</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-04-06T16:00:00.000Z"> Apr 6, 2022 </time> <a class="post-card" href="/blog/2022-04-07-master-application/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> 22 Fall åºå½ç³è¯· MSCS çæµæ°´è´¦ <span class="external-marker" aria-label="Originally published elsewhere" data-astro-cid-geb7tcfo>â</span> </strong> <span data-astro-cid-geb7tcfo>22 Fall åºå½ç³è¯· MSCS çæµæ°´è´¦</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-02-01T06:00:00.000Z"> Feb 1, 2022 </time> <a class="post-card" href="/blog/2022-02-01-rust-type-exercise-in-database-executors-final/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> ç¨ Rust åç±»å使 (ä¸ç¯) </strong> <span data-astro-cid-geb7tcfo>
25ç¨ Rust åç±»å使 (ä¸ç¯)</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-01-31T06:00:00.000Z"> Jan 31, 2022 </time> <a class="post-card" href="/blog/2022-01-31-gat-async-trait/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> å¨ Rust ä¸ç¨ GAT æå¨å®ç°é¶å¼é async trait </strong> <span data-astro-cid-geb7tcfo>å¨ Rust ä¸ç¨ GAT æå¨å®ç°é¶å¼é async trait</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-01-24T15:00:00.000Z"> Jan 24, 2022 </time> <a class="post-card" href="/blog/2022-01-24-rust-type-exercise-in-database-executors-middle/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> ç¨ Rust åç±»å使 (ä¸ç¯) </strong> <span data-astro-cid-geb7tcfo>ç¨ Rust åç±»å使 (ä¸ç¯)</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-01-22T08:00:00.000Z"> Jan 22, 2022 </time> <a class="post-card" href="/blog/2022-01-22-rust-type-exercise-in-database-executors/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> ç¨ Rust åç±»å使 (ä¸ç¯) </strong> <span data-astro-cid-geb7tcfo>ç¨ Rust åç±»å使 (ä¸ç¯)</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2022-01-15T14:00:00.000Z"> Jan 15, 2022 </time> <a class="post-card" href="/blog/2022-01-15-store-of-streaming-states/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> æµå¤çç³»ç»ä¸ç¶æç表示ååå¨ </strong> <span data-astro-cid-geb7tcfo>æµå¤çç³»ç»ä¸ç¶æç表示ååå¨</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li> </ul> </div><div class="year-group" data-astro-cid-3zuafzni> <h3 data-astro-cid-3zuafzni>2021</h3> <ul data-astro-cid-3zuafzni> <li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2021-08-07T04:00:00.000Z"> Aug 7, 2021 </time> <a class="post-card" href="/blog/2021-08-07-lsm-kv-separation-overview/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> LSM åå¨å¼æä¸ KV å离çå®ç° </strong> <span data-astro-cid-geb7tcfo>LSM åå¨å¼æä¸ KV å离çå®ç°</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2021-06-14T14:00:00.000Z"> Jun 14, 2021 </time> <a class="post-card" href="/blog/2021-06-14-deep-dive-io-uring/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> io_uring çæ¥å£ä¸å®ç° </strong> <span data-astro-cid-geb7tcfo>io_uring çæ¥å£ä¸å®ç°</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li><li class="post-row" data-astro-cid-geb7tcfo> <time datetime="2021-01-30T09:37:23.000Z"> Jan 30, 2021 </time> <a class="post-card" href="/blog/2021-01-30-async-random-read-with-rust/" data-astro-cid-geb7tcfo> <span class="post-copy" data-astro-cid-geb7tcfo> <strong data-astro-cid-geb7tcfo> å¨ Rust ä¸å®ç°åºäº io_uring ç弿¥éæºè¯»æä»¶ </strong> <span data-astro-cid-geb7tcfo>å¨ Rust ä¸å®ç°åºäº io_uring ç弿¥éæºè¯»æä»¶</span> </span> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-geb7tcfo> <path d="M5 12h14M13 6l6 6-6 6" data-astro-cid-geb7tcfo></path> </svg> </a> </li> </ul> </div> </section> </div> </div> </main> <footer data-astro-cid-jo6i4kqk> <div class="container"> <div class="footer-inner" data-astro-cid-jo6i4kqk> <div data-astro-cid-jo6i4kqk>© 2026 <span aria-hidden="true" data-astro-cid-jo6i4kqk>
25|</span> Alex Chi Z.</div> <div class="footer-actions" data-astro-cid-jo6i4kqk> <button class="theme-button" id="back-to-top" aria-label="Back to top" title="Back to top" data-astro-cid-jo6i4kqk> <svg viewBox="0 0 24 24" aria-hidden="true" data-astro-cid-jo6i4kqk> <path d="m18 15-6-6-6 6" data-astro-cid-jo6i4kqk></path> </svg> </button> </div> </div> </div> </footer>
25<script> 26 /* Theme selection is disabled for now. Restore this block with the 27 * commented controls above and the preference code in BaseHead.astro. 28 const applyTheme = (preference) => { 29 const dark = preference === "dark" || 30 (preference === "system" && window.matchMedia("(prefers-color-scheme: dark)").matches); 31 document.documentElement.classList.toggle("dark", dark); 32 document.documentElement.dataset.theme = preference; 33 }; 34 35 document.querySelectorAll("[data-theme-choice]").forEach((button) => { 36 button.addEventListener("click", () => { 37 const preference = button.dataset.themeChoice; 38 localStorage.setItem("theme", preference); 39 applyTheme(preference); 40 }); 41 }); 42 43 window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", () => { 44 if ((localStorage.getItem("theme") || "system") === "system") { 45 applyTheme("system"); 46 } 47 }); 48 */ 49 50 document.getElementById("back-to-top")?.addEventListener("click", () => { 51 window.scrollTo({ top: 0, behavior: "smooth" }); 52 }); 53</script>
53 </body> </html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.