<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>qsliu&apos;s blog</title><description>A blog about software engineering, systems programming, databases, and distributed systems.</description><link>https://blog.qsliu.dev/</link><item><title>Detaching pg_ducklake from pg_duckdb</title><link>https://pgducklake.select/blog/detach-from-pgduckdb/</link><guid isPermaLink="true">https://pgducklake.select/blog/detach-from-pgduckdb/</guid><pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate><category>database</category></item><item><title>DuckLake: The Modern Lakehouse, The Old Fashioned Way</title><link>https://pgducklake.select/blog/ducklake/</link><guid isPermaLink="true">https://pgducklake.select/blog/ducklake/</guid><pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate><category>database</category></item><item><title>Why Postgres times out on TPC-H Q17 and Q20?</title><link>https://blog.qsliu.dev/post/postgres-tpch-q17-q20/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/postgres-tpch-q17-q20/</guid><pubDate>Mon, 08 Dec 2025 00:00:00 GMT</pubDate></item><item><title>Upgrading Applications</title><link>https://blog.qsliu.dev/post/upgrading-applications/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/upgrading-applications/</guid><description>Notes on keeping applications available while versions, APIs, and schemas evolve.</description><pubDate>Thu, 28 Aug 2025 00:00:00 GMT</pubDate></item><item><title>Dive into Postgres</title><link>https://qsliu2017.github.io/postgres</link><guid isPermaLink="true">https://qsliu2017.github.io/postgres</guid><pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate><category>database</category><category>postgres</category></item><item><title>External Algorithms</title><link>https://blog.qsliu.dev/post/external-algorithms/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/external-algorithms/</guid><pubDate>Sun, 18 May 2025 00:00:00 GMT</pubDate><category>database</category></item><item><title>Linux IOs</title><link>https://blog.qsliu.dev/post/linux-ios/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/linux-ios/</guid><pubDate>Sat, 17 May 2025 00:00:00 GMT</pubDate><category>io_uring</category><category>Linux</category></item><item><title>Zero-copy in Golang</title><link>https://blog.qsliu.dev/post/zerocopy-in-golang/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/zerocopy-in-golang/</guid><pubDate>Sat, 10 May 2025 00:00:00 GMT</pubDate><category>Golang</category></item><item><title>Do Harder Jobs Pay More?</title><link>https://blog.qsliu.dev/post/do-harder-jobs-pay-more/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/do-harder-jobs-pay-more/</guid><pubDate>Wed, 16 Apr 2025 00:00:00 GMT</pubDate></item><item><title>What Software Engineers Can Learn From Air Crashes</title><link>https://blog.qsliu.dev/post/aci/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/aci/</guid><pubDate>Sat, 14 Dec 2024 00:00:00 GMT</pubDate></item><item><title>How to Debug C/C++ with VSCode and Remote LLDB</title><link>https://blog.qsliu.dev/post/debug-c-cpp/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/debug-c-cpp/</guid><pubDate>Wed, 31 Jul 2024 00:00:00 GMT</pubDate><category>How-to</category><category>C</category><category>C++</category></item><item><title>How to Develop C/C++ with VSCode and Clangd</title><link>https://blog.qsliu.dev/post/develop-c-cpp/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/develop-c-cpp/</guid><pubDate>Wed, 31 Jul 2024 00:00:00 GMT</pubDate><category>How-to</category><category>C</category><category>C++</category></item><item><title>First Year of Blogging</title><link>https://blog.qsliu.dev/post/first-year-of-blogging/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/first-year-of-blogging/</guid><pubDate>Sun, 07 Apr 2024 00:00:00 GMT</pubDate></item><item><title>[Note] CMU 15-721</title><link>https://blog.qsliu.dev/post/cmu-15721/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/cmu-15721/</guid><pubDate>Fri, 29 Mar 2024 00:00:00 GMT</pubDate></item><item><title>Physically Representing A Decimal</title><link>https://blog.qsliu.dev/post/sql-decimal/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/sql-decimal/</guid><description>This post introduces the logical definition of the `DECIMAL` data type in SQL and discusses its various physical layouts.</description><pubDate>Tue, 26 Mar 2024 00:00:00 GMT</pubDate><category>SQL</category><category>Apache Arrow</category><category>Data Layout</category></item><item><title>Developing C/C++ is fun!</title><link>https://blog.qsliu.dev/post/developing-c-cpp-is-fun/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/developing-c-cpp-is-fun/</guid><description>How to set up a modern C/C++ development environment</description><pubDate>Wed, 06 Mar 2024 00:00:00 GMT</pubDate><category>C</category><category>C++</category><category>How-to</category></item><item><title>Exploring `context.Context`</title><link>https://blog.qsliu.dev/post/exploring-context/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/exploring-context/</guid><description>Exploring the implementation and best practices of `context` package in Go standard library</description><pubDate>Mon, 04 Mar 2024 00:00:00 GMT</pubDate><category>Golang</category></item><item><title>All&apos;s Well That Ends Well</title><link>https://blog.qsliu.dev/post/alls-well-that-ends-well/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/alls-well-that-ends-well/</guid><description>This post introduces a common pattern in Go, which is useful when several concurrent tasks want to be canceled when any of them failed.</description><pubDate>Sat, 02 Mar 2024 00:00:00 GMT</pubDate><category>Golang</category><category>Code Snippet</category></item><item><title>[Note] 可能性的艺术</title><link>https://blog.qsliu.dev/post/%E5%8F%AF%E8%83%BD%E6%80%A7%E7%9A%84%E8%89%BA%E6%9C%AF/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/%E5%8F%AF%E8%83%BD%E6%80%A7%E7%9A%84%E8%89%BA%E6%9C%AF/</guid><pubDate>Wed, 21 Feb 2024 00:00:00 GMT</pubDate></item><item><title>Safely Use Unsafe</title><link>https://blog.qsliu.dev/post/safely-use-unsafe/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/safely-use-unsafe/</guid><pubDate>Mon, 15 Jan 2024 00:00:00 GMT</pubDate><category>Golang</category></item><item><title>How to Setup GitLab Runner with Cross-Platform Docker Enabled</title><link>https://blog.qsliu.dev/post/how-to-setup-gitlab-runner-with-cross-platform-docker-enabled/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/how-to-setup-gitlab-runner-with-cross-platform-docker-enabled/</guid><pubDate>Mon, 04 Dec 2023 00:00:00 GMT</pubDate><category>How-to</category><category>GitLab</category><category>Docker</category></item><item><title>Understand Git Objects in Relational Model</title><link>https://blog.qsliu.dev/post/git-in-relational-model/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/git-in-relational-model/</guid><description>Understand Git objects in relational model.</description><pubDate>Mon, 27 Nov 2023 00:00:00 GMT</pubDate><category>Git</category></item><item><title>Git Essentials</title><link>https://blog.qsliu.dev/post/git-essentials/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/git-essentials/</guid><description>Git essentials I want my colleagues to know.</description><pubDate>Tue, 24 Oct 2023 00:00:00 GMT</pubDate><category>Git</category></item><item><title>Migrate My Blog to Astro</title><link>https://blog.qsliu.dev/post/migrate-to-astro/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/migrate-to-astro/</guid><pubDate>Mon, 28 Aug 2023 00:00:00 GMT</pubDate><category>Frontend</category><category>SSG</category><category>Hugo</category><category>Astro</category></item><item><title>How to Make a Developer Happy?</title><link>https://blog.qsliu.dev/post/how_to_make_developer_happy/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/how_to_make_developer_happy/</guid><pubDate>Mon, 08 May 2023 00:00:00 GMT</pubDate></item><item><title>Don&apos;t Use ChatGPT</title><link>https://blog.qsliu.dev/post/dont_use_chatgpt/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/dont_use_chatgpt/</guid><description>Use OpenAI&apos;s Playground instead.</description><pubDate>Sun, 07 May 2023 00:00:00 GMT</pubDate><category>OpenAI</category><category>ChatGPT</category><category>GPT</category><category>DeepLearning</category></item><item><title>Random Display A HTML Element</title><link>https://blog.qsliu.dev/post/random_display_a_html_element/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/random_display_a_html_element/</guid><pubDate>Tue, 28 Mar 2023 00:00:00 GMT</pubDate><category>javascript</category><category>html</category><category>hugo</category></item><item><title>Fibonacci O(log n) solution</title><link>https://blog.qsliu.dev/post/fibonacci/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/fibonacci/</guid><pubDate>Tue, 14 Mar 2023 00:00:00 GMT</pubDate></item><item><title>Writing an eBPF Application</title><link>https://blog.qsliu.dev/post/writing_an_ebpf_application/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/writing_an_ebpf_application/</guid><pubDate>Wed, 08 Mar 2023 00:00:00 GMT</pubDate><category>eBPF</category></item><item><title>`bpftrace` demo</title><link>https://blog.qsliu.dev/post/bpftrace_demo/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/bpftrace_demo/</guid><pubDate>Sat, 18 Feb 2023 00:00:00 GMT</pubDate><category>eBPF</category><category>bpftrace</category></item><item><title>6.824 Lab 2: Raft</title><link>https://blog.qsliu.dev/post/6824lab2/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/6824lab2/</guid><pubDate>Thu, 16 Feb 2023 00:00:00 GMT</pubDate><category>Distributed System</category><category>Raft</category></item><item><title>C/C++11 Memory Model</title><link>https://blog.qsliu.dev/post/c_c11_memory_model/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/c_c11_memory_model/</guid><pubDate>Fri, 06 Jan 2023 00:00:00 GMT</pubDate></item><item><title>eBPF 内核功能及其应用</title><link>https://blog.qsliu.dev/post/ebpf_and_applicationzh/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/ebpf_and_applicationzh/</guid><pubDate>Fri, 23 Dec 2022 00:00:00 GMT</pubDate><category>eBPF</category></item><item><title>The `trap` Command in Bash</title><link>https://blog.qsliu.dev/post/trap_command_in_bash/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/trap_command_in_bash/</guid><pubDate>Sun, 11 Dec 2022 00:00:00 GMT</pubDate><category>Bash</category><category>Today I Learned</category></item><item><title>[Note] 《道德与立法原理导论》</title><link>https://blog.qsliu.dev/post/%E9%81%93%E5%BE%B7%E4%B8%8E%E7%AB%8B%E6%B3%95%E5%8E%9F%E7%90%86%E5%AF%BC%E8%AE%BA/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/%E9%81%93%E5%BE%B7%E4%B8%8E%E7%AB%8B%E6%B3%95%E5%8E%9F%E7%90%86%E5%AF%BC%E8%AE%BA/</guid><pubDate>Wed, 23 Nov 2022 00:00:00 GMT</pubDate></item><item><title>The Completely Fair Scheduler</title><link>https://blog.qsliu.dev/post/the-completely-fair-scheduler/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/the-completely-fair-scheduler/</guid><pubDate>Tue, 15 Nov 2022 00:00:00 GMT</pubDate><category>OS</category><category>Linux</category><category>Sched</category></item><item><title>A Processes Synchronize Problem and Barrier Pattern</title><link>https://blog.qsliu.dev/post/proc_sync_barrier_pattern/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/proc_sync_barrier_pattern/</guid><pubDate>Mon, 14 Nov 2022 00:00:00 GMT</pubDate><category>OS</category><category>Concurreny</category><category>Data Structure</category></item><item><title>OLTP/OLAP and Tuple Storage Schemes</title><link>https://blog.qsliu.dev/post/oltp_olap_tuple_storage_schemes/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/oltp_olap_tuple_storage_schemes/</guid><description>Brief about OLTP/OLAP and column/row oriented storage.</description><pubDate>Sun, 13 Nov 2022 00:00:00 GMT</pubDate><category>database</category></item><item><title>[Note] 洛克《政府论》</title><link>https://blog.qsliu.dev/post/%E6%B4%9B%E5%85%8B%E6%94%BF%E5%BA%9C%E8%AE%BA/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/%E6%B4%9B%E5%85%8B%E6%94%BF%E5%BA%9C%E8%AE%BA/</guid><pubDate>Sat, 05 Nov 2022 00:00:00 GMT</pubDate></item><item><title>Locality Principle</title><link>https://blog.qsliu.dev/post/locality_principle/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/locality_principle/</guid><pubDate>Mon, 10 Oct 2022 00:00:00 GMT</pubDate></item><item><title>Operating Systems: The History and the Future</title><link>https://blog.qsliu.dev/post/os_history_and_future/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/os_history_and_future/</guid><pubDate>Mon, 19 Sep 2022 00:00:00 GMT</pubDate><category>OS</category></item><item><title>Postgres XID wraparound failure</title><link>https://blog.qsliu.dev/post/postgres-xid-wraparound-failure/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/postgres-xid-wraparound-failure/</guid><pubDate>Thu, 16 Dec 2021 00:00:00 GMT</pubDate><category>Postgres</category><category>Database</category></item><item><title>GitHub Actions 使用和优化</title><link>https://blog.qsliu.dev/post/github_actions_demo/</link><guid isPermaLink="true">https://blog.qsliu.dev/post/github_actions_demo/</guid><pubDate>Wed, 28 Jul 2021 00:00:00 GMT</pubDate><category>GitHub Actions</category></item></channel></rss>