<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://hk.xbcatm.com/tags/deadlock/</loc><lastmod>2028-04-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/innodb/</loc><lastmod>2028-04-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/innodb/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/innodb/"/></url><url><loc>https://hk.xbcatm.com/posts/mysql-deadlock-innodb-locking/</loc><lastmod>2028-04-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/mysql-deadlock-innodb-locking/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/mysql-deadlock-innodb-locking/"/></url><url><loc>https://hk.xbcatm.com/tags/locking/</loc><lastmod>2028-04-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/mysql/</loc><lastmod>2028-04-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/mysql/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/mysql/"/></url><url><loc>https://hk.xbcatm.com/posts/</loc><lastmod>2028-04-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/"/></url><url><loc>https://hk.xbcatm.com/tags/</loc><lastmod>2028-04-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/"/></url><url><loc>https://hk.xbcatm.com/</loc><lastmod>2028-04-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/"/></url><url><loc>https://hk.xbcatm.com/tags/cache/</loc><lastmod>2028-04-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/dns/</loc><lastmod>2028-04-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/dns/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/dns/"/></url><url><loc>https://hk.xbcatm.com/tags/dnsmasq/</loc><lastmod>2028-04-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/dnsmasq/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/dnsmasq/"/></url><url><loc>https://hk.xbcatm.com/posts/dnsmasq-local-resolver-cache/</loc><lastmod>2028-04-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dnsmasq-local-resolver-cache/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dnsmasq-local-resolver-cache/"/></url><url><loc>https://hk.xbcatm.com/tags/resolver/</loc><lastmod>2028-04-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/linux/</loc><lastmod>2028-04-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/linux/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/linux/"/></url><url><loc>https://hk.xbcatm.com/tags/lvm/</loc><lastmod>2028-04-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/lvm/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/lvm/"/></url><url><loc>https://hk.xbcatm.com/posts/lvm-logical-volume-snapshot/</loc><lastmod>2028-04-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/lvm-logical-volume-snapshot/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/lvm-logical-volume-snapshot/"/></url><url><loc>https://hk.xbcatm.com/tags/snapshot/</loc><lastmod>2028-04-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/storage/</loc><lastmod>2028-04-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/consul/</loc><lastmod>2028-04-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/consul/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/consul/"/></url><url><loc>https://hk.xbcatm.com/posts/consul-service-discovery-health/</loc><lastmod>2028-04-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/consul-service-discovery-health/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/consul-service-discovery-health/"/></url><url><loc>https://hk.xbcatm.com/tags/discovery/</loc><lastmod>2028-04-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/discovery/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/discovery/"/></url><url><loc>https://hk.xbcatm.com/tags/health/</loc><lastmod>2028-04-06T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/service/</loc><lastmod>2028-04-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/service/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/service/"/></url><url><loc>https://hk.xbcatm.com/tags/kubernetes/</loc><lastmod>2028-04-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/kubernetes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/kubernetes/"/></url><url><loc>https://hk.xbcatm.com/tags/requests/</loc><lastmod>2028-04-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/requests/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/requests/"/></url><url><loc>https://hk.xbcatm.com/tags/resources/</loc><lastmod>2028-04-02T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/scheduler/</loc><lastmod>2028-04-02T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-scheduling-pod-requests/</loc><lastmod>2028-04-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-scheduling-pod-requests/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-scheduling-pod-requests/"/></url><url><loc>https://hk.xbcatm.com/posts/otel-baggage-context-propagation/</loc><lastmod>2028-03-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/otel-baggage-context-propagation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/otel-baggage-context-propagation/"/></url><url><loc>https://hk.xbcatm.com/tags/observability/</loc><lastmod>2028-03-27T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/opentelemetry/</loc><lastmod>2028-03-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/opentelemetry/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/opentelemetry/"/></url><url><loc>https://hk.xbcatm.com/tags/otel/</loc><lastmod>2028-03-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/otel/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/otel/"/></url><url><loc>https://hk.xbcatm.com/tags/tracing/</loc><lastmod>2028-03-27T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/network/</loc><lastmod>2028-03-24T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/sysctl/</loc><lastmod>2028-03-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/sysctl/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/sysctl/"/></url><url><loc>https://hk.xbcatm.com/tags/tcp/</loc><lastmod>2028-03-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/tcp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/tcp/"/></url><url><loc>https://hk.xbcatm.com/posts/sysctl-tcp-max-sync-backlog/</loc><lastmod>2028-03-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/sysctl-tcp-max-sync-backlog/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/sysctl-tcp-max-sync-backlog/"/></url><url><loc>https://hk.xbcatm.com/tags/recovery/</loc><lastmod>2028-03-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/recovery/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/recovery/"/></url><url><loc>https://hk.xbcatm.com/tags/zfs/</loc><lastmod>2028-03-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/zfs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/zfs/"/></url><url><loc>https://hk.xbcatm.com/posts/zfs-snapshots-multiversion-safety/</loc><lastmod>2028-03-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/zfs-snapshots-multiversion-safety/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/zfs-snapshots-multiversion-safety/"/></url><url><loc>https://hk.xbcatm.com/tags/draft/</loc><lastmod>2028-03-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/hugo/</loc><lastmod>2028-03-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/hugo/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/hugo/"/></url><url><loc>https://hk.xbcatm.com/posts/hugo-draft-release-tag/</loc><lastmod>2028-03-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/hugo-draft-release-tag/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/hugo-draft-release-tag/"/></url><url><loc>https://hk.xbcatm.com/tags/release/</loc><lastmod>2028-03-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/release/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/release/"/></url><url><loc>https://hk.xbcatm.com/tags/static-site/</loc><lastmod>2028-03-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/io/</loc><lastmod>2028-03-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/io/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/io/"/></url><url><loc>https://hk.xbcatm.com/tags/iotop/</loc><lastmod>2028-03-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/iotop/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/iotop/"/></url><url><loc>https://hk.xbcatm.com/posts/linux-iotop-io-waiter/</loc><lastmod>2028-03-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-iotop-io-waiter/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-iotop-io-waiter/"/></url><url><loc>https://hk.xbcatm.com/tags/monitoring/</loc><lastmod>2028-03-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/monitoring/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/monitoring/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-microcaching-fresh-ttl/</loc><lastmod>2028-03-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-microcaching-fresh-ttl/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-microcaching-fresh-ttl/"/></url><url><loc>https://hk.xbcatm.com/tags/microcaching/</loc><lastmod>2028-03-12T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/nginx/</loc><lastmod>2028-03-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/nginx/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/nginx/"/></url><url><loc>https://hk.xbcatm.com/tags/proxy/</loc><lastmod>2028-03-12T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/consensus/</loc><lastmod>2028-03-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/distributed/</loc><lastmod>2028-03-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/etcd/</loc><lastmod>2028-03-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/etcd/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/etcd/"/></url><url><loc>https://hk.xbcatm.com/posts/etcd-leader-election-raft/</loc><lastmod>2028-03-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/etcd-leader-election-raft/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/etcd-leader-election-raft/"/></url><url><loc>https://hk.xbcatm.com/tags/raft/</loc><lastmod>2028-03-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/raft/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/raft/"/></url><url><loc>https://hk.xbcatm.com/tags/bpf/</loc><lastmod>2028-03-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/bpf/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/bpf/"/></url><url><loc>https://hk.xbcatm.com/posts/bpf-tracepoint-perf-profiling/</loc><lastmod>2028-03-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/bpf-tracepoint-perf-profiling/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/bpf-tracepoint-perf-profiling/"/></url><url><loc>https://hk.xbcatm.com/tags/ebpf/</loc><lastmod>2028-03-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ebpf/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ebpf/"/></url><url><loc>https://hk.xbcatm.com/tags/profiling/</loc><lastmod>2028-03-06T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/covering/</loc><lastmod>2028-03-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/index/</loc><lastmod>2028-03-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/mysql-covering-index-query-answer/</loc><lastmod>2028-03-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/mysql-covering-index-query-answer/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/mysql-covering-index-query-answer/"/></url><url><loc>https://hk.xbcatm.com/tags/query/</loc><lastmod>2028-03-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/dns-ttl-record-resolution-tradeoff/</loc><lastmod>2028-03-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dns-ttl-record-resolution-tradeoff/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dns-ttl-record-resolution-tradeoff/"/></url><url><loc>https://hk.xbcatm.com/tags/ttl/</loc><lastmod>2028-03-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ttl/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ttl/"/></url><url><loc>https://hk.xbcatm.com/tags/bash/</loc><lastmod>2028-02-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/bash/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/bash/"/></url><url><loc>https://hk.xbcatm.com/posts/linux-bash-history-session/</loc><lastmod>2028-02-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-bash-history-session/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-bash-history-session/"/></url><url><loc>https://hk.xbcatm.com/tags/history/</loc><lastmod>2028-02-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/shell/</loc><lastmod>2028-02-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/shell/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/shell/"/></url><url><loc>https://hk.xbcatm.com/tags/compatibility/</loc><lastmod>2028-02-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/grpc/</loc><lastmod>2028-02-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/grpc/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/grpc/"/></url><url><loc>https://hk.xbcatm.com/tags/protobuf/</loc><lastmod>2028-02-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/protobuf/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/protobuf/"/></url><url><loc>https://hk.xbcatm.com/posts/protobuf-grpc-schema-evolution/</loc><lastmod>2028-02-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/protobuf-grpc-schema-evolution/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/protobuf-grpc-schema-evolution/"/></url><url><loc>https://hk.xbcatm.com/tags/schema/</loc><lastmod>2028-02-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/schema/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/schema/"/></url><url><loc>https://hk.xbcatm.com/tags/cleanup/</loc><lastmod>2028-02-25T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/cronjob/</loc><lastmod>2028-02-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/cronjob/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/cronjob/"/></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-cronjob-cleanup-hooks/</loc><lastmod>2028-02-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-cronjob-cleanup-hooks/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-cronjob-cleanup-hooks/"/></url><url><loc>https://hk.xbcatm.com/posts/redis-hash-field-access/</loc><lastmod>2028-02-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-hash-field-access/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-hash-field-access/"/></url><url><loc>https://hk.xbcatm.com/tags/data/</loc><lastmod>2028-02-24T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/hash/</loc><lastmod>2028-02-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/hash/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/hash/"/></url><url><loc>https://hk.xbcatm.com/tags/redis/</loc><lastmod>2028-02-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/redis/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/redis/"/></url><url><loc>https://hk.xbcatm.com/tags/dashboard/</loc><lastmod>2028-02-23T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/grafana/</loc><lastmod>2028-02-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/grafana/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/grafana/"/></url><url><loc>https://hk.xbcatm.com/posts/grafana-dashboard-template-variables/</loc><lastmod>2028-02-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/grafana-dashboard-template-variables/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/grafana-dashboard-template-variables/"/></url><url><loc>https://hk.xbcatm.com/tags/variables/</loc><lastmod>2028-02-23T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/alerting/</loc><lastmod>2028-02-22T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/alertmanager/</loc><lastmod>2028-02-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/alertmanager/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/alertmanager/"/></url><url><loc>https://hk.xbcatm.com/posts/prometheus-alertmanager-annotations/</loc><lastmod>2028-02-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-alertmanager-annotations/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-alertmanager-annotations/"/></url><url><loc>https://hk.xbcatm.com/tags/prometheus/</loc><lastmod>2028-02-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/prometheus/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/prometheus/"/></url><url><loc>https://hk.xbcatm.com/tags/compose/</loc><lastmod>2028-02-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/compose/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/compose/"/></url><url><loc>https://hk.xbcatm.com/tags/docker/</loc><lastmod>2028-02-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/docker/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/docker/"/></url><url><loc>https://hk.xbcatm.com/posts/docker-compose-healthcheck-prometheus/</loc><lastmod>2028-02-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/docker-compose-healthcheck-prometheus/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/docker-compose-healthcheck-prometheus/"/></url><url><loc>https://hk.xbcatm.com/tags/healthcheck/</loc><lastmod>2028-02-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/orchestrator/</loc><lastmod>2028-02-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/docker-image-layer-caching/</loc><lastmod>2028-02-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/docker-image-layer-caching/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/docker-image-layer-caching/"/></url><url><loc>https://hk.xbcatm.com/tags/image/</loc><lastmod>2028-02-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/layer/</loc><lastmod>2028-02-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/container/</loc><lastmod>2028-02-19T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/namespace/</loc><lastmod>2028-02-19T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/linux-ip-netns-network-namespace/</loc><lastmod>2028-02-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-ip-netns-network-namespace/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-ip-netns-network-namespace/"/></url><url><loc>https://hk.xbcatm.com/tags/boot/</loc><lastmod>2028-02-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/dependencies/</loc><lastmod>2028-02-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/systemd/</loc><lastmod>2028-02-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/systemd/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/systemd/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-dependencies-ordered-start/</loc><lastmod>2028-02-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-dependencies-ordered-start/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-dependencies-ordered-start/"/></url><url><loc>https://hk.xbcatm.com/tags/unit/</loc><lastmod>2028-02-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/etag/</loc><lastmod>2028-02-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/etag/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/etag/"/></url><url><loc>https://hk.xbcatm.com/tags/http/</loc><lastmod>2028-02-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/http/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/http/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-caching-etag-if-modified/</loc><lastmod>2028-02-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-caching-etag-if-modified/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-caching-etag-if-modified/"/></url><url><loc>https://hk.xbcatm.com/tags/locks/</loc><lastmod>2028-02-16T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-lock-timeout-retry/</loc><lastmod>2028-02-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-lock-timeout-retry/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-lock-timeout-retry/"/></url><url><loc>https://hk.xbcatm.com/tags/postgres/</loc><lastmod>2028-02-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/postgres/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/postgres/"/></url><url><loc>https://hk.xbcatm.com/tags/timeout/</loc><lastmod>2028-02-16T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/transactions/</loc><lastmod>2028-02-16T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-partial-index-filter/</loc><lastmod>2028-02-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-partial-index-filter/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-partial-index-filter/"/></url><url><loc>https://hk.xbcatm.com/tags/tuning/</loc><lastmod>2028-02-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/debug/</loc><lastmod>2028-02-14T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/strace/</loc><lastmod>2028-02-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/strace/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/strace/"/></url><url><loc>https://hk.xbcatm.com/posts/linux-strace-system-calls/</loc><lastmod>2028-02-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-strace-system-calls/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-strace-system-calls/"/></url><url><loc>https://hk.xbcatm.com/tags/partition/</loc><lastmod>2028-02-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-partition-pruning-explained/</loc><lastmod>2028-02-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-partition-pruning-explained/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-partition-pruning-explained/"/></url><url><loc>https://hk.xbcatm.com/tags/pruning/</loc><lastmod>2028-02-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/http2/</loc><lastmod>2028-02-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/http2/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/http2/"/></url><url><loc>https://hk.xbcatm.com/tags/http3/</loc><lastmod>2028-02-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/http3/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/http3/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-http3-http2-fallback/</loc><lastmod>2028-02-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-http3-http2-fallback/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-http3-http2-fallback/"/></url><url><loc>https://hk.xbcatm.com/tags/quic/</loc><lastmod>2028-02-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/quic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/quic/"/></url><url><loc>https://hk.xbcatm.com/tags/cgroup/</loc><lastmod>2028-02-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/cgroup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/cgroup/"/></url><url><loc>https://hk.xbcatm.com/posts/kubelet-pod-cgroup-budget/</loc><lastmod>2028-02-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubelet-pod-cgroup-budget/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubelet-pod-cgroup-budget/"/></url><url><loc>https://hk.xbcatm.com/tags/limits/</loc><lastmod>2028-02-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/limits/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/limits/"/></url><url><loc>https://hk.xbcatm.com/tags/sql/</loc><lastmod>2028-02-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/sql/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/sql/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-table-partitioning-ranges/</loc><lastmod>2028-02-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-table-partitioning-ranges/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-table-partitioning-ranges/"/></url><url><loc>https://hk.xbcatm.com/tags/agent/</loc><lastmod>2028-02-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/agent/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/agent/"/></url><url><loc>https://hk.xbcatm.com/posts/linux-ssh-agent-forwarding/</loc><lastmod>2028-02-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-ssh-agent-forwarding/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-ssh-agent-forwarding/"/></url><url><loc>https://hk.xbcatm.com/tags/security/</loc><lastmod>2028-02-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/security/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/security/"/></url><url><loc>https://hk.xbcatm.com/tags/ssh/</loc><lastmod>2028-02-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ssh/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ssh/"/></url><url><loc>https://hk.xbcatm.com/tags/window/</loc><lastmod>2028-02-08T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-window-functions-rank/</loc><lastmod>2028-02-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-window-functions-rank/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-window-functions-rank/"/></url><url><loc>https://hk.xbcatm.com/tags/sni/</loc><lastmod>2028-02-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/sni/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/sni/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-ssl-sni-vhosts/</loc><lastmod>2028-02-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-ssl-sni-vhosts/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-ssl-sni-vhosts/"/></url><url><loc>https://hk.xbcatm.com/tags/tls/</loc><lastmod>2028-02-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/tls/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/tls/"/></url><url><loc>https://hk.xbcatm.com/tags/messaging/</loc><lastmod>2028-02-06T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/pubsub/</loc><lastmod>2028-02-06T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-pubsub-vs-streams/</loc><lastmod>2028-02-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-pubsub-vs-streams/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-pubsub-vs-streams/"/></url><url><loc>https://hk.xbcatm.com/tags/streams/</loc><lastmod>2028-02-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/streams/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/streams/"/></url><url><loc>https://hk.xbcatm.com/tags/consumer/</loc><lastmod>2028-02-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/queue/</loc><lastmod>2028-02-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-streams-consumer-group/</loc><lastmod>2028-02-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-streams-consumer-group/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-streams-consumer-group/"/></url><url><loc>https://hk.xbcatm.com/tags/autovacuum/</loc><lastmod>2028-02-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-autovacuum-write-tables/</loc><lastmod>2028-02-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-autovacuum-write-tables/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-autovacuum-write-tables/"/></url><url><loc>https://hk.xbcatm.com/tags/cordon/</loc><lastmod>2028-02-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-cordon-drain-node/</loc><lastmod>2028-02-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-cordon-drain-node/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-cordon-drain-node/"/></url><url><loc>https://hk.xbcatm.com/tags/drain/</loc><lastmod>2028-02-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-primary-key-surrogate/</loc><lastmod>2028-02-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-primary-key-surrogate/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-primary-key-surrogate/"/></url><url><loc>https://hk.xbcatm.com/tags/key/</loc><lastmod>2028-02-02T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/primary/</loc><lastmod>2028-02-02T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/socket/</loc><lastmod>2028-02-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/socket/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/socket/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-socket-activation-ka/</loc><lastmod>2028-02-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-socket-activation-ka/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-socket-activation-ka/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-query-slow-recheck/</loc><lastmod>2028-01-31T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-query-slow-recheck/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-query-slow-recheck/"/></url><url><loc>https://hk.xbcatm.com/tags/explain/</loc><lastmod>2028-01-31T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/explain/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/explain/"/></url><url><loc>https://hk.xbcatm.com/tags/compression/</loc><lastmod>2028-01-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-gzip-http2-berr/</loc><lastmod>2028-01-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-gzip-http2-berr/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-gzip-http2-berr/"/></url><url><loc>https://hk.xbcatm.com/tags/memory/</loc><lastmod>2028-01-27T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-mmap-io-pagecache/</loc><lastmod>2028-01-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-mmap-io-pagecache/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-mmap-io-pagecache/"/></url><url><loc>https://hk.xbcatm.com/tags/recording/</loc><lastmod>2028-01-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/prometheus-recording-rules-cache/</loc><lastmod>2028-01-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-recording-rules-cache/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-recording-rules-cache/"/></url><url><loc>https://hk.xbcatm.com/tags/rule/</loc><lastmod>2028-01-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/geo/</loc><lastmod>2028-01-25T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-geospatial-queries/</loc><lastmod>2028-01-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-geospatial-queries/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-geospatial-queries/"/></url><url><loc>https://hk.xbcatm.com/tags/spatial/</loc><lastmod>2028-01-25T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-hash-index-update/</loc><lastmod>2028-01-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-hash-index-update/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-hash-index-update/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-redirect-rewrite-when/</loc><lastmod>2028-01-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-redirect-rewrite-when/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-redirect-rewrite-when/"/></url><url><loc>https://hk.xbcatm.com/tags/redirect/</loc><lastmod>2028-01-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/latency/</loc><lastmod>2028-01-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-perf-pipelining-roundtrip/</loc><lastmod>2028-01-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-perf-pipelining-roundtrip/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-perf-pipelining-roundtrip/"/></url><url><loc>https://hk.xbcatm.com/tags/pipelining/</loc><lastmod>2028-01-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/pipelining/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/pipeline/"/></url><url><loc>https://hk.xbcatm.com/tags/lateral/</loc><lastmod>2028-01-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/lateral/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/lateral/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-lateral-join-unfolding/</loc><lastmod>2028-01-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-lateral-join-unfolding/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-lateral-join-unfolding/"/></url><url><loc>https://hk.xbcatm.com/tags/git/</loc><lastmod>2028-01-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/git/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/git/"/></url><url><loc>https://hk.xbcatm.com/tags/merge/</loc><lastmod>2028-01-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/git-merge-vs-rebase/</loc><lastmod>2028-01-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-merge-vs-rebase/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-merge-vs-rebase/"/></url><url><loc>https://hk.xbcatm.com/tags/rebase/</loc><lastmod>2028-01-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-location-prefix-match/</loc><lastmod>2028-01-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-location-prefix-match/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-location-prefix-match/"/></url><url><loc>https://hk.xbcatm.com/tags/location/</loc><lastmod>2028-01-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/location/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/location/"/></url><url><loc>https://hk.xbcatm.com/tags/routing/</loc><lastmod>2028-01-17T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/backup/</loc><lastmod>2028-01-14T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/pg_dump/</loc><lastmod>2028-01-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/pg_dump/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/pg_dump/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-pg_dump-consistent-backup/</loc><lastmod>2028-01-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-pg_dump-consistent-backup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-pg_dump-consistent-backup/"/></url><url><loc>https://hk.xbcatm.com/tags/functions/</loc><lastmod>2028-01-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-now-vs-transaction-timestamp/</loc><lastmod>2028-01-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-now-vs-transaction-timestamp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-now-vs-transaction-timestamp/"/></url><url><loc>https://hk.xbcatm.com/tags/time/</loc><lastmod>2028-01-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/cron/</loc><lastmod>2028-01-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/cron/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/cron/"/></url><url><loc>https://hk.xbcatm.com/posts/linux-cron-system-tables/</loc><lastmod>2028-01-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-cron-system-tables/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-cron-system-tables/"/></url><url><loc>https://hk.xbcatm.com/tags/atomic/</loc><lastmod>2028-01-11T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/lua/</loc><lastmod>2028-01-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/lua/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/lua/"/></url><url><loc>https://hk.xbcatm.com/posts/redis-lua-atomically/</loc><lastmod>2028-01-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-lua-atomically/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-lua-atomically/"/></url><url><loc>https://hk.xbcatm.com/tags/cardinality/</loc><lastmod>2028-01-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/prometheus-labels-high-cardinality/</loc><lastmod>2028-01-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-labels-high-cardinality/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-labels-high-cardinality/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-checkpoint-wal-flush/</loc><lastmod>2028-01-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-checkpoint-wal-flush/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-checkpoint-wal-flush/"/></url><url><loc>https://hk.xbcatm.com/tags/checkpoint/</loc><lastmod>2028-01-06T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/limit_req/</loc><lastmod>2028-01-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-limit-conn-burst/</loc><lastmod>2028-01-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-limit-conn-burst/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-limit-conn-burst/"/></url><url><loc>https://hk.xbcatm.com/tags/rate/</loc><lastmod>2028-01-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-list-vs-sorted-set/</loc><lastmod>2028-01-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-list-vs-sorted-set/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-list-vs-sorted-set/"/></url><url><loc>https://hk.xbcatm.com/tags/list/</loc><lastmod>2028-01-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/sortedset/</loc><lastmod>2028-01-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/space/</loc><lastmod>2028-01-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-vacuum-full-compaction/</loc><lastmod>2028-01-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-vacuum-full-compaction/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-vacuum-full-compaction/"/></url><url><loc>https://hk.xbcatm.com/tags/scripting/</loc><lastmod>2027-12-31T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/shell-word-splitting-inserts-separators/</loc><lastmod>2027-12-31T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-word-splitting-inserts-separators/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-word-splitting-inserts-separators/"/></url><url><loc>https://hk.xbcatm.com/posts/dns-aaaa-pointer-names-ipv6-address/</loc><lastmod>2027-12-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dns-aaaa-pointer-names-ipv6-address/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dns-aaaa-pointer-names-ipv6-address/"/></url><url><loc>https://hk.xbcatm.com/tags/ipv6/</loc><lastmod>2027-12-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ipv6/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ipv6/"/></url><url><loc>https://hk.xbcatm.com/posts/git-merge-diverges-then-joins/</loc><lastmod>2027-12-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-merge-diverges-then-joins/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-merge-diverges-then-joins/"/></url><url><loc>https://hk.xbcatm.com/tags/version-control/</loc><lastmod>2027-12-29T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/congestion/</loc><lastmod>2027-12-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/tcp-slow-start-doubles-the-window/</loc><lastmod>2027-12-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-slow-start-doubles-the-window/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-slow-start-doubles-the-window/"/></url><url><loc>https://hk.xbcatm.com/tags/config/</loc><lastmod>2027-12-27T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-location-prefix-wins-order/</loc><lastmod>2027-12-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-location-prefix-wins-order/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-location-prefix-wins-order/"/></url><url><loc>https://hk.xbcatm.com/tags/web/</loc><lastmod>2027-12-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/web/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/web/"/></url><url><loc>https://hk.xbcatm.com/posts/redis-expire-marks-keys-for-eviction/</loc><lastmod>2027-12-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-expire-marks-keys-for-eviction/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-expire-marks-keys-for-eviction/"/></url><url><loc>https://hk.xbcatm.com/tags/metrics/</loc><lastmod>2027-12-24T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/prometheus-rate-flattens-the-slope/</loc><lastmod>2027-12-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-rate-flattens-the-slope/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-rate-flattens-the-slope/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-partitions-split-tables/</loc><lastmod>2027-12-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-partitions-split-tables/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-partitions-split-tables/"/></url><url><loc>https://hk.xbcatm.com/tags/autoscaling/</loc><lastmod>2027-12-22T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/scaling/</loc><lastmod>2027-12-22T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/k8s-hpa-scales-on-demand-metric/</loc><lastmod>2027-12-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-hpa-scales-on-demand-metric/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-hpa-scales-on-demand-metric/"/></url><url><loc>https://hk.xbcatm.com/posts/linux-hugepages-bigger-pages-fewer-tlbs/</loc><lastmod>2027-12-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-hugepages-bigger-pages-fewer-tlbs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-hugepages-bigger-pages-fewer-tlbs/"/></url><url><loc>https://hk.xbcatm.com/tags/performance/</loc><lastmod>2027-12-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/http-cache-control-directs-reuse/</loc><lastmod>2027-12-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-cache-control-directs-reuse/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-cache-control-directs-reuse/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-cte-queries-then-compose/</loc><lastmod>2027-12-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-cte-queries-then-compose/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-cte-queries-then-compose/"/></url><url><loc>https://hk.xbcatm.com/tags/kernel/</loc><lastmod>2027-12-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/linux-memory-overcommit-policy/</loc><lastmod>2027-12-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-memory-overcommit-policy/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-memory-overcommit-policy/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-cronjob-schedules-batch-work/</loc><lastmod>2027-12-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-cronjob-schedules-batch-work/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-cronjob-schedules-batch-work/"/></url><url><loc>https://hk.xbcatm.com/tags/schedule/</loc><lastmod>2027-12-17T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-explain-analyze-runs-the-query/</loc><lastmod>2027-12-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-explain-analyze-runs-the-query/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-explain-analyze-runs-the-query/"/></url><url><loc>https://hk.xbcatm.com/posts/bloom-filters-answer-maybe-cheaply/</loc><lastmod>2027-12-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/bloom-filters-answer-maybe-cheaply/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/bloom-filters-answer-maybe-cheaply/"/></url><url><loc>https://hk.xbcatm.com/tags/bloom/</loc><lastmod>2027-12-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/caching/</loc><lastmod>2027-12-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/caching/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/caching/"/></url><url><loc>https://hk.xbcatm.com/tags/datastructure/</loc><lastmod>2027-12-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/filesystem-xattr-tags-a-file-with-metadata/</loc><lastmod>2027-12-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/filesystem-xattr-tags-a-file-with-metadata/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/filesystem-xattr-tags-a-file-with-metadata/"/></url><url><loc>https://hk.xbcatm.com/tags/filesystem/</loc><lastmod>2027-12-14T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/metadata/</loc><lastmod>2027-12-14T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/xattr/</loc><lastmod>2027-12-14T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/connect/</loc><lastmod>2027-12-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/connect/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/connect/"/></url><url><loc>https://hk.xbcatm.com/posts/http-connect-tunnels-bifurcated-flows/</loc><lastmod>2027-12-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-connect-tunnels-bifurcated-flows/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-connect-tunnels-bifurcated-flows/"/></url><url><loc>https://hk.xbcatm.com/posts/pg-stat-statements-spots-hot-queries/</loc><lastmod>2027-12-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/pg-stat-statements-spots-hot-queries/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/pg-stat-statements-spots-hot-queries/"/></url><url><loc>https://hk.xbcatm.com/posts/git-stash-is-a-detour-not-a-delete/</loc><lastmod>2027-12-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-stash-is-a-detour-not-a-delete/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-stash-is-a-detour-not-a-delete/"/></url><url><loc>https://hk.xbcatm.com/tags/stash/</loc><lastmod>2027-12-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/stash/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/stash/"/></url><url><loc>https://hk.xbcatm.com/tags/workflow/</loc><lastmod>2027-12-11T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/systemd-tmpfiles-prunes-temp-trees/</loc><lastmod>2027-12-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-tmpfiles-prunes-temp-trees/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-tmpfiles-prunes-temp-trees/"/></url><url><loc>https://hk.xbcatm.com/tags/tmpfiles/</loc><lastmod>2027-12-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/tmpfiles/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/tmpfiles/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-node-affinity-pins-workloads/</loc><lastmod>2027-12-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-node-affinity-pins-workloads/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-node-affinity-pins-workloads/"/></url><url><loc>https://hk.xbcatm.com/tags/nodes/</loc><lastmod>2027-12-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/scheduling/</loc><lastmod>2027-12-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/prometheus-alert-routing-to-recipients/</loc><lastmod>2027-12-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-alert-routing-to-recipients/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-alert-routing-to-recipients/"/></url><url><loc>https://hk.xbcatm.com/tags/sre/</loc><lastmod>2027-12-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/sre/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/sre/"/></url><url><loc>https://hk.xbcatm.com/tags/buffering/</loc><lastmod>2027-12-07T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-proxy-buffering-decouples-io/</loc><lastmod>2027-12-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-proxy-buffering-decouples-io/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-proxy-buffering-decouples-io/"/></url><url><loc>https://hk.xbcatm.com/tags/ocsp/</loc><lastmod>2027-12-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ocsp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ocsp/"/></url><url><loc>https://hk.xbcatm.com/posts/ocsp-stapling-cheap-tiny-check/</loc><lastmod>2027-12-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/ocsp-stapling-cheap-tiny-check/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/ocsp-stapling-cheap-tiny-check/"/></url><url><loc>https://hk.xbcatm.com/tags/infrastructure/</loc><lastmod>2027-12-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/dns-zone-transfer-replicates-answers/</loc><lastmod>2027-12-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dns-zone-transfer-replicates-answers/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dns-zone-transfer-replicates-answers/"/></url><url><loc>https://hk.xbcatm.com/tags/zone-transfer/</loc><lastmod>2027-12-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/database/</loc><lastmod>2027-12-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/json/</loc><lastmod>2027-12-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/json/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/json/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-jsonb-vs-json/</loc><lastmod>2027-12-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-jsonb-vs-json/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-jsonb-vs-json/"/></url><url><loc>https://hk.xbcatm.com/posts/cache-freshness-the-clock-says/</loc><lastmod>2027-12-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cache-freshness-the-clock-says/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cache-freshness-the-clock-says/"/></url><url><loc>https://hk.xbcatm.com/tags/headers/</loc><lastmod>2027-12-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/tcp-window-scaling-covers-long-fat-paths/</loc><lastmod>2027-12-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-window-scaling-covers-long-fat-paths/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-window-scaling-covers-long-fat-paths/"/></url><url><loc>https://hk.xbcatm.com/posts/token-bucket-smooths-the-rate/</loc><lastmod>2027-12-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/token-bucket-smooths-the-rate/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/token-bucket-smooths-the-rate/"/></url><url><loc>https://hk.xbcatm.com/tags/capacity/</loc><lastmod>2027-12-01T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/rate-limiting/</loc><lastmod>2027-12-01T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/fencing-token-guards-stale-leaders/</loc><lastmod>2027-11-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/fencing-token-guards-stale-leaders/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/fencing-token-guards-stale-leaders/"/></url><url><loc>https://hk.xbcatm.com/tags/coordination/</loc><lastmod>2027-11-30T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/distributed-systems/</loc><lastmod>2027-11-30T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/args/</loc><lastmod>2027-11-29T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/shell-positional-arguments-slot-the-cli/</loc><lastmod>2027-11-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-positional-arguments-slot-the-cli/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-positional-arguments-slot-the-cli/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-oneshot-runs-then-exits/</loc><lastmod>2027-11-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-oneshot-runs-then-exits/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-oneshot-runs-then-exits/"/></url><url><loc>https://hk.xbcatm.com/tags/units/</loc><lastmod>2027-11-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/deploy/</loc><lastmod>2027-11-27T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/k8s-rolling-update-is-a-strategy/</loc><lastmod>2027-11-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-rolling-update-is-a-strategy/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-rolling-update-is-a-strategy/"/></url><url><loc>https://hk.xbcatm.com/tags/rolling/</loc><lastmod>2027-11-27T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/cluster/</loc><lastmod>2027-11-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-cluster-shards-keys-across-nodes/</loc><lastmod>2027-11-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-cluster-shards-keys-across-nodes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-cluster-shards-keys-across-nodes/"/></url><url><loc>https://hk.xbcatm.com/tags/sharding/</loc><lastmod>2027-11-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/cherry-pick/</loc><lastmod>2027-11-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/cherry-pick/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/cherry-pick/"/></url><url><loc>https://hk.xbcatm.com/posts/git-cherry-pick-applies-a-diff/</loc><lastmod>2027-11-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-cherry-pick-applies-a-diff/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-cherry-pick-applies-a-diff/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-advisory-locks-name-a-lock/</loc><lastmod>2027-11-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-advisory-locks-name-a-lock/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-advisory-locks-name-a-lock/"/></url><url><loc>https://hk.xbcatm.com/tags/concurrency/</loc><lastmod>2027-11-24T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/http-accept-negotiates-the-reply/</loc><lastmod>2027-11-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-accept-negotiates-the-reply/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-accept-negotiates-the-reply/"/></url><url><loc>https://hk.xbcatm.com/tags/api/</loc><lastmod>2027-11-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/api/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/api/"/></url><url><loc>https://hk.xbcatm.com/tags/content-negotiation/</loc><lastmod>2027-11-23T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/cache-stampede-when-expiry-syncs/</loc><lastmod>2027-11-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cache-stampede-when-expiry-syncs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cache-stampede-when-expiry-syncs/"/></url><url><loc>https://hk.xbcatm.com/tags/resilience/</loc><lastmod>2027-11-22T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/veth-pairs-link-two-namespaces/</loc><lastmod>2027-11-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/veth-pairs-link-two-namespaces/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/veth-pairs-link-two-namespaces/"/></url><url><loc>https://hk.xbcatm.com/tags/containers/</loc><lastmod>2027-11-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/networking/</loc><lastmod>2027-11-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/k8s-securitycontext-tightens-container/</loc><lastmod>2027-11-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-securitycontext-tightens-container/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-securitycontext-tightens-container/"/></url><url><loc>https://hk.xbcatm.com/posts/protobuf-schemas-evolve-compatibly/</loc><lastmod>2027-11-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/protobuf-schemas-evolve-compatibly/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/protobuf-schemas-evolve-compatibly/"/></url><url><loc>https://hk.xbcatm.com/tags/serialization/</loc><lastmod>2027-11-19T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/events/</loc><lastmod>2027-11-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/webhooks/</loc><lastmod>2027-11-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/webhooks-reverse-the-call/</loc><lastmod>2027-11-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/webhooks-reverse-the-call/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/webhooks-reverse-the-call/"/></url><url><loc>https://hk.xbcatm.com/tags/durability/</loc><lastmod>2027-11-17T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-append-only-log-keeps-durability/</loc><lastmod>2027-11-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-append-only-log-keeps-durability/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-append-only-log-keeps-durability/"/></url><url><loc>https://hk.xbcatm.com/tags/expansion/</loc><lastmod>2027-11-16T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/shell-parameter-expansion-rewrites/</loc><lastmod>2027-11-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-parameter-expansion-rewrites/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-parameter-expansion-rewrites/"/></url><url><loc>https://hk.xbcatm.com/posts/gitignore-scopes-what-to-track/</loc><lastmod>2027-11-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/gitignore-scopes-what-to-track/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/gitignore-scopes-what-to-track/"/></url><url><loc>https://hk.xbcatm.com/tags/ignore/</loc><lastmod>2027-11-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/btrfs-snapshots-are-copy-on-write/</loc><lastmod>2027-11-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/btrfs-snapshots-are-copy-on-write/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/btrfs-snapshots-are-copy-on-write/"/></url><url><loc>https://hk.xbcatm.com/posts/page-faults-minor-vs-major/</loc><lastmod>2027-11-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/page-faults-minor-vs-major/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/page-faults-minor-vs-major/"/></url><url><loc>https://hk.xbcatm.com/tags/virtual-memory/</loc><lastmod>2027-11-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/lru-evicts-the-least-recently-used/</loc><lastmod>2027-11-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/lru-evicts-the-least-recently-used/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/lru-evicts-the-least-recently-used/"/></url><url><loc>https://hk.xbcatm.com/tags/lru/</loc><lastmod>2027-11-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/lru/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/lru/"/></url><url><loc>https://hk.xbcatm.com/posts/least-connections-spread-the-load/</loc><lastmod>2027-11-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/least-connections-spread-the-load/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/least-connections-spread-the-load/"/></url><url><loc>https://hk.xbcatm.com/tags/load-balancing/</loc><lastmod>2027-11-11T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/multipart-boundary-splits-the-body/</loc><lastmod>2027-11-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/multipart-boundary-splits-the-body/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/multipart-boundary-splits-the-body/"/></url><url><loc>https://hk.xbcatm.com/tags/forms/</loc><lastmod>2027-11-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/multipart/</loc><lastmod>2027-11-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/multipart/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/multipart/"/></url><url><loc>https://hk.xbcatm.com/posts/http-server-sent-events/</loc><lastmod>2027-11-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-server-sent-events/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-server-sent-events/"/></url><url><loc>https://hk.xbcatm.com/tags/sse/</loc><lastmod>2027-11-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/sse/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/sse/"/></url><url><loc>https://hk.xbcatm.com/tags/streaming/</loc><lastmod>2027-11-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/process/</loc><lastmod>2027-11-08T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/systemd-socket-activation-defers-the-daemon/</loc><lastmod>2027-11-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-socket-activation-defers-the-daemon/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-socket-activation-defers-the-daemon/"/></url><url><loc>https://hk.xbcatm.com/tags/restart/</loc><lastmod>2027-11-07T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/systemd-restart-policy-revives-units/</loc><lastmod>2027-11-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-restart-policy-revives-units/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-restart-policy-revives-units/"/></url><url><loc>https://hk.xbcatm.com/posts/git-worktree-switch-without-stash/</loc><lastmod>2027-11-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-worktree-switch-without-stash/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-worktree-switch-without-stash/"/></url><url><loc>https://hk.xbcatm.com/tags/worktree/</loc><lastmod>2027-11-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/worktree/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/worktree/"/></url><url><loc>https://hk.xbcatm.com/posts/connection-pool-leaks-drain-the-app/</loc><lastmod>2027-11-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/connection-pool-leaks-drain-the-app/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/connection-pool-leaks-drain-the-app/"/></url><url><loc>https://hk.xbcatm.com/tags/pooling/</loc><lastmod>2027-11-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/k8s-hpa-scales-on-demand/</loc><lastmod>2027-11-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-hpa-scales-on-demand/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-hpa-scales-on-demand/"/></url><url><loc>https://hk.xbcatm.com/posts/tls-certificate-transparency-not-a-secret/</loc><lastmod>2027-11-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tls-certificate-transparency-not-a-secret/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tls-certificate-transparency-not-a-secret/"/></url><url><loc>https://hk.xbcatm.com/tags/certificates/</loc><lastmod>2027-11-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/certificates/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/certificates/"/></url><url><loc>https://hk.xbcatm.com/tags/lsm/</loc><lastmod>2027-11-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/lsm/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/lsm/"/></url><url><loc>https://hk.xbcatm.com/posts/lsm-trees-swallow-random-writes/</loc><lastmod>2027-11-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/lsm-trees-swallow-random-writes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/lsm-trees-swallow-random-writes/"/></url><url><loc>https://hk.xbcatm.com/tags/anycast/</loc><lastmod>2027-11-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/anycast/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/anycast/"/></url><url><loc>https://hk.xbcatm.com/posts/anycast-serves-the-nearest-replica/</loc><lastmod>2027-11-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/anycast-serves-the-nearest-replica/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/anycast-serves-the-nearest-replica/"/></url><url><loc>https://hk.xbcatm.com/posts/tcp-nagle-conflicts-with-delayed-ack/</loc><lastmod>2027-10-31T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-nagle-conflicts-with-delayed-ack/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-nagle-conflicts-with-delayed-ack/"/></url><url><loc>https://hk.xbcatm.com/tags/timing/</loc><lastmod>2027-10-31T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/handshake/</loc><lastmod>2027-10-30T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/tcp-syn-cookies-when-syns-overflow/</loc><lastmod>2027-10-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-syn-cookies-when-syns-overflow/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-syn-cookies-when-syns-overflow/"/></url><url><loc>https://hk.xbcatm.com/tags/proc/</loc><lastmod>2027-10-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/proc/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/proc/"/></url><url><loc>https://hk.xbcatm.com/posts/proc-is-a-live-window-on-the-kernel/</loc><lastmod>2027-10-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/proc-is-a-live-window-on-the-kernel/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/proc-is-a-live-window-on-the-kernel/"/></url><url><loc>https://hk.xbcatm.com/tags/overlay/</loc><lastmod>2027-10-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/overlay/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/overlay/"/></url><url><loc>https://hk.xbcatm.com/tags/tunnel/</loc><lastmod>2027-10-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/vxlan-scopes-virtual-networks/</loc><lastmod>2027-10-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/vxlan-scopes-virtual-networks/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/vxlan-scopes-virtual-networks/"/></url><url><loc>https://hk.xbcatm.com/tags/crypto/</loc><lastmod>2027-10-27T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/tls-ecdhe-keeps-sessions-forward-secret/</loc><lastmod>2027-10-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tls-ecdhe-keeps-sessions-forward-secret/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tls-ecdhe-keeps-sessions-forward-secret/"/></url><url><loc>https://hk.xbcatm.com/tags/logging/</loc><lastmod>2027-10-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/systemd-journal-keeps-the-native-log/</loc><lastmod>2027-10-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-journal-keeps-the-native-log/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-journal-keeps-the-native-log/"/></url><url><loc>https://hk.xbcatm.com/tags/sysadmin/</loc><lastmod>2027-10-25T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/listen-backlog-queues-waiters/</loc><lastmod>2027-10-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/listen-backlog-queues-waiters/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/listen-backlog-queues-waiters/"/></url><url><loc>https://hk.xbcatm.com/tags/debugging/</loc><lastmod>2027-10-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/debugging/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/debugging/"/></url><url><loc>https://hk.xbcatm.com/posts/git-bisect-narrows-the-first-bad-commit/</loc><lastmod>2027-10-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-bisect-narrows-the-first-bad-commit/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-bisect-narrows-the-first-bad-commit/"/></url><url><loc>https://hk.xbcatm.com/tags/sampling/</loc><lastmod>2027-10-23T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/sampling-traces-bounds-the-cost/</loc><lastmod>2027-10-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/sampling-traces-bounds-the-cost/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/sampling-traces-bounds-the-cost/"/></url><url><loc>https://hk.xbcatm.com/posts/entropy-from-devices-curated-by-the-kernel/</loc><lastmod>2027-10-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/entropy-from-devices-curated-by-the-kernel/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/entropy-from-devices-curated-by-the-kernel/"/></url><url><loc>https://hk.xbcatm.com/tags/randomness/</loc><lastmod>2027-10-22T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/signed-images-prove-who-built-them/</loc><lastmod>2027-10-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/signed-images-prove-who-built-them/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/signed-images-prove-who-built-them/"/></url><url><loc>https://hk.xbcatm.com/tags/supplychain/</loc><lastmod>2027-10-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/authentication/</loc><lastmod>2027-10-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/oauth/</loc><lastmod>2027-10-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/oauth/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/oauth/"/></url><url><loc>https://hk.xbcatm.com/posts/oauth-code-flow-changes-code-for-token/</loc><lastmod>2027-10-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/oauth-code-flow-changes-code-for-token/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/oauth-code-flow-changes-code-for-token/"/></url><url><loc>https://hk.xbcatm.com/posts/request-smuggling-desyncs-the-proxy-chain/</loc><lastmod>2027-10-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/request-smuggling-desyncs-the-proxy-chain/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/request-smuggling-desyncs-the-proxy-chain/"/></url><url><loc>https://hk.xbcatm.com/tags/smuggling/</loc><lastmod>2027-10-19T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/jwt/</loc><lastmod>2027-10-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/jwt/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/jwt/"/></url><url><loc>https://hk.xbcatm.com/posts/jwt-signed-and-dated-tokens/</loc><lastmod>2027-10-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/jwt-signed-and-dated-tokens/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/jwt-signed-and-dated-tokens/"/></url><url><loc>https://hk.xbcatm.com/tags/tokens/</loc><lastmod>2027-10-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/checkpoint-turns-wal-replay-into-a-copy/</loc><lastmod>2027-10-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/checkpoint-turns-wal-replay-into-a-copy/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/checkpoint-turns-wal-replay-into-a-copy/"/></url><url><loc>https://hk.xbcatm.com/tags/wal/</loc><lastmod>2027-10-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/wal/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/wal/"/></url><url><loc>https://hk.xbcatm.com/posts/prepared-statements-separate-query-from-data/</loc><lastmod>2027-10-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prepared-statements-separate-query-from-data/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prepared-statements-separate-query-from-data/"/></url><url><loc>https://hk.xbcatm.com/tags/indexes/</loc><lastmod>2027-10-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/partial-indexes-index-only-some-rows/</loc><lastmod>2027-10-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/partial-indexes-index-only-some-rows/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/partial-indexes-index-only-some-rows/"/></url><url><loc>https://hk.xbcatm.com/tags/postgresql/</loc><lastmod>2027-10-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/postgresql/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/postgresql/"/></url><url><loc>https://hk.xbcatm.com/posts/covering-indexes-skip-the-table/</loc><lastmod>2027-10-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/covering-indexes-skip-the-table/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/covering-indexes-skip-the-table/"/></url><url><loc>https://hk.xbcatm.com/tags/inotify/</loc><lastmod>2027-10-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/inotify/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/inotify/"/></url><url><loc>https://hk.xbcatm.com/posts/inotify-watches-the-filesystem/</loc><lastmod>2027-10-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/inotify-watches-the-filesystem/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/inotify-watches-the-filesystem/"/></url><url><loc>https://hk.xbcatm.com/tags/fork/</loc><lastmod>2027-10-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/fork/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/fork/"/></url><url><loc>https://hk.xbcatm.com/posts/fork-and-exec-start-a-new-program/</loc><lastmod>2027-10-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/fork-and-exec-start-a-new-program/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/fork-and-exec-start-a-new-program/"/></url><url><loc>https://hk.xbcatm.com/tags/unix/</loc><lastmod>2027-10-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/unix/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/unix/"/></url><url><loc>https://hk.xbcatm.com/posts/sparse-files-claim-space-in-theory/</loc><lastmod>2027-10-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/sparse-files-claim-space-in-theory/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/sparse-files-claim-space-in-theory/"/></url><url><loc>https://hk.xbcatm.com/posts/hard-links-share-one-inode/</loc><lastmod>2027-10-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/hard-links-share-one-inode/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/hard-links-share-one-inode/"/></url><url><loc>https://hk.xbcatm.com/tags/links/</loc><lastmod>2027-10-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/permissions/</loc><lastmod>2027-10-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/umask-sets-the-default-file-mode/</loc><lastmod>2027-10-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/umask-sets-the-default-file-mode/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/umask-sets-the-default-file-mode/"/></url><url><loc>https://hk.xbcatm.com/tags/aggregation/</loc><lastmod>2027-10-08T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/bgp/</loc><lastmod>2027-10-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/bgp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/bgp/"/></url><url><loc>https://hk.xbcatm.com/posts/bgp-aggregation-shrinks-the-table/</loc><lastmod>2027-10-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/bgp-aggregation-shrinks-the-table/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/bgp-aggregation-shrinks-the-table/"/></url><url><loc>https://hk.xbcatm.com/posts/dns-dot-doh-encrypt-the-query-path/</loc><lastmod>2027-10-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dns-dot-doh-encrypt-the-query-path/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dns-dot-doh-encrypt-the-query-path/"/></url><url><loc>https://hk.xbcatm.com/tags/privacy/</loc><lastmod>2027-10-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/privacy/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/privacy/"/></url><url><loc>https://hk.xbcatm.com/tags/fragmentation/</loc><lastmod>2027-10-06T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/ipv6-fragmentation-happens-at-source/</loc><lastmod>2027-10-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/ipv6-fragmentation-happens-at-source/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/ipv6-fragmentation-happens-at-source/"/></url><url><loc>https://hk.xbcatm.com/tags/keepalive/</loc><lastmod>2027-10-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/tcp-keepalive-probes-idle-friends/</loc><lastmod>2027-10-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-keepalive-probes-idle-friends/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-keepalive-probes-idle-friends/"/></url><url><loc>https://hk.xbcatm.com/tags/alias/</loc><lastmod>2027-10-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/cli/</loc><lastmod>2027-10-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/shell-aliases-shrink-repeated-typing/</loc><lastmod>2027-10-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-aliases-shrink-repeated-typing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-aliases-shrink-repeated-typing/"/></url><url><loc>https://hk.xbcatm.com/posts/entrypoint-and-cmd-split-the-role/</loc><lastmod>2027-10-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/entrypoint-and-cmd-split-the-role/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/entrypoint-and-cmd-split-the-role/"/></url><url><loc>https://hk.xbcatm.com/tags/images/</loc><lastmod>2027-10-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/setuid-runs-as-the-file-owner/</loc><lastmod>2027-10-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/setuid-runs-as-the-file-owner/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/setuid-runs-as-the-file-owner/"/></url><url><loc>https://hk.xbcatm.com/tags/files/</loc><lastmod>2027-10-01T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/the-sticky-bit-tames-shared-directories/</loc><lastmod>2027-10-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/the-sticky-bit-tames-shared-directories/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/the-sticky-bit-tames-shared-directories/"/></url><url><loc>https://hk.xbcatm.com/tags/automation/</loc><lastmod>2027-09-30T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/cron-repeats-on-the-calendar/</loc><lastmod>2027-09-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cron-repeats-on-the-calendar/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cron-repeats-on-the-calendar/"/></url><url><loc>https://hk.xbcatm.com/tags/redirection/</loc><lastmod>2027-09-29T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redirection-reorders-the-streams/</loc><lastmod>2027-09-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redirection-reorders-the-streams/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redirection-reorders-the-streams/"/></url><url><loc>https://hk.xbcatm.com/tags/pipes/</loc><lastmod>2027-09-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/shell-pipes-stream-between-processes/</loc><lastmod>2027-09-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-pipes-stream-between-processes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-pipes-stream-between-processes/"/></url><url><loc>https://hk.xbcatm.com/posts/job-control-splits-the-terminal/</loc><lastmod>2027-09-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/job-control-splits-the-terminal/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/job-control-splits-the-terminal/"/></url><url><loc>https://hk.xbcatm.com/tags/jobs/</loc><lastmod>2027-09-27T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/terminal/</loc><lastmod>2027-09-27T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/temp-directories-are-a-shared-space/</loc><lastmod>2027-09-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/temp-directories-are-a-shared-space/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/temp-directories-are-a-shared-space/"/></url><url><loc>https://hk.xbcatm.com/tags/tmp/</loc><lastmod>2027-09-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/environment-variables-are-scoped-to-process/</loc><lastmod>2027-09-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/environment-variables-are-scoped-to-process/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/environment-variables-are-scoped-to-process/"/></url><url><loc>https://hk.xbcatm.com/posts/process-groups-take-signals-as-unit/</loc><lastmod>2027-09-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/process-groups-take-signals-as-unit/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/process-groups-take-signals-as-unit/"/></url><url><loc>https://hk.xbcatm.com/tags/signals/</loc><lastmod>2027-09-24T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/clickjacking/</loc><lastmod>2027-09-23T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/clickjacking-hides-a-decoy-window/</loc><lastmod>2027-09-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/clickjacking-hides-a-decoy-window/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/clickjacking-hides-a-decoy-window/"/></url><url><loc>https://hk.xbcatm.com/tags/xml/</loc><lastmod>2027-09-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/xml/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/xml/"/></url><url><loc>https://hk.xbcatm.com/tags/xxe/</loc><lastmod>2027-09-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/xxe/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/xxe/"/></url><url><loc>https://hk.xbcatm.com/posts/xxe-expands-the-entity/</loc><lastmod>2027-09-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/xxe-expands-the-entity/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/xxe-expands-the-entity/"/></url><url><loc>https://hk.xbcatm.com/tags/election/</loc><lastmod>2027-09-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/quorum/</loc><lastmod>2027-09-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/leader-election-needs-a-majority/</loc><lastmod>2027-09-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/leader-election-needs-a-majority/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/leader-election-needs-a-majority/"/></url><url><loc>https://hk.xbcatm.com/tags/gossip/</loc><lastmod>2027-09-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/gossip-protocols-converge-eventually/</loc><lastmod>2027-09-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/gossip-protocols-converge-eventually/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/gossip-protocols-converge-eventually/"/></url><url><loc>https://hk.xbcatm.com/tags/protocols/</loc><lastmod>2027-09-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/consistent-hashing-shrinks-the-rebalance/</loc><lastmod>2027-09-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/consistent-hashing-shrinks-the-rebalance/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/consistent-hashing-shrinks-the-rebalance/"/></url><url><loc>https://hk.xbcatm.com/tags/hashing/</loc><lastmod>2027-09-19T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/clocks/</loc><lastmod>2027-09-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/consistency/</loc><lastmod>2027-09-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/vector-clocks-order-concurrent-writes/</loc><lastmod>2027-09-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/vector-clocks-order-concurrent-writes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/vector-clocks-order-concurrent-writes/"/></url><url><loc>https://hk.xbcatm.com/tags/planner/</loc><lastmod>2027-09-17T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/query-planners-bet-on-cost/</loc><lastmod>2027-09-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/query-planners-bet-on-cost/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/query-planners-bet-on-cost/"/></url><url><loc>https://hk.xbcatm.com/posts/full-table-scans-win-on-small-tables/</loc><lastmod>2027-09-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/full-table-scans-win-on-small-tables/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/full-table-scans-win-on-small-tables/"/></url><url><loc>https://hk.xbcatm.com/posts/composite-indexes-match-multi-column-phrases/</loc><lastmod>2027-09-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/composite-indexes-match-multi-column-phrases/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/composite-indexes-match-multi-column-phrases/"/></url><url><loc>https://hk.xbcatm.com/posts/the-default-route-catches-the-unmatched/</loc><lastmod>2027-09-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/the-default-route-catches-the-unmatched/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/the-default-route-catches-the-unmatched/"/></url><url><loc>https://hk.xbcatm.com/tags/ip/</loc><lastmod>2027-09-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ip/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ip/"/></url><url><loc>https://hk.xbcatm.com/posts/subnet-masks-carve-ip-neighborhoods/</loc><lastmod>2027-09-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/subnet-masks-carve-ip-neighborhoods/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/subnet-masks-carve-ip-neighborhoods/"/></url><url><loc>https://hk.xbcatm.com/tags/subnet/</loc><lastmod>2027-09-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/bgp-is-the-internet-routing-table/</loc><lastmod>2027-09-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/bgp-is-the-internet-routing-table/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/bgp-is-the-internet-routing-table/"/></url><url><loc>https://hk.xbcatm.com/tags/loss/</loc><lastmod>2027-09-11T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/tcp-selective-ack-shrinks-recovery/</loc><lastmod>2027-09-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-selective-ack-shrinks-recovery/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-selective-ack-shrinks-recovery/"/></url><url><loc>https://hk.xbcatm.com/posts/tcp-three-way-handshake-syncs-two-clocks/</loc><lastmod>2027-09-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-three-way-handshake-syncs-two-clocks/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-three-way-handshake-syncs-two-clocks/"/></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-labels-choose-whom-you-greet/</loc><lastmod>2027-09-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-labels-choose-whom-you-greet/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-labels-choose-whom-you-greet/"/></url><url><loc>https://hk.xbcatm.com/tags/labels/</loc><lastmod>2027-09-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/selectors/</loc><lastmod>2027-09-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/bash-globbing-expands-before-the-command-runs/</loc><lastmod>2027-09-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/bash-globbing-expands-before-the-command-runs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/bash-globbing-expands-before-the-command-runs/"/></url><url><loc>https://hk.xbcatm.com/tags/dhcp/</loc><lastmod>2027-09-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/dhcp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/dhcp/"/></url><url><loc>https://hk.xbcatm.com/posts/dhcp-lends-the-address-until-it-expires/</loc><lastmod>2027-09-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dhcp-lends-the-address-until-it-expires/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dhcp-lends-the-address-until-it-expires/"/></url><url><loc>https://hk.xbcatm.com/posts/client-certificates-prove-device-not-just-password/</loc><lastmod>2027-09-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/client-certificates-prove-device-not-just-password/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/client-certificates-prove-device-not-just-password/"/></url><url><loc>https://hk.xbcatm.com/tags/mtls/</loc><lastmod>2027-09-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/mtls/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/mtls/"/></url><url><loc>https://hk.xbcatm.com/tags/ssrf/</loc><lastmod>2027-09-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ssrf/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ssrf/"/></url><url><loc>https://hk.xbcatm.com/posts/ssrf-makes-the-server-open-the-door/</loc><lastmod>2027-09-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/ssrf-makes-the-server-open-the-door/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/ssrf-makes-the-server-open-the-door/"/></url><url><loc>https://hk.xbcatm.com/tags/csrf/</loc><lastmod>2027-09-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/csrf/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/csrf/"/></url><url><loc>https://hk.xbcatm.com/posts/csrf-asks-the-browser-where-the-request-came-from/</loc><lastmod>2027-09-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/csrf-asks-the-browser-where-the-request-came-from/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/csrf-asks-the-browser-where-the-request-came-from/"/></url><url><loc>https://hk.xbcatm.com/tags/artifacts/</loc><lastmod>2027-09-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/build/</loc><lastmod>2027-09-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/ci/</loc><lastmod>2027-09-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ci/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ci/"/></url><url><loc>https://hk.xbcatm.com/posts/ci-artifacts-are-transient-handoffs/</loc><lastmod>2027-09-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/ci-artifacts-are-transient-handoffs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/ci-artifacts-are-transient-handoffs/"/></url><url><loc>https://hk.xbcatm.com/tags/github/</loc><lastmod>2027-09-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/github/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/github/"/></url><url><loc>https://hk.xbcatm.com/posts/github-actions-workflows-gate-the-build/</loc><lastmod>2027-09-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/github-actions-workflows-gate-the-build/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/github-actions-workflows-gate-the-build/"/></url><url><loc>https://hk.xbcatm.com/posts/prometheus-rules-turn-metrics-into-alerts/</loc><lastmod>2027-09-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-rules-turn-metrics-into-alerts/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-rules-turn-metrics-into-alerts/"/></url><url><loc>https://hk.xbcatm.com/tags/queries/</loc><lastmod>2027-08-31T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/recording-rules-precompute-hot-queries/</loc><lastmod>2027-08-31T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/recording-rules-precompute-hot-queries/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/recording-rules-precompute-hot-queries/"/></url><url><loc>https://hk.xbcatm.com/posts/prometheus-pulls-metrics-in/</loc><lastmod>2027-08-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-pulls-metrics-in/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-pulls-metrics-in/"/></url><url><loc>https://hk.xbcatm.com/tags/scraping/</loc><lastmod>2027-08-30T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-gzip-shrinks-what-it-sends/</loc><lastmod>2027-08-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-gzip-shrinks-what-it-sends/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-gzip-shrinks-what-it-sends/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-rate-limits-guard-the-endpoints/</loc><lastmod>2027-08-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-rate-limits-guard-the-endpoints/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-rate-limits-guard-the-endpoints/"/></url><url><loc>https://hk.xbcatm.com/tags/rate-limit/</loc><lastmod>2027-08-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-reverse-proxy-hides-the-upstream/</loc><lastmod>2027-08-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-reverse-proxy-hides-the-upstream/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-reverse-proxy-hides-the-upstream/"/></url><url><loc>https://hk.xbcatm.com/tags/configuration/</loc><lastmod>2027-08-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-locations-match-by-prefix/</loc><lastmod>2027-08-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-locations-match-by-prefix/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-locations-match-by-prefix/"/></url><url><loc>https://hk.xbcatm.com/posts/namespaces-divides-one-cluster-into-rooms/</loc><lastmod>2027-08-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/namespaces-divides-one-cluster-into-rooms/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/namespaces-divides-one-cluster-into-rooms/"/></url><url><loc>https://hk.xbcatm.com/tags/organization/</loc><lastmod>2027-08-25T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/image-tags-are-pointers-not-versions/</loc><lastmod>2027-08-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/image-tags-are-pointers-not-versions/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/image-tags-are-pointers-not-versions/"/></url><url><loc>https://hk.xbcatm.com/tags/releases/</loc><lastmod>2027-08-24T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-services-give-stable-homes/</loc><lastmod>2027-08-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-services-give-stable-homes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-services-give-stable-homes/"/></url><url><loc>https://hk.xbcatm.com/tags/services/</loc><lastmod>2027-08-23T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/operations/</loc><lastmod>2027-08-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/operations/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/operations/"/></url><url><loc>https://hk.xbcatm.com/tags/probes/</loc><lastmod>2027-08-22T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-probes-ask-and-react/</loc><lastmod>2027-08-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-probes-ask-and-react/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-probes-ask-and-react/"/></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-secrets-are-small-and-scoped/</loc><lastmod>2027-08-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-secrets-are-small-and-scoped/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-secrets-are-small-and-scoped/"/></url><url><loc>https://hk.xbcatm.com/tags/secrets/</loc><lastmod>2027-08-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/configmaps-keep-config-out-of-the-image/</loc><lastmod>2027-08-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/configmaps-keep-config-out-of-the-image/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/configmaps-keep-config-out-of-the-image/"/></url><url><loc>https://hk.xbcatm.com/tags/workloads/</loc><lastmod>2027-08-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-deployments-describe-desired-state/</loc><lastmod>2027-08-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-deployments-describe-desired-state/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-deployments-describe-desired-state/"/></url><url><loc>https://hk.xbcatm.com/tags/reconciliation/</loc><lastmod>2027-08-19T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/compose-describes-the-local-stack/</loc><lastmod>2027-08-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/compose-describes-the-local-stack/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/compose-describes-the-local-stack/"/></url><url><loc>https://hk.xbcatm.com/posts/dockerfile-order-caches-the-build/</loc><lastmod>2027-08-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dockerfile-order-caches-the-build/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dockerfile-order-caches-the-build/"/></url><url><loc>https://hk.xbcatm.com/posts/docker-layers-are-content-diffs/</loc><lastmod>2027-08-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/docker-layers-are-content-diffs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/docker-layers-are-content-diffs/"/></url><url><loc>https://hk.xbcatm.com/posts/reproducible-builds-make-bins-trustable/</loc><lastmod>2027-08-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/reproducible-builds-make-bins-trustable/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/reproducible-builds-make-bins-trustable/"/></url><url><loc>https://hk.xbcatm.com/tags/supply-chain/</loc><lastmod>2027-08-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-pvc-storage-lifecycle/</loc><lastmod>2027-08-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-pvc-storage-lifecycle/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-pvc-storage-lifecycle/"/></url><url><loc>https://hk.xbcatm.com/tags/pvc/</loc><lastmod>2027-08-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/backpressure-negotiates-at-the-gate/</loc><lastmod>2027-08-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/backpressure-negotiates-at-the-gate/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/backpressure-negotiates-at-the-gate/"/></url><url><loc>https://hk.xbcatm.com/tags/queues/</loc><lastmod>2027-08-12T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/reliability/</loc><lastmod>2027-08-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/reliability/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/reliability/"/></url><url><loc>https://hk.xbcatm.com/tags/systems/</loc><lastmod>2027-08-12T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/autoscale/</loc><lastmod>2027-08-11T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/hpa/</loc><lastmod>2027-08-11T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-hpa-autoscale-workloads/</loc><lastmod>2027-08-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-hpa-autoscale-workloads/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-hpa-autoscale-workloads/"/></url><url><loc>https://hk.xbcatm.com/tags/ha/</loc><lastmod>2027-08-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-replication-streams-changes/</loc><lastmod>2027-08-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-replication-streams-changes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-replication-streams-changes/"/></url><url><loc>https://hk.xbcatm.com/tags/replication/</loc><lastmod>2027-08-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/connection/</loc><lastmod>2027-08-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-connections-pool-keepalive/</loc><lastmod>2027-08-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-connections-pool-keepalive/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-connections-pool-keepalive/"/></url><url><loc>https://hk.xbcatm.com/tags/pipeline/</loc><lastmod>2027-08-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/pipeline/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/%E6%B1%A0/"/></url><url><loc>https://hk.xbcatm.com/posts/tls-session-resumption-saves-a-round-trip/</loc><lastmod>2027-08-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tls-session-resumption-saves-a-round-trip/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tls-session-resumption-saves-a-round-trip/"/></url><url><loc>https://hk.xbcatm.com/posts/cache-invalidation-is-a-push/</loc><lastmod>2027-08-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cache-invalidation-is-a-push/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cache-invalidation-is-a-push/"/></url><url><loc>https://hk.xbcatm.com/tags/label/</loc><lastmod>2027-08-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/metric/</loc><lastmod>2027-08-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/prometheus-relabel-metadata/</loc><lastmod>2027-08-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-relabel-metadata/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-relabel-metadata/"/></url><url><loc>https://hk.xbcatm.com/posts/linux-symlink-inode-anchor/</loc><lastmod>2027-08-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-symlink-inode-anchor/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-symlink-inode-anchor/"/></url><url><loc>https://hk.xbcatm.com/tags/symlink/</loc><lastmod>2027-08-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-sequence-caches/</loc><lastmod>2027-08-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-sequence-caches/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-sequence-caches/"/></url><url><loc>https://hk.xbcatm.com/tags/sequence/</loc><lastmod>2027-08-02T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/serial/</loc><lastmod>2027-08-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/serial/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/serial/"/></url><url><loc>https://hk.xbcatm.com/posts/connection-timeouts-prevent-hangs/</loc><lastmod>2027-08-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/connection-timeouts-prevent-hangs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/connection-timeouts-prevent-hangs/"/></url><url><loc>https://hk.xbcatm.com/tags/patterns/</loc><lastmod>2027-08-01T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/journald/</loc><lastmod>2027-07-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/journald/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/journald/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-journal-queryable/</loc><lastmod>2027-07-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-journal-queryable/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-journal-queryable/"/></url><url><loc>https://hk.xbcatm.com/posts/change-windows-fit-people-not-servers/</loc><lastmod>2027-07-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/change-windows-fit-people-not-servers/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/change-windows-fit-people-not-servers/"/></url><url><loc>https://hk.xbcatm.com/tags/deployment/</loc><lastmod>2027-07-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/deployment/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/deployment/"/></url><url><loc>https://hk.xbcatm.com/tags/human/</loc><lastmod>2027-07-29T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/jsonb/</loc><lastmod>2027-07-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/jsonb/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/jsonb/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-jsonb-query-where/</loc><lastmod>2027-07-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-jsonb-query-where/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-jsonb-query-where/"/></url><url><loc>https://hk.xbcatm.com/posts/prometheus-alertmanager-grouping/</loc><lastmod>2027-07-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-alertmanager-grouping/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-alertmanager-grouping/"/></url><url><loc>https://hk.xbcatm.com/tags/ops/</loc><lastmod>2027-07-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ops/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ops/"/></url><url><loc>https://hk.xbcatm.com/tags/branch/</loc><lastmod>2027-07-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/git-worktree-multi-branch/</loc><lastmod>2027-07-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-worktree-multi-branch/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-worktree-multi-branch/"/></url><url><loc>https://hk.xbcatm.com/tags/collaboration/</loc><lastmod>2027-07-25T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/small-commits-tell-a-coherent-story/</loc><lastmod>2027-07-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/small-commits-tell-a-coherent-story/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/small-commits-tell-a-coherent-story/"/></url><url><loc>https://hk.xbcatm.com/tags/cors/</loc><lastmod>2027-07-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/cors/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/cors/"/></url><url><loc>https://hk.xbcatm.com/posts/http-cors-preflight/</loc><lastmod>2027-07-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-cors-preflight/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-cors-preflight/"/></url><url><loc>https://hk.xbcatm.com/tags/transaction/</loc><lastmod>2027-07-22T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-transactions-multi-exec/</loc><lastmod>2027-07-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-transactions-multi-exec/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-transactions-multi-exec/"/></url><url><loc>https://hk.xbcatm.com/posts/cardinality-is-a-metric-budget/</loc><lastmod>2027-07-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cardinality-is-a-metric-budget/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cardinality-is-a-metric-budget/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-indexes-count-columns/</loc><lastmod>2027-07-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-indexes-count-columns/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-indexes-count-columns/"/></url><url><loc>https://hk.xbcatm.com/tags/b-tree/</loc><lastmod>2027-07-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/linux-ulimit-file-descriptors/</loc><lastmod>2027-07-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-ulimit-file-descriptors/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-ulimit-file-descriptors/"/></url><url><loc>https://hk.xbcatm.com/posts/dashboards-summarize-not-magnify/</loc><lastmod>2027-07-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dashboards-summarize-not-magnify/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dashboards-summarize-not-magnify/"/></url><url><loc>https://hk.xbcatm.com/tags/practice/</loc><lastmod>2027-07-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/on-call-rotations-spread-the-load/</loc><lastmod>2027-07-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/on-call-rotations-spread-the-load/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/on-call-rotations-spread-the-load/"/></url><url><loc>https://hk.xbcatm.com/tags/people/</loc><lastmod>2027-07-16T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-access-log-structure/</loc><lastmod>2027-07-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-access-log-structure/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-access-log-structure/"/></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-probes-liveness-readiness/</loc><lastmod>2027-07-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-probes-liveness-readiness/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-probes-liveness-readiness/"/></url><url><loc>https://hk.xbcatm.com/tags/probe/</loc><lastmod>2027-07-14T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-stream-offset-consumers/</loc><lastmod>2027-07-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-stream-offset-consumers/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-stream-offset-consumers/"/></url><url><loc>https://hk.xbcatm.com/posts/read-replicas-serve-demand-copies/</loc><lastmod>2027-07-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/read-replicas-serve-demand-copies/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/read-replicas-serve-demand-copies/"/></url><url><loc>https://hk.xbcatm.com/posts/cname-keeps-the-alias-stable/</loc><lastmod>2027-07-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cname-keeps-the-alias-stable/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cname-keeps-the-alias-stable/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-explain-reads-plans/</loc><lastmod>2027-07-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-explain-reads-plans/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-explain-reads-plans/"/></url><url><loc>https://hk.xbcatm.com/tags/bisect/</loc><lastmod>2027-07-07T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/git-bisect-graduate-failure/</loc><lastmod>2027-07-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-bisect-graduate-failure/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-bisect-graduate-failure/"/></url><url><loc>https://hk.xbcatm.com/posts/dns-round-robin-is-a-hint/</loc><lastmod>2027-07-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dns-round-robin-is-a-hint/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dns-round-robin-is-a-hint/"/></url><url><loc>https://hk.xbcatm.com/posts/docker-healthcheck-entrypoint/</loc><lastmod>2027-07-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/docker-healthcheck-entrypoint/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/docker-healthcheck-entrypoint/"/></url><url><loc>https://hk.xbcatm.com/posts/404-pages-answer-honestly/</loc><lastmod>2027-07-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/404-pages-answer-honestly/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/404-pages-answer-honestly/"/></url><url><loc>https://hk.xbcatm.com/tags/ux/</loc><lastmod>2027-07-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/configmap/</loc><lastmod>2027-07-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/configmap/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/configmap/"/></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-configmap-files-env/</loc><lastmod>2027-07-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-configmap-files-env/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-configmap-files-env/"/></url><url><loc>https://hk.xbcatm.com/tags/seo/</loc><lastmod>2027-06-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/seo/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/seo/"/></url><url><loc>https://hk.xbcatm.com/posts/sitemaps-guide-crawler-discovery/</loc><lastmod>2027-06-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/sitemaps-guide-crawler-discovery/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/sitemaps-guide-crawler-discovery/"/></url><url><loc>https://hk.xbcatm.com/tags/expire/</loc><lastmod>2027-06-29T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-ttl-expiry-clock/</loc><lastmod>2027-06-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-ttl-expiry-clock/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-ttl-expiry-clock/"/></url><url><loc>https://hk.xbcatm.com/tags/https/</loc><lastmod>2027-06-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/https/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/https/"/></url><url><loc>https://hk.xbcatm.com/posts/https-tls-handshake-notes/</loc><lastmod>2027-06-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/https-tls-handshake-notes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/https-tls-handshake-notes/"/></url><url><loc>https://hk.xbcatm.com/posts/canonical-urls-name-single-origin/</loc><lastmod>2027-06-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/canonical-urls-name-single-origin/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/canonical-urls-name-single-origin/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-wal-archiving-restore/</loc><lastmod>2027-06-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-wal-archiving-restore/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-wal-archiving-restore/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-proxy-cache-stale-fresh/</loc><lastmod>2027-06-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-proxy-cache-stale-fresh/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-proxy-cache-stale-fresh/"/></url><url><loc>https://hk.xbcatm.com/tags/nfs/</loc><lastmod>2027-06-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/nfs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/nfs/"/></url><url><loc>https://hk.xbcatm.com/posts/nfs-exporting-directories/</loc><lastmod>2027-06-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nfs-exporting-directories/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nfs-exporting-directories/"/></url><url><loc>https://hk.xbcatm.com/tags/standards/</loc><lastmod>2027-06-22T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/well-known-endpoints-are-conventions/</loc><lastmod>2027-06-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/well-known-endpoints-are-conventions/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/well-known-endpoints-are-conventions/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-timer-replaces-cron/</loc><lastmod>2027-06-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-timer-replaces-cron/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-timer-replaces-cron/"/></url><url><loc>https://hk.xbcatm.com/tags/timer/</loc><lastmod>2027-06-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/probes-tell-the-platform-when-to-act/</loc><lastmod>2027-06-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/probes-tell-the-platform-when-to-act/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/probes-tell-the-platform-when-to-act/"/></url><url><loc>https://hk.xbcatm.com/tags/cookie/</loc><lastmod>2027-06-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/cookie/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/cookie/"/></url><url><loc>https://hk.xbcatm.com/posts/cookie-secure-samesite-lock/</loc><lastmod>2027-06-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cookie-secure-samesite-lock/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cookie-secure-samesite-lock/"/></url><url><loc>https://hk.xbcatm.com/tags/extensions/</loc><lastmod>2027-06-16T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/hstore/</loc><lastmod>2027-06-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/hstore/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/hstore/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-hstore-flexible-map/</loc><lastmod>2027-06-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-hstore-flexible-map/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-hstore-flexible-map/"/></url><url><loc>https://hk.xbcatm.com/tags/persistence/</loc><lastmod>2027-06-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-rdb-aof-tradeoffs/</loc><lastmod>2027-06-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-rdb-aof-tradeoffs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-rdb-aof-tradeoffs/"/></url><url><loc>https://hk.xbcatm.com/posts/pod-resource-limits-set-the-budget/</loc><lastmod>2027-06-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/pod-resource-limits-set-the-budget/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/pod-resource-limits-set-the-budget/"/></url><url><loc>https://hk.xbcatm.com/posts/git-tags-freeze-releases/</loc><lastmod>2027-06-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-tags-freeze-releases/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-tags-freeze-releases/"/></url><url><loc>https://hk.xbcatm.com/tags/versioning/</loc><lastmod>2027-06-11T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/password-hashes-need-a-slow-cost/</loc><lastmod>2027-06-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/password-hashes-need-a-slow-cost/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/password-hashes-need-a-slow-cost/"/></url><url><loc>https://hk.xbcatm.com/tags/passwords/</loc><lastmod>2027-06-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/prometheus-external-labels-identify/</loc><lastmod>2027-06-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-external-labels-identify/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-external-labels-identify/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-sysusers-declares-users/</loc><lastmod>2027-06-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-sysusers-declares-users/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-sysusers-declares-users/"/></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-rolling-update-waves/</loc><lastmod>2027-06-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-rolling-update-waves/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-rolling-update-waves/"/></url><url><loc>https://hk.xbcatm.com/tags/vacuum/</loc><lastmod>2027-06-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-autovacuum-prunes-dead-rows/</loc><lastmod>2027-06-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-autovacuum-prunes-dead-rows/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-autovacuum-prunes-dead-rows/"/></url><url><loc>https://hk.xbcatm.com/posts/redis-memory-fragmentation-ratio/</loc><lastmod>2027-06-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-memory-fragmentation-ratio/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-memory-fragmentation-ratio/"/></url><url><loc>https://hk.xbcatm.com/posts/backups-are-untested-hope-without-proof/</loc><lastmod>2027-06-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/backups-are-untested-hope-without-proof/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/backups-are-untested-hope-without-proof/"/></url><url><loc>https://hk.xbcatm.com/tags/naming/</loc><lastmod>2027-06-01T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-key-naming-clarity/</loc><lastmod>2027-06-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-key-naming-clarity/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-key-naming-clarity/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-statement-snapshot-read/</loc><lastmod>2027-05-31T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-statement-snapshot-read/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-statement-snapshot-read/"/></url><url><loc>https://hk.xbcatm.com/tags/isolation/</loc><lastmod>2027-05-31T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/mvcc/</loc><lastmod>2027-05-31T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/mvcc/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/mvcc/"/></url><url><loc>https://hk.xbcatm.com/tags/modeling/</loc><lastmod>2027-05-29T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/auto-increment-ids-leak-order/</loc><lastmod>2027-05-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/auto-increment-ids-leak-order/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/auto-increment-ids-leak-order/"/></url><url><loc>https://hk.xbcatm.com/posts/http-keep-alive-reuses-connections/</loc><lastmod>2027-05-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-keep-alive-reuses-connections/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-keep-alive-reuses-connections/"/></url><url><loc>https://hk.xbcatm.com/tags/pod/</loc><lastmod>2027-05-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/pod/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/pod/"/></url><url><loc>https://hk.xbcatm.com/posts/kubernetes-requests-limits-floor-cap/</loc><lastmod>2027-05-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kubernetes-requests-limits-floor-cap/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kubernetes-requests-limits-floor-cap/"/></url><url><loc>https://hk.xbcatm.com/posts/read-through-cache-loads-on-miss/</loc><lastmod>2027-05-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/read-through-cache-loads-on-miss/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/read-through-cache-loads-on-miss/"/></url><url><loc>https://hk.xbcatm.com/tags/pattern/</loc><lastmod>2027-05-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/foreign-keys-keep-references-honest/</loc><lastmod>2027-05-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/foreign-keys-keep-references-honest/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/foreign-keys-keep-references-honest/"/></url><url><loc>https://hk.xbcatm.com/tags/integrity/</loc><lastmod>2027-05-25T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/unlogged-tables-trade-durability/</loc><lastmod>2027-05-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/unlogged-tables-trade-durability/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/unlogged-tables-trade-durability/"/></url><url><loc>https://hk.xbcatm.com/posts/explain-plans-reveal-the-route/</loc><lastmod>2027-05-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/explain-plans-reveal-the-route/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/explain-plans-reveal-the-route/"/></url><url><loc>https://hk.xbcatm.com/posts/shell-command-not-found-path-search/</loc><lastmod>2027-05-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-command-not-found-path-search/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-command-not-found-path-search/"/></url><url><loc>https://hk.xbcatm.com/tags/path/</loc><lastmod>2027-05-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-load-balance-methods-spread/</loc><lastmod>2027-05-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-load-balance-methods-spread/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-load-balance-methods-spread/"/></url><url><loc>https://hk.xbcatm.com/tags/upstream/</loc><lastmod>2027-05-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/upstream/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/upstream/"/></url><url><loc>https://hk.xbcatm.com/posts/query-parameters-are-data-not-code/</loc><lastmod>2027-05-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/query-parameters-are-data-not-code/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/query-parameters-are-data-not-code/"/></url><url><loc>https://hk.xbcatm.com/posts/load-shedding-protects-the-system/</loc><lastmod>2027-05-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/load-shedding-protects-the-system/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/load-shedding-protects-the-system/"/></url><url><loc>https://hk.xbcatm.com/tags/overload/</loc><lastmod>2027-05-16T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/fulltext/</loc><lastmod>2027-05-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/gin/</loc><lastmod>2027-05-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/gin/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/gin/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-gin-cools-fulltext-search/</loc><lastmod>2027-05-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-gin-cools-fulltext-search/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-gin-cools-fulltext-search/"/></url><url><loc>https://hk.xbcatm.com/tags/pushgateway/</loc><lastmod>2027-05-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/pushgateway/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/pushgateway/"/></url><url><loc>https://hk.xbcatm.com/posts/prometheus-pushgateway-bridges-short-jobs/</loc><lastmod>2027-05-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-pushgateway-bridges-short-jobs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-pushgateway-bridges-short-jobs/"/></url><url><loc>https://hk.xbcatm.com/posts/transactions-make-atomic-commits/</loc><lastmod>2027-05-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/transactions-make-atomic-commits/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/transactions-make-atomic-commits/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-service-nodeport-exposes-a-fixed-port/</loc><lastmod>2027-05-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-service-nodeport-exposes-a-fixed-port/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-service-nodeport-exposes-a-fixed-port/"/></url><url><loc>https://hk.xbcatm.com/tags/backups/</loc><lastmod>2027-05-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/backups/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/backups/"/></url><url><loc>https://hk.xbcatm.com/posts/bucket-versioning-and-lifecycles/</loc><lastmod>2027-05-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/bucket-versioning-and-lifecycles/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/bucket-versioning-and-lifecycles/"/></url><url><loc>https://hk.xbcatm.com/posts/redis-streams-order-live-events/</loc><lastmod>2027-05-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-streams-order-live-events/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-streams-order-live-events/"/></url><url><loc>https://hk.xbcatm.com/tags/stream/</loc><lastmod>2027-05-06T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-function-index-computes-once/</loc><lastmod>2027-05-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-function-index-computes-once/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-function-index-computes-once/"/></url><url><loc>https://hk.xbcatm.com/tags/expression/</loc><lastmod>2027-05-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/retry-after-tells-when-to-try-again/</loc><lastmod>2027-05-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/retry-after-tells-when-to-try-again/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/retry-after-tells-when-to-try-again/"/></url><url><loc>https://hk.xbcatm.com/tags/join/</loc><lastmod>2027-05-01T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-join-nested-loop-vs-hash/</loc><lastmod>2027-05-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-join-nested-loop-vs-hash/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-join-nested-loop-vs-hash/"/></url><url><loc>https://hk.xbcatm.com/posts/immutable-base-images-kill-drift/</loc><lastmod>2027-04-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/immutable-base-images-kill-drift/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/immutable-base-images-kill-drift/"/></url><url><loc>https://hk.xbcatm.com/tags/builds/</loc><lastmod>2027-04-30T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/bitmap/</loc><lastmod>2027-04-29T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-bitmaps-count-bits/</loc><lastmod>2027-04-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-bitmaps-count-bits/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-bitmaps-count-bits/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-partial-indexes-shrink-the-tree/</loc><lastmod>2027-04-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-partial-indexes-shrink-the-tree/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-partial-indexes-shrink-the-tree/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-materialized-views-freeze-query-results/</loc><lastmod>2027-04-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-materialized-views-freeze-query-results/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-materialized-views-freeze-query-results/"/></url><url><loc>https://hk.xbcatm.com/posts/idle-timeouts-recycle-edge-connections/</loc><lastmod>2027-04-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/idle-timeouts-recycle-edge-connections/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/idle-timeouts-recycle-edge-connections/"/></url><url><loc>https://hk.xbcatm.com/tags/views/</loc><lastmod>2027-04-26T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/architecture/</loc><lastmod>2027-04-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/architecture/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/architecture/"/></url><url><loc>https://hk.xbcatm.com/posts/graceful-degradation-keeps-partial-value/</loc><lastmod>2027-04-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/graceful-degradation-keeps-partial-value/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/graceful-degradation-keeps-partial-value/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-wal-archive-keeps-backups/</loc><lastmod>2027-04-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-wal-archive-keeps-backups/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-wal-archive-keeps-backups/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-linger-keeps-user-unit/</loc><lastmod>2027-04-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-linger-keeps-user-unit/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-linger-keeps-user-unit/"/></url><url><loc>https://hk.xbcatm.com/tags/user/</loc><lastmod>2027-04-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-lists-are-queues-and-stacks/</loc><lastmod>2027-04-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-lists-are-queues-and-stacks/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-lists-are-queues-and-stacks/"/></url><url><loc>https://hk.xbcatm.com/posts/request-body-limits-set-a-boundary/</loc><lastmod>2027-04-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/request-body-limits-set-a-boundary/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/request-body-limits-set-a-boundary/"/></url><url><loc>https://hk.xbcatm.com/posts/shell-special-parameters-dollar-at/</loc><lastmod>2027-04-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-special-parameters-dollar-at/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-special-parameters-dollar-at/"/></url><url><loc>https://hk.xbcatm.com/posts/default-ports-are-a-handshake-with-history/</loc><lastmod>2027-04-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/default-ports-are-a-handshake-with-history/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/default-ports-are-a-handshake-with-history/"/></url><url><loc>https://hk.xbcatm.com/tags/buffers/</loc><lastmod>2027-04-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/nginx-buffers-decouple-client-io/</loc><lastmod>2027-04-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-buffers-decouple-client-io/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-buffers-decouple-client-io/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-sequence-keeps-counting/</loc><lastmod>2027-04-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-sequence-keeps-counting/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-sequence-keeps-counting/"/></url><url><loc>https://hk.xbcatm.com/tags/identity/</loc><lastmod>2027-04-12T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/k8s-pod-disruption-budget-protects-quorum/</loc><lastmod>2027-04-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-pod-disruption-budget-protects-quorum/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-pod-disruption-budget-protects-quorum/"/></url><url><loc>https://hk.xbcatm.com/tags/availability/</loc><lastmod>2027-04-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/maintenance/</loc><lastmod>2027-04-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/maintenance/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/maintenance/"/></url><url><loc>https://hk.xbcatm.com/posts/retries-with-jitter-and-backoff/</loc><lastmod>2027-04-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/retries-with-jitter-and-backoff/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/retries-with-jitter-and-backoff/"/></url><url><loc>https://hk.xbcatm.com/posts/docker-compose-declares-a-stack/</loc><lastmod>2027-04-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/docker-compose-declares-a-stack/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/docker-compose-declares-a-stack/"/></url><url><loc>https://hk.xbcatm.com/tags/dev/</loc><lastmod>2027-04-08T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/circuit-breakers-stop-storming-a-down-service/</loc><lastmod>2027-04-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/circuit-breakers-stop-storming-a-down-service/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/circuit-breakers-stop-storming-a-down-service/"/></url><url><loc>https://hk.xbcatm.com/tags/scrape/</loc><lastmod>2027-04-06T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/prometheus-relabel-rewrites-targets/</loc><lastmod>2027-04-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-relabel-rewrites-targets/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-relabel-rewrites-targets/"/></url><url><loc>https://hk.xbcatm.com/tags/collation/</loc><lastmod>2027-04-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-collation-orders-text/</loc><lastmod>2027-04-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-collation-orders-text/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-collation-orders-text/"/></url><url><loc>https://hk.xbcatm.com/tags/text/</loc><lastmod>2027-04-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/bind-address-defines-the-surface/</loc><lastmod>2027-04-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/bind-address-defines-the-surface/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/bind-address-defines-the-surface/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-proxy-pass-connects-upstream/</loc><lastmod>2027-04-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-proxy-pass-connects-upstream/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-proxy-pass-connects-upstream/"/></url><url><loc>https://hk.xbcatm.com/tags/commands/</loc><lastmod>2027-03-31T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-transactions-queue-atomically/</loc><lastmod>2027-03-31T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-transactions-queue-atomically/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-transactions-queue-atomically/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-daemonset-runs-everywhere/</loc><lastmod>2027-03-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-daemonset-runs-everywhere/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-daemonset-runs-everywhere/"/></url><url><loc>https://hk.xbcatm.com/tags/daemonset/</loc><lastmod>2027-03-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/daemonset/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/daemonset/"/></url><url><loc>https://hk.xbcatm.com/posts/docs-as-code-are-reviewable/</loc><lastmod>2027-03-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/docs-as-code-are-reviewable/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/docs-as-code-are-reviewable/"/></url><url><loc>https://hk.xbcatm.com/tags/documentation/</loc><lastmod>2027-03-29T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/shell-exit-status-reports-blur/</loc><lastmod>2027-03-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-exit-status-reports-blur/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-exit-status-reports-blur/"/></url><url><loc>https://hk.xbcatm.com/posts/error-budgets-are-a-budget/</loc><lastmod>2027-03-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/error-budgets-are-a-budget/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/error-budgets-are-a-budget/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-upsert-resolves-conflicts/</loc><lastmod>2027-03-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-upsert-resolves-conflicts/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-upsert-resolves-conflicts/"/></url><url><loc>https://hk.xbcatm.com/tags/upsert/</loc><lastmod>2027-03-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/upsert/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/upsert/"/></url><url><loc>https://hk.xbcatm.com/posts/http-referrer-policy-leaks-less/</loc><lastmod>2027-03-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-referrer-policy-leaks-less/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-referrer-policy-leaks-less/"/></url><url><loc>https://hk.xbcatm.com/posts/docker-image-layers-build-the-cache/</loc><lastmod>2027-03-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/docker-image-layers-build-the-cache/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/docker-image-layers-build-the-cache/"/></url><url><loc>https://hk.xbcatm.com/posts/redis-sorted-sets-rank-order/</loc><lastmod>2027-03-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-sorted-sets-rank-order/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-sorted-sets-rank-order/"/></url><url><loc>https://hk.xbcatm.com/posts/http3-and-quic-recover-per-stream/</loc><lastmod>2027-03-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http3-and-quic-recover-per-stream/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http3-and-quic-recover-per-stream/"/></url><url><loc>https://hk.xbcatm.com/tags/ranking/</loc><lastmod>2027-03-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/sorted-set/</loc><lastmod>2027-03-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-explain-planner-estimates/</loc><lastmod>2027-03-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-explain-planner-estimates/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-explain-planner-estimates/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-pod-anti-affinity-spreads-workloads/</loc><lastmod>2027-03-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-pod-anti-affinity-spreads-workloads/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-pod-anti-affinity-spreads-workloads/"/></url><url><loc>https://hk.xbcatm.com/posts/object-storage-vs-block-storage/</loc><lastmod>2027-03-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/object-storage-vs-block-storage/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/object-storage-vs-block-storage/"/></url><url><loc>https://hk.xbcatm.com/posts/shell-functions-borrow-positional-parameters/</loc><lastmod>2027-03-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-functions-borrow-positional-parameters/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-functions-borrow-positional-parameters/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-keepalive-upstream-connections/</loc><lastmod>2027-03-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-keepalive-upstream-connections/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-keepalive-upstream-connections/"/></url><url><loc>https://hk.xbcatm.com/posts/redis-hash-fields-group-data/</loc><lastmod>2027-03-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-hash-fields-group-data/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-hash-fields-group-data/"/></url><url><loc>https://hk.xbcatm.com/tags/data-model/</loc><lastmod>2027-03-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/service-discovery/</loc><lastmod>2027-03-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/dns-service-discovery-is-a-handshake/</loc><lastmod>2027-03-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dns-service-discovery-is-a-handshake/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dns-service-discovery-is-a-handshake/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-analyze-refreshes-planner-stats/</loc><lastmod>2027-03-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-analyze-refreshes-planner-stats/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-analyze-refreshes-planner-stats/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-timesyncd-keeps-a-clock/</loc><lastmod>2027-03-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-timesyncd-keeps-a-clock/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-timesyncd-keeps-a-clock/"/></url><url><loc>https://hk.xbcatm.com/tags/ntp/</loc><lastmod>2027-03-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ntp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ntp/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-annotations-carry-non-scheduling-metadata/</loc><lastmod>2027-03-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-annotations-carry-non-scheduling-metadata/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-annotations-carry-non-scheduling-metadata/"/></url><url><loc>https://hk.xbcatm.com/tags/objects/</loc><lastmod>2027-03-10T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/disk-scheduling-elevators-serve-fairly/</loc><lastmod>2027-03-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/disk-scheduling-elevators-serve-fairly/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/disk-scheduling-elevators-serve-fairly/"/></url><url><loc>https://hk.xbcatm.com/posts/structured-logs-pay-for-querying/</loc><lastmod>2027-03-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/structured-logs-pay-for-querying/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/structured-logs-pay-for-querying/"/></url><url><loc>https://hk.xbcatm.com/posts/http-charset-names-the-text-decoding/</loc><lastmod>2027-03-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-charset-names-the-text-decoding/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-charset-names-the-text-decoding/"/></url><url><loc>https://hk.xbcatm.com/tags/charset/</loc><lastmod>2027-03-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/culture/</loc><lastmod>2027-03-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/incident/</loc><lastmod>2027-03-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/incident/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/incident/"/></url><url><loc>https://hk.xbcatm.com/posts/postmortems-are-for-learning-not-blame/</loc><lastmod>2027-03-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postmortems-are-for-learning-not-blame/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postmortems-are-for-learning-not-blame/"/></url><url><loc>https://hk.xbcatm.com/posts/shell-command-substitution-embeds-output/</loc><lastmod>2027-03-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-command-substitution-embeds-output/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-command-substitution-embeds-output/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-access-log-format-records-the-wire/</loc><lastmod>2027-03-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-access-log-format-records-the-wire/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-access-log-format-records-the-wire/"/></url><url><loc>https://hk.xbcatm.com/posts/incident-response-needs-a-timeline/</loc><lastmod>2027-03-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/incident-response-needs-a-timeline/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/incident-response-needs-a-timeline/"/></url><url><loc>https://hk.xbcatm.com/posts/ssh-agent-holds-keys-in-memory/</loc><lastmod>2027-02-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/ssh-agent-holds-keys-in-memory/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/ssh-agent-holds-keys-in-memory/"/></url><url><loc>https://hk.xbcatm.com/tags/failover/</loc><lastmod>2027-02-25T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/failover-is-a-practiced-switch/</loc><lastmod>2027-02-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/failover-is-a-practiced-switch/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/failover-is-a-practiced-switch/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-taints-and-tolerations-reserve-nodes/</loc><lastmod>2027-02-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-taints-and-tolerations-reserve-nodes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-taints-and-tolerations-reserve-nodes/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-window-frame-boundaries/</loc><lastmod>2027-02-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-window-frame-boundaries/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-window-frame-boundaries/"/></url><url><loc>https://hk.xbcatm.com/tags/analytics/</loc><lastmod>2027-02-23T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/capacity-planning-is-a-number/</loc><lastmod>2027-02-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/capacity-planning-is-a-number/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/capacity-planning-is-a-number/"/></url><url><loc>https://hk.xbcatm.com/posts/linux-file-descriptors-are-handles/</loc><lastmod>2027-02-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/linux-file-descriptors-are-handles/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/linux-file-descriptors-are-handles/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-environment-files-keep-config-apart/</loc><lastmod>2027-02-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-environment-files-keep-config-apart/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-environment-files-keep-config-apart/"/></url><url><loc>https://hk.xbcatm.com/posts/promote-unless-redeploy-many-times/</loc><lastmod>2027-02-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/promote-unless-redeploy-many-times/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/promote-unless-redeploy-many-times/"/></url><url><loc>https://hk.xbcatm.com/posts/redis-pubsub-broadcasts-to-subscribers/</loc><lastmod>2027-02-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-pubsub-broadcasts-to-subscribers/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-pubsub-broadcasts-to-subscribers/"/></url><url><loc>https://hk.xbcatm.com/posts/shell-here-string-feeds-stdin/</loc><lastmod>2027-02-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-here-string-feeds-stdin/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-here-string-feeds-stdin/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-connection-pool-shares-slots/</loc><lastmod>2027-02-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-connection-pool-shares-slots/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-connection-pool-shares-slots/"/></url><url><loc>https://hk.xbcatm.com/tags/connections/</loc><lastmod>2027-02-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/semantic-versioning-makes-compatibility-explicit/</loc><lastmod>2027-02-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/semantic-versioning-makes-compatibility-explicit/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/semantic-versioning-makes-compatibility-explicit/"/></url><url><loc>https://hk.xbcatm.com/tags/auth/</loc><lastmod>2027-02-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/auth/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/auth/"/></url><url><loc>https://hk.xbcatm.com/posts/http-basic-auth-in-the-header/</loc><lastmod>2027-02-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-basic-auth-in-the-header/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-basic-auth-in-the-header/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-service-stable-virtual-address/</loc><lastmod>2027-02-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-service-stable-virtual-address/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-service-stable-virtual-address/"/></url><url><loc>https://hk.xbcatm.com/posts/feature-flags-decouple-release-from-exposure/</loc><lastmod>2027-02-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/feature-flags-decouple-release-from-exposure/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/feature-flags-decouple-release-from-exposure/"/></url><url><loc>https://hk.xbcatm.com/tags/feature-flags/</loc><lastmod>2027-02-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/postgres-btree-vs-hash-index/</loc><lastmod>2027-02-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-btree-vs-hash-index/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-btree-vs-hash-index/"/></url><url><loc>https://hk.xbcatm.com/posts/git-branch-is-a-moving-label/</loc><lastmod>2027-02-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/git-branch-is-a-moving-label/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/git-branch-is-a-moving-label/"/></url><url><loc>https://hk.xbcatm.com/posts/queues-choose-delivery-guarantees/</loc><lastmod>2027-02-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/queues-choose-delivery-guarantees/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/queues-choose-delivery-guarantees/"/></url><url><loc>https://hk.xbcatm.com/posts/prometheus-alert-stale-data-marks-gone/</loc><lastmod>2027-02-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-alert-stale-data-marks-gone/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-alert-stale-data-marks-gone/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-transaction-conflicts-and-abort/</loc><lastmod>2027-02-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-transaction-conflicts-and-abort/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-transaction-conflicts-and-abort/"/></url><url><loc>https://hk.xbcatm.com/posts/serving-stale-cache-beats-downtime/</loc><lastmod>2027-02-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/serving-stale-cache-beats-downtime/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/serving-stale-cache-beats-downtime/"/></url><url><loc>https://hk.xbcatm.com/posts/shell-case-branches-match-patterns/</loc><lastmod>2027-01-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-case-branches-match-patterns/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-case-branches-match-patterns/"/></url><url><loc>https://hk.xbcatm.com/tags/basics/</loc><lastmod>2027-01-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/connection-pools-amortize-slow-setup/</loc><lastmod>2027-01-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/connection-pools-amortize-slow-setup/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/connection-pools-amortize-slow-setup/"/></url><url><loc>https://hk.xbcatm.com/tags/data-structure/</loc><lastmod>2027-01-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-strings-are-the-lowest-level/</loc><lastmod>2027-01-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-strings-are-the-lowest-level/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-strings-are-the-lowest-level/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-user-services-out-of-login/</loc><lastmod>2027-01-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-user-services-out-of-login/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-user-services-out-of-login/"/></url><url><loc>https://hk.xbcatm.com/tags/migrations/</loc><lastmod>2027-01-24T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/migrations-are-versioned-schema-changes/</loc><lastmod>2027-01-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/migrations-are-versioned-schema-changes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/migrations-are-versioned-schema-changes/"/></url><url><loc>https://hk.xbcatm.com/posts/tcp-mss-clamps-the-payload/</loc><lastmod>2027-01-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-mss-clamps-the-payload/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-mss-clamps-the-payload/"/></url><url><loc>https://hk.xbcatm.com/tags/mtu/</loc><lastmod>2027-01-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/mtu/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/mtu/"/></url><url><loc>https://hk.xbcatm.com/posts/http-cors-breadth-of-access/</loc><lastmod>2027-01-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-cors-breadth-of-access/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-cors-breadth-of-access/"/></url><url><loc>https://hk.xbcatm.com/tags/caddy/</loc><lastmod>2027-01-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/caddy/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/caddy/"/></url><url><loc>https://hk.xbcatm.com/posts/caddy-auto-https-handles-renewals/</loc><lastmod>2027-01-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/caddy-auto-https-handles-renewals/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/caddy-auto-https-handles-renewals/"/></url><url><loc>https://hk.xbcatm.com/tags/batch/</loc><lastmod>2027-01-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/idempotency-keys-are-client-promises/</loc><lastmod>2027-01-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/idempotency-keys-are-client-promises/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/idempotency-keys-are-client-promises/"/></url><url><loc>https://hk.xbcatm.com/posts/redis-pipeline-batches-round-trips/</loc><lastmod>2027-01-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-pipeline-batches-round-trips/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-pipeline-batches-round-trips/"/></url><url><loc>https://hk.xbcatm.com/posts/http-media-type-negotiates-the-reply/</loc><lastmod>2027-01-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-media-type-negotiates-the-reply/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-media-type-negotiates-the-reply/"/></url><url><loc>https://hk.xbcatm.com/tags/ansible/</loc><lastmod>2027-01-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ansible/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ansible/"/></url><url><loc>https://hk.xbcatm.com/posts/ansible-playbooks-declare-target-state/</loc><lastmod>2027-01-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/ansible-playbooks-declare-target-state/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/ansible-playbooks-declare-target-state/"/></url><url><loc>https://hk.xbcatm.com/tags/config-management/</loc><lastmod>2027-01-17T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/grpc-streams-multiplex-bidirectional-flow/</loc><lastmod>2027-01-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/grpc-streams-multiplex-bidirectional-flow/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/grpc-streams-multiplex-bidirectional-flow/"/></url><url><loc>https://hk.xbcatm.com/posts/http2-multiplexing-fixes-head-of-line/</loc><lastmod>2027-01-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http2-multiplexing-fixes-head-of-line/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http2-multiplexing-fixes-head-of-line/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-grouping-sets-roll-views/</loc><lastmod>2027-01-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-grouping-sets-roll-views/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-grouping-sets-roll-views/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-liveness-and-readiness-are-two-gates/</loc><lastmod>2027-01-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-liveness-and-readiness-are-two-gates/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-liveness-and-readiness-are-two-gates/"/></url><url><loc>https://hk.xbcatm.com/posts/cookies-and-sessions-hold-boundaries/</loc><lastmod>2027-01-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cookies-and-sessions-hold-boundaries/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cookies-and-sessions-hold-boundaries/"/></url><url><loc>https://hk.xbcatm.com/posts/shell-signal-traps-run-on-the-way-out/</loc><lastmod>2027-01-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/shell-signal-traps-run-on-the-way-out/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/shell-signal-traps-run-on-the-way-out/"/></url><url><loc>https://hk.xbcatm.com/tags/high-availability/</loc><lastmod>2027-01-09T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/redis-sentinel-watches-the-primary/</loc><lastmod>2027-01-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redis-sentinel-watches-the-primary/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redis-sentinel-watches-the-primary/"/></url><url><loc>https://hk.xbcatm.com/tags/realtime/</loc><lastmod>2027-01-08T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/websockets/</loc><lastmod>2027-01-08T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/websockets-are-a-session-not-a-page/</loc><lastmod>2027-01-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/websockets-are-a-session-not-a-page/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/websockets-are-a-session-not-a-page/"/></url><url><loc>https://hk.xbcatm.com/posts/prometheus-histograms-track-distributions/</loc><lastmod>2027-01-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/prometheus-histograms-track-distributions/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/prometheus-histograms-track-distributions/"/></url><url><loc>https://hk.xbcatm.com/posts/nginx-upstream-health-checks-spread-traffic/</loc><lastmod>2027-01-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nginx-upstream-health-checks-spread-traffic/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nginx-upstream-health-checks-spread-traffic/"/></url><url><loc>https://hk.xbcatm.com/tags/cdn/</loc><lastmod>2027-01-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/cdn/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/cdn/"/></url><url><loc>https://hk.xbcatm.com/posts/cdns-move-the-cache-closer/</loc><lastmod>2027-01-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cdns-move-the-cache-closer/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cdns-move-the-cache-closer/"/></url><url><loc>https://hk.xbcatm.com/posts/k8s-init-containers-set-up-the-pod/</loc><lastmod>2027-01-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/k8s-init-containers-set-up-the-pod/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/k8s-init-containers-set-up-the-pod/"/></url><url><loc>https://hk.xbcatm.com/posts/postgres-foreign-keys-keep-references-honest/</loc><lastmod>2027-01-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/postgres-foreign-keys-keep-references-honest/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/postgres-foreign-keys-keep-references-honest/"/></url><url><loc>https://hk.xbcatm.com/tags/constraints/</loc><lastmod>2027-01-02T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/a-purpose-built-health-check-is-worth-keeping/</loc><lastmod>2026-12-31T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/a-purpose-built-health-check-is-worth-keeping/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/a-purpose-built-health-check-is-worth-keeping/"/></url><url><loc>https://hk.xbcatm.com/posts/full-versus-incremental-backups/</loc><lastmod>2026-12-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/full-versus-incremental-backups/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/full-versus-incremental-backups/"/></url><url><loc>https://hk.xbcatm.com/posts/read-only-root-hardens-the-service/</loc><lastmod>2026-12-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/read-only-root-hardens-the-service/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/read-only-root-hardens-the-service/"/></url><url><loc>https://hk.xbcatm.com/posts/graceful-shutdown-stops-work-not-life/</loc><lastmod>2026-12-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/graceful-shutdown-stops-work-not-life/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/graceful-shutdown-stops-work-not-life/"/></url><url><loc>https://hk.xbcatm.com/posts/traces-tell-the-flow-of-a-request/</loc><lastmod>2026-12-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/traces-tell-the-flow-of-a-request/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/traces-tell-the-flow-of-a-request/"/></url><url><loc>https://hk.xbcatm.com/posts/curl-as-your-first-probe/</loc><lastmod>2026-12-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/curl-as-your-first-probe/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/curl-as-your-first-probe/"/></url><url><loc>https://hk.xbcatm.com/posts/containers-are-processes-in-envelopes/</loc><lastmod>2026-12-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/containers-are-processes-in-envelopes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/containers-are-processes-in-envelopes/"/></url><url><loc>https://hk.xbcatm.com/posts/file-locks-serialize-writers/</loc><lastmod>2026-12-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/file-locks-serialize-writers/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/file-locks-serialize-writers/"/></url><url><loc>https://hk.xbcatm.com/tags/filesystems/</loc><lastmod>2026-12-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/link-header-relates-adjacent-resources/</loc><lastmod>2026-12-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/link-header-relates-adjacent-resources/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/link-header-relates-adjacent-resources/"/></url><url><loc>https://hk.xbcatm.com/posts/stateful-data-lives-apart-from-temporary/</loc><lastmod>2026-12-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/stateful-data-lives-apart-from-temporary/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/stateful-data-lives-apart-from-temporary/"/></url><url><loc>https://hk.xbcatm.com/posts/http-status-codes-say-what-happened/</loc><lastmod>2026-12-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-status-codes-say-what-happened/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-status-codes-say-what-happened/"/></url><url><loc>https://hk.xbcatm.com/tags/status/</loc><lastmod>2026-12-03T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/encoding/</loc><lastmod>2026-12-02T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/utf8-signals-encoding-in-one-stroke/</loc><lastmod>2026-12-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/utf8-signals-encoding-in-one-stroke/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/utf8-signals-encoding-in-one-stroke/"/></url><url><loc>https://hk.xbcatm.com/posts/hostnames-are-for-people-too/</loc><lastmod>2026-12-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/hostnames-are-for-people-too/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/hostnames-are-for-people-too/"/></url><url><loc>https://hk.xbcatm.com/tags/formats/</loc><lastmod>2026-11-30T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/ipv6-text-form-is-condensed/</loc><lastmod>2026-11-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/ipv6-text-form-is-condensed/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/ipv6-text-form-is-condensed/"/></url><url><loc>https://hk.xbcatm.com/posts/golden-signals-of-health/</loc><lastmod>2026-11-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/golden-signals-of-health/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/golden-signals-of-health/"/></url><url><loc>https://hk.xbcatm.com/posts/timestamps-need-a-timezone-to-be-true/</loc><lastmod>2026-11-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/timestamps-need-a-timezone-to-be-true/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/timestamps-need-a-timezone-to-be-true/"/></url><url><loc>https://hk.xbcatm.com/tags/ipc/</loc><lastmod>2026-11-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/ipc/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/ipc/"/></url><url><loc>https://hk.xbcatm.com/posts/unix-sockets-skip-the-network-stack/</loc><lastmod>2026-11-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/unix-sockets-skip-the-network-stack/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/unix-sockets-skip-the-network-stack/"/></url><url><loc>https://hk.xbcatm.com/posts/fsync-pins-data-to-durability/</loc><lastmod>2026-11-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/fsync-pins-data-to-durability/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/fsync-pins-data-to-durability/"/></url><url><loc>https://hk.xbcatm.com/posts/writeback-flushes-dirty-pages-to-disk/</loc><lastmod>2026-11-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/writeback-flushes-dirty-pages-to-disk/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/writeback-flushes-dirty-pages-to-disk/"/></url><url><loc>https://hk.xbcatm.com/posts/immutable-assets-and-fingerprints/</loc><lastmod>2026-11-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/immutable-assets-and-fingerprints/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/immutable-assets-and-fingerprints/"/></url><url><loc>https://hk.xbcatm.com/tags/swap/</loc><lastmod>2026-11-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/swap/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/swap/"/></url><url><loc>https://hk.xbcatm.com/posts/swap-gives-memory-a-slow-extra-layer/</loc><lastmod>2026-11-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/swap-gives-memory-a-slow-extra-layer/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/swap-gives-memory-a-slow-extra-layer/"/></url><url><loc>https://hk.xbcatm.com/posts/zram-squeezes-swap-into-ram/</loc><lastmod>2026-11-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/zram-squeezes-swap-into-ram/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/zram-squeezes-swap-into-ram/"/></url><url><loc>https://hk.xbcatm.com/posts/kernel-signals-are-notes-to-processes/</loc><lastmod>2026-11-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/kernel-signals-are-notes-to-processes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/kernel-signals-are-notes-to-processes/"/></url><url><loc>https://hk.xbcatm.com/tags/processes/</loc><lastmod>2026-11-23T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/sysctl-tunes-the-running-kernel/</loc><lastmod>2026-11-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/sysctl-tunes-the-running-kernel/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/sysctl-tunes-the-running-kernel/"/></url><url><loc>https://hk.xbcatm.com/posts/logrotate-keeps-log-disk-bounded/</loc><lastmod>2026-11-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/logrotate-keeps-log-disk-bounded/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/logrotate-keeps-log-disk-bounded/"/></url><url><loc>https://hk.xbcatm.com/posts/named-config-files-favor-clarity/</loc><lastmod>2026-11-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/named-config-files-favor-clarity/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/named-config-files-favor-clarity/"/></url><url><loc>https://hk.xbcatm.com/posts/systemd-timers-keep-the-schedule/</loc><lastmod>2026-11-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/systemd-timers-keep-the-schedule/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/systemd-timers-keep-the-schedule/"/></url><url><loc>https://hk.xbcatm.com/posts/dns-speaks-tcp-when-answers-exceed-udp/</loc><lastmod>2026-11-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dns-speaks-tcp-when-answers-exceed-udp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dns-speaks-tcp-when-answers-exceed-udp/"/></url><url><loc>https://hk.xbcatm.com/tags/addressing/</loc><lastmod>2026-11-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/nat/</loc><lastmod>2026-11-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/nat/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/nat/"/></url><url><loc>https://hk.xbcatm.com/posts/nat-shares-one-public-identity/</loc><lastmod>2026-11-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/nat-shares-one-public-identity/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/nat-shares-one-public-identity/"/></url><url><loc>https://hk.xbcatm.com/tags/loopback/</loc><lastmod>2026-11-17T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/the-loopback-address-never-leaves-home/</loc><lastmod>2026-11-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/the-loopback-address-never-leaves-home/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/the-loopback-address-never-leaves-home/"/></url><url><loc>https://hk.xbcatm.com/posts/sso-is-a-relay-not-a-password/</loc><lastmod>2026-11-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/sso-is-a-relay-not-a-password/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/sso-is-a-relay-not-a-password/"/></url><url><loc>https://hk.xbcatm.com/tags/testing/</loc><lastmod>2026-11-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/testing/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/testing/"/></url><url><loc>https://hk.xbcatm.com/posts/ipv6-neighbor-discovery-replaces-arp/</loc><lastmod>2026-11-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/ipv6-neighbor-discovery-replaces-arp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/ipv6-neighbor-discovery-replaces-arp/"/></url><url><loc>https://hk.xbcatm.com/tags/arp/</loc><lastmod>2026-11-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/arp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/arp/"/></url><url><loc>https://hk.xbcatm.com/posts/arp-binds-ip-to-the-interface/</loc><lastmod>2026-11-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/arp-binds-ip-to-the-interface/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/arp-binds-ip-to-the-interface/"/></url><url><loc>https://hk.xbcatm.com/tags/link-layer/</loc><lastmod>2026-11-15T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/path-mtu-discovery-fits-the-smallest-link/</loc><lastmod>2026-11-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/path-mtu-discovery-fits-the-smallest-link/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/path-mtu-discovery-fits-the-smallest-link/"/></url><url><loc>https://hk.xbcatm.com/tags/devops/</loc><lastmod>2026-11-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/devops/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/devops/"/></url><url><loc>https://hk.xbcatm.com/posts/terraform-and-infrastructure-as-code/</loc><lastmod>2026-11-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/terraform-and-infrastructure-as-code/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/terraform-and-infrastructure-as-code/"/></url><url><loc>https://hk.xbcatm.com/posts/tcp-time-wait-frees-ports-steadily/</loc><lastmod>2026-11-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-time-wait-frees-ports-steadily/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-time-wait-frees-ports-steadily/"/></url><url><loc>https://hk.xbcatm.com/tags/transport/</loc><lastmod>2026-11-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/tcp-congestion-control-paces-the-flow/</loc><lastmod>2026-11-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tcp-congestion-control-paces-the-flow/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tcp-congestion-control-paces-the-flow/"/></url><url><loc>https://hk.xbcatm.com/tags/udp/</loc><lastmod>2026-11-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/udp/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/udp/"/></url><url><loc>https://hk.xbcatm.com/posts/udp-trades-reliability-for-latency/</loc><lastmod>2026-11-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/udp-trades-reliability-for-latency/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/udp-trades-reliability-for-latency/"/></url><url><loc>https://hk.xbcatm.com/posts/cgroup-v2-resource-limits/</loc><lastmod>2026-11-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cgroup-v2-resource-limits/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cgroup-v2-resource-limits/"/></url><url><loc>https://hk.xbcatm.com/posts/transaction-retry-loops/</loc><lastmod>2026-11-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/transaction-retry-loops/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/transaction-retry-loops/"/></url><url><loc>https://hk.xbcatm.com/posts/check-https-beyond-a-lock/</loc><lastmod>2026-11-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/check-https-beyond-a-lock/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/check-https-beyond-a-lock/"/></url><url><loc>https://hk.xbcatm.com/posts/sni-selects-the-certificate/</loc><lastmod>2026-11-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/sni-selects-the-certificate/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/sni-selects-the-certificate/"/></url><url><loc>https://hk.xbcatm.com/posts/server-timing-shows-the-work/</loc><lastmod>2026-11-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/server-timing-shows-the-work/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/server-timing-shows-the-work/"/></url><url><loc>https://hk.xbcatm.com/posts/age-header-marks-cache-age/</loc><lastmod>2026-11-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/age-header-marks-cache-age/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/age-header-marks-cache-age/"/></url><url><loc>https://hk.xbcatm.com/posts/reverse-proxy-is-the-front-door/</loc><lastmod>2026-11-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/reverse-proxy-is-the-front-door/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/reverse-proxy-is-the-front-door/"/></url><url><loc>https://hk.xbcatm.com/tags/tools/</loc><lastmod>2026-11-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/traceroute-maps-the-path/</loc><lastmod>2026-11-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/traceroute-maps-the-path/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/traceroute-maps-the-path/"/></url><url><loc>https://hk.xbcatm.com/tags/troubleshooting/</loc><lastmod>2026-11-05T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/dual-stack-address-selection/</loc><lastmod>2026-11-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dual-stack-address-selection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dual-stack-address-selection/"/></url><url><loc>https://hk.xbcatm.com/posts/zero-downtime-migrations/</loc><lastmod>2026-11-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/zero-downtime-migrations/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/zero-downtime-migrations/"/></url><url><loc>https://hk.xbcatm.com/posts/blue-green-deployments/</loc><lastmod>2026-11-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/blue-green-deployments/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/blue-green-deployments/"/></url><url><loc>https://hk.xbcatm.com/posts/tokens-over-query-strings/</loc><lastmod>2026-11-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tokens-over-query-strings/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tokens-over-query-strings/"/></url><url><loc>https://hk.xbcatm.com/posts/supervise-processes-with-systemd/</loc><lastmod>2026-11-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/supervise-processes-with-systemd/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/supervise-processes-with-systemd/"/></url><url><loc>https://hk.xbcatm.com/posts/metrics-units-in-the-name/</loc><lastmod>2026-10-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/metrics-units-in-the-name/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/metrics-units-in-the-name/"/></url><url><loc>https://hk.xbcatm.com/posts/rate-limit-by-identifier/</loc><lastmod>2026-10-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/rate-limit-by-identifier/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/rate-limit-by-identifier/"/></url><url><loc>https://hk.xbcatm.com/posts/edns0-suits-larger-dns-answers/</loc><lastmod>2026-10-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/edns0-suits-larger-dns-answers/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/edns0-suits-larger-dns-answers/"/></url><url><loc>https://hk.xbcatm.com/posts/l4-and-l7-balancing-serve-different-needs/</loc><lastmod>2026-10-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/l4-and-l7-balancing-serve-different-needs/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/l4-and-l7-balancing-serve-different-needs/"/></url><url><loc>https://hk.xbcatm.com/posts/file-descriptor-limits-are-not-unlimited/</loc><lastmod>2026-10-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/file-descriptor-limits-are-not-unlimited/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/file-descriptor-limits-are-not-unlimited/"/></url><url><loc>https://hk.xbcatm.com/posts/oom-killer-makes-the-final-memory-call/</loc><lastmod>2026-10-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/oom-killer-makes-the-final-memory-call/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/oom-killer-makes-the-final-memory-call/"/></url><url><loc>https://hk.xbcatm.com/posts/cookie-scope-keeps-the-session-small/</loc><lastmod>2026-10-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cookie-scope-keeps-the-session-small/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cookie-scope-keeps-the-session-small/"/></url><url><loc>https://hk.xbcatm.com/tags/cookies/</loc><lastmod>2026-10-25T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/http-methods-describe-intent/</loc><lastmod>2026-10-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-methods-describe-intent/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-methods-describe-intent/"/></url><url><loc>https://hk.xbcatm.com/posts/persistent-connections-are-the-default/</loc><lastmod>2026-10-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/persistent-connections-are-the-default/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/persistent-connections-are-the-default/"/></url><url><loc>https://hk.xbcatm.com/tags/rest/</loc><lastmod>2026-10-24T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/rest/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/rest/"/></url><url><loc>https://hk.xbcatm.com/posts/cache-control-private-vs-shared/</loc><lastmod>2026-10-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cache-control-private-vs-shared/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cache-control-private-vs-shared/"/></url><url><loc>https://hk.xbcatm.com/posts/negative-dns-answers-have-a-price/</loc><lastmod>2026-10-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/negative-dns-answers-have-a-price/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/negative-dns-answers-have-a-price/"/></url><url><loc>https://hk.xbcatm.com/posts/dnssec-adds-a-chain-of-trust/</loc><lastmod>2026-10-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dnssec-adds-a-chain-of-trust/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dnssec-adds-a-chain-of-trust/"/></url><url><loc>https://hk.xbcatm.com/tags/signing/</loc><lastmod>2026-10-21T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/download/</loc><lastmod>2026-10-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/embedded/</loc><lastmod>2026-10-20T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/range-requests-resume-interrupted-transfer/</loc><lastmod>2026-10-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/range-requests-resume-interrupted-transfer/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/range-requests-resume-interrupted-transfer/"/></url><url><loc>https://hk.xbcatm.com/tags/sqlite/</loc><lastmod>2026-10-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/sqlite/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/sqlite/"/></url><url><loc>https://hk.xbcatm.com/posts/sqlite-a-file-that-is-also-a-database/</loc><lastmod>2026-10-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/sqlite-a-file-that-is-also-a-database/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/sqlite-a-file-that-is-also-a-database/"/></url><url><loc>https://hk.xbcatm.com/posts/stale-replication-slots-hold-wal-back/</loc><lastmod>2026-10-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/stale-replication-slots-hold-wal-back/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/stale-replication-slots-hold-wal-back/"/></url><url><loc>https://hk.xbcatm.com/tags/analysis/</loc><lastmod>2026-10-18T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/window-functions-add-row-context/</loc><lastmod>2026-10-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/window-functions-add-row-context/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/window-functions-add-row-context/"/></url><url><loc>https://hk.xbcatm.com/posts/partial-indexes-cover-only-the-rows-that-matter/</loc><lastmod>2026-10-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/partial-indexes-cover-only-the-rows-that-matter/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/partial-indexes-cover-only-the-rows-that-matter/"/></url><url><loc>https://hk.xbcatm.com/posts/materialized-views-freeze-expensive-answers/</loc><lastmod>2026-10-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/materialized-views-freeze-expensive-answers/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/materialized-views-freeze-expensive-answers/"/></url><url><loc>https://hk.xbcatm.com/posts/metrics-and-logs-answer-different-questions/</loc><lastmod>2026-10-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/metrics-and-logs-answer-different-questions/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/metrics-and-logs-answer-different-questions/"/></url><url><loc>https://hk.xbcatm.com/posts/lazy-loading-defers-what-is-not-needed-yet/</loc><lastmod>2026-10-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/lazy-loading-defers-what-is-not-needed-yet/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/lazy-loading-defers-what-is-not-needed-yet/"/></url><url><loc>https://hk.xbcatm.com/posts/content-type-and-vary-work-together/</loc><lastmod>2026-10-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/content-type-and-vary-work-together/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/content-type-and-vary-work-together/"/></url><url><loc>https://hk.xbcatm.com/posts/idempotency-keys-scope-one-logical-action/</loc><lastmod>2026-10-12T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/idempotency-keys-scope-one-logical-action/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/idempotency-keys-scope-one-logical-action/"/></url><url><loc>https://hk.xbcatm.com/posts/content-type-tells-the-reader-what-it-is/</loc><lastmod>2026-10-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/content-type-tells-the-reader-what-it-is/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/content-type-tells-the-reader-what-it-is/"/></url><url><loc>https://hk.xbcatm.com/posts/hsts-makes-a-computer-remember-https/</loc><lastmod>2026-10-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/hsts-makes-a-computer-remember-https/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/hsts-makes-a-computer-remember-https/"/></url><url><loc>https://hk.xbcatm.com/posts/http-methods-are-a-vocabulary/</loc><lastmod>2026-10-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-methods-are-a-vocabulary/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-methods-are-a-vocabulary/"/></url><url><loc>https://hk.xbcatm.com/tags/hints/</loc><lastmod>2026-10-06T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/preload-gives-crucial-assets-a-head-start/</loc><lastmod>2026-10-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/preload-gives-crucial-assets-a-head-start/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/preload-gives-crucial-assets-a-head-start/"/></url><url><loc>https://hk.xbcatm.com/tags/databases/</loc><lastmod>2026-10-04T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/locks-and-lease-help-with-concurrency/</loc><lastmod>2026-10-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/locks-and-lease-help-with-concurrency/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/locks-and-lease-help-with-concurrency/"/></url><url><loc>https://hk.xbcatm.com/posts/redirect-chains-add-round-trips/</loc><lastmod>2026-10-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/redirect-chains-add-round-trips/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/redirect-chains-add-round-trips/"/></url><url><loc>https://hk.xbcatm.com/tags/crawling/</loc><lastmod>2026-10-02T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/robots-txt-is-a-courtesy-agreement/</loc><lastmod>2026-10-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/robots-txt-is-a-courtesy-agreement/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/robots-txt-is-a-courtesy-agreement/"/></url><url><loc>https://hk.xbcatm.com/tags/cost/</loc><lastmod>2026-09-30T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/lifecycle/</loc><lastmod>2026-09-30T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/s3-storage-classes-trade-cost-for-access/</loc><lastmod>2026-09-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/s3-storage-classes-trade-cost-for-access/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/s3-storage-classes-trade-cost-for-access/"/></url><url><loc>https://hk.xbcatm.com/posts/security-headers-make-the-browser-help/</loc><lastmod>2026-09-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/security-headers-make-the-browser-help/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/security-headers-make-the-browser-help/"/></url><url><loc>https://hk.xbcatm.com/posts/secrets-need-expiry-not-just-rotation/</loc><lastmod>2026-09-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/secrets-need-expiry-not-just-rotation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/secrets-need-expiry-not-just-rotation/"/></url><url><loc>https://hk.xbcatm.com/posts/etags-and-conditional-requests-avoid-work/</loc><lastmod>2026-09-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/etags-and-conditional-requests-avoid-work/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/etags-and-conditional-requests-avoid-work/"/></url><url><loc>https://hk.xbcatm.com/posts/multi-stage-builds-shrink-the-image/</loc><lastmod>2026-09-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/multi-stage-builds-shrink-the-image/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/multi-stage-builds-shrink-the-image/"/></url><url><loc>https://hk.xbcatm.com/posts/tls-version-is-a-feature-you-pin/</loc><lastmod>2026-09-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tls-version-is-a-feature-you-pin/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tls-version-is-a-feature-you-pin/"/></url><url><loc>https://hk.xbcatm.com/tags/alerts/</loc><lastmod>2026-09-22T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/alerts-tell-you-what-to-read/</loc><lastmod>2026-09-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/alerts-tell-you-what-to-read/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/alerts-tell-you-what-to-read/"/></url><url><loc>https://hk.xbcatm.com/posts/histograms-save-the-latency-shape/</loc><lastmod>2026-09-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/histograms-save-the-latency-shape/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/histograms-save-the-latency-shape/"/></url><url><loc>https://hk.xbcatm.com/posts/rollout-is-a-flag-not-a-switch/</loc><lastmod>2026-09-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/rollout-is-a-flag-not-a-switch/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/rollout-is-a-flag-not-a-switch/"/></url><url><loc>https://hk.xbcatm.com/posts/slo-error-budget-names-the-allowed-failures/</loc><lastmod>2026-09-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/slo-error-budget-names-the-allowed-failures/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/slo-error-budget-names-the-allowed-failures/"/></url><url><loc>https://hk.xbcatm.com/tags/budgeting/</loc><lastmod>2026-09-17T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/http2-fixes-head-of-line-at-the-connection/</loc><lastmod>2026-09-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http2-fixes-head-of-line-at-the-connection/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http2-fixes-head-of-line-at-the-connection/"/></url><url><loc>https://hk.xbcatm.com/posts/credentials-live-outside-the-repo/</loc><lastmod>2026-09-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/credentials-live-outside-the-repo/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/credentials-live-outside-the-repo/"/></url><url><loc>https://hk.xbcatm.com/posts/cors-is-a-browser-enforced-guest-list/</loc><lastmod>2026-09-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cors-is-a-browser-enforced-guest-list/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cors-is-a-browser-enforced-guest-list/"/></url><url><loc>https://hk.xbcatm.com/posts/csp-sets-what-the-browser-can-load/</loc><lastmod>2026-09-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/csp-sets-what-the-browser-can-load/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/csp-sets-what-the-browser-can-load/"/></url><url><loc>https://hk.xbcatm.com/posts/indexes-serve-queries-not-algorithms/</loc><lastmod>2026-09-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/indexes-serve-queries-not-algorithms/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/indexes-serve-queries-not-algorithms/"/></url><url><loc>https://hk.xbcatm.com/posts/clock-sync-keeps-distributed-time-honest/</loc><lastmod>2026-09-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/clock-sync-keeps-distributed-time-honest/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/clock-sync-keeps-distributed-time-honest/"/></url><url><loc>https://hk.xbcatm.com/posts/logs-are-questions-not-piles/</loc><lastmod>2026-09-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/logs-are-questions-not-piles/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/logs-are-questions-not-piles/"/></url><url><loc>https://hk.xbcatm.com/posts/connection-caps-guard-a-shared-database/</loc><lastmod>2026-09-05T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/connection-caps-guard-a-shared-database/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/connection-caps-guard-a-shared-database/"/></url><url><loc>https://hk.xbcatm.com/posts/query-timeouts-bound-a-bad-query-s-cost/</loc><lastmod>2026-09-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/query-timeouts-bound-a-bad-query-s-cost/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/query-timeouts-bound-a-bad-query-s-cost/"/></url><url><loc>https://hk.xbcatm.com/posts/servers-need-discipline-time/</loc><lastmod>2026-09-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/servers-need-discipline-time/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/servers-need-discipline-time/"/></url><url><loc>https://hk.xbcatm.com/tags/timeouts/</loc><lastmod>2026-09-02T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/backups-follow-the-3-2-1-rule/</loc><lastmod>2026-08-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/backups-follow-the-3-2-1-rule/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/backups-follow-the-3-2-1-rule/"/></url><url><loc>https://hk.xbcatm.com/posts/http-idempotency-makes-retries-safe/</loc><lastmod>2026-08-26T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-idempotency-makes-retries-safe/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-idempotency-makes-retries-safe/"/></url><url><loc>https://hk.xbcatm.com/decisions/</loc><lastmod>2026-08-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/decisions/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/decisions/"/></url><url><loc>https://hk.xbcatm.com/decisions/adr-static-not-dynamic-server/</loc><lastmod>2026-08-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/decisions/adr-static-not-dynamic-server/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/decisions/adr-static-not-dynamic-server/"/></url><url><loc>https://hk.xbcatm.com/posts/transaction-isolation-is-a-compromise/</loc><lastmod>2026-08-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/transaction-isolation-is-a-compromise/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/transaction-isolation-is-a-compromise/"/></url><url><loc>https://hk.xbcatm.com/posts/rate-limiting-is-a-shared-budget/</loc><lastmod>2026-08-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/rate-limiting-is-a-shared-budget/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/rate-limiting-is-a-shared-budget/"/></url><url><loc>https://hk.xbcatm.com/decisions/adr-pin-vendored-theme-and-generator/</loc><lastmod>2026-08-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/decisions/adr-pin-vendored-theme-and-generator/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/decisions/adr-pin-vendored-theme-and-generator/"/></url><url><loc>https://hk.xbcatm.com/decisions/adr-complete-directory-release/</loc><lastmod>2026-08-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/decisions/adr-complete-directory-release/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/decisions/adr-complete-directory-release/"/></url><url><loc>https://hk.xbcatm.com/posts/cursor-pagination-keeps-the-view-stable/</loc><lastmod>2026-08-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cursor-pagination-keeps-the-view-stable/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cursor-pagination-keeps-the-view-stable/"/></url><url><loc>https://hk.xbcatm.com/posts/health-endpoints-answer-a-question/</loc><lastmod>2026-08-19T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/health-endpoints-answer-a-question/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/health-endpoints-answer-a-question/"/></url><url><loc>https://hk.xbcatm.com/tags/pagination/</loc><lastmod>2026-08-19T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/tags/essay/</loc><lastmod>2026-08-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/essay/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/essay/"/></url><url><loc>https://hk.xbcatm.com/essays/</loc><lastmod>2026-08-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/essays/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/essays/"/></url><url><loc>https://hk.xbcatm.com/essays/readable-evidence-before-dashboards/</loc><lastmod>2026-08-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/essays/readable-evidence-before-dashboards/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/essays/readable-evidence-before-dashboards/"/></url><url><loc>https://hk.xbcatm.com/tags/static-web/</loc><lastmod>2026-08-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/static-web/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/static-web/"/></url><url><loc>https://hk.xbcatm.com/posts/vacuum-growth/</loc><lastmod>2026-08-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/vacuum-growth/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/vacuum-growth/"/></url><url><loc>https://hk.xbcatm.com/posts/scheduled-jobs-and-idempotency/</loc><lastmod>2026-08-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/scheduled-jobs-and-idempotency/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/scheduled-jobs-and-idempotency/"/></url><url><loc>https://hk.xbcatm.com/essays/caching-as-two-clocks/</loc><lastmod>2026-08-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/essays/caching-as-two-clocks/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/essays/caching-as-two-clocks/"/></url><url><loc>https://hk.xbcatm.com/posts/wal-makes-durability-a-copy-not-a-rewrite/</loc><lastmod>2026-08-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/wal-makes-durability-a-copy-not-a-rewrite/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/wal-makes-durability-a-copy-not-a-rewrite/"/></url><url><loc>https://hk.xbcatm.com/essays/zero-js-as-a-defensible-choice/</loc><lastmod>2026-08-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/essays/zero-js-as-a-defensible-choice/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/essays/zero-js-as-a-defensible-choice/"/></url><url><loc>https://hk.xbcatm.com/tags/jsmillions/</loc><lastmod>2026-08-13T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/deadlocks-wait-on-each-other/</loc><lastmod>2026-08-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/deadlocks-wait-on-each-other/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/deadlocks-wait-on-each-other/"/></url><url><loc>https://hk.xbcatm.com/posts/least-privilege-is-a-threshold-not-a-feeling/</loc><lastmod>2026-08-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/least-privilege-is-a-threshold-not-a-feeling/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/least-privilege-is-a-threshold-not-a-feeling/"/></url><url><loc>https://hk.xbcatm.com/series/release-and-recovery/</loc><lastmod>2026-08-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/series/release-and-recovery/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/series/release-and-recovery/"/></url><url><loc>https://hk.xbcatm.com/series/</loc><lastmod>2026-08-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/series/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/series/"/></url><url><loc>https://hk.xbcatm.com/tutorials/ship-a-static-release/</loc><lastmod>2026-08-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tutorials/ship-a-static-release/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tutorials/ship-a-static-release/"/></url><url><loc>https://hk.xbcatm.com/tags/tutorial/</loc><lastmod>2026-08-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/tutorial/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/tutorial/"/></url><url><loc>https://hk.xbcatm.com/tutorials/</loc><lastmod>2026-08-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tutorials/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tutorials/"/></url><url><loc>https://hk.xbcatm.com/posts/mvcc-gives-every-transaction-its-own-view/</loc><lastmod>2026-08-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/mvcc-gives-every-transaction-its-own-view/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/mvcc-gives-every-transaction-its-own-view/"/></url><url><loc>https://hk.xbcatm.com/series/http-foundations/</loc><lastmod>2026-08-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/series/http-foundations/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/series/http-foundations/"/></url><url><loc>https://hk.xbcatm.com/tutorials/http-edge-walkthrough/</loc><lastmod>2026-08-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tutorials/http-edge-walkthrough/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tutorials/http-edge-walkthrough/"/></url><url><loc>https://hk.xbcatm.com/tutorials/audit-a-public-edge/</loc><lastmod>2026-08-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tutorials/audit-a-public-edge/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tutorials/audit-a-public-edge/"/></url><url><loc>https://hk.xbcatm.com/posts/tls-1-3-handshake-basics/</loc><lastmod>2026-08-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tls-1-3-handshake-basics/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tls-1-3-handshake-basics/"/></url><url><loc>https://hk.xbcatm.com/series/web-security/</loc><lastmod>2026-08-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/series/web-security/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/series/web-security/"/></url><url><loc>https://hk.xbcatm.com/notes/a-maintenance-timer-should-leave-its-last-result-visible/</loc><lastmod>2026-08-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/a-maintenance-timer-should-leave-its-last-result-visible/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/a-maintenance-timer-should-leave-its-last-result-visible/"/></url><url><loc>https://hk.xbcatm.com/notes/</loc><lastmod>2026-08-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/"/></url><url><loc>https://hk.xbcatm.com/notes/restart-policies-need-a-rate-limit/</loc><lastmod>2026-08-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/restart-policies-need-a-rate-limit/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/restart-policies-need-a-rate-limit/"/></url><url><loc>https://hk.xbcatm.com/posts/dns-resolution-order-matters/</loc><lastmod>2026-08-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dns-resolution-order-matters/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dns-resolution-order-matters/"/></url><url><loc>https://hk.xbcatm.com/notes/a-release-checklist-for-a-static-site/</loc><lastmod>2026-07-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/a-release-checklist-for-a-static-site/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/a-release-checklist-for-a-static-site/"/></url><url><loc>https://hk.xbcatm.com/tags/redirects/</loc><lastmod>2026-07-28T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/http-redirects-are-promises-about-where/</loc><lastmod>2026-07-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-redirects-are-promises-about-where/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-redirects-are-promises-about-where/"/></url><url><loc>https://hk.xbcatm.com/notes/ssh-host-keys-are-part-of-the-deployment-record/</loc><lastmod>2026-07-28T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/ssh-host-keys-are-part-of-the-deployment-record/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/ssh-host-keys-are-part-of-the-deployment-record/"/></url><url><loc>https://hk.xbcatm.com/tags/simplicity/</loc><lastmod>2026-07-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/simplicity/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/simplicity/"/></url><url><loc>https://hk.xbcatm.com/notes/the-advantage-of-small-systems/</loc><lastmod>2026-07-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/the-advantage-of-small-systems/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/the-advantage-of-small-systems/"/></url><url><loc>https://hk.xbcatm.com/notes/security-headers-should-describe-the-actual-page/</loc><lastmod>2026-07-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/security-headers-should-describe-the-actual-page/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/security-headers-should-describe-the-actual-page/"/></url><url><loc>https://hk.xbcatm.com/tags/web-security/</loc><lastmod>2026-07-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/web-security/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/web-security/"/></url><url><loc>https://hk.xbcatm.com/posts/compression-negotiation-is-content-negotiation/</loc><lastmod>2026-07-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/compression-negotiation-is-content-negotiation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/compression-negotiation-is-content-negotiation/"/></url><url><loc>https://hk.xbcatm.com/notes/robots.txt-and-sitemaps-answer-different-questions/</loc><lastmod>2026-07-21T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/robots.txt-and-sitemaps-answer-different-questions/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/robots.txt-and-sitemaps-answer-different-questions/"/></url><url><loc>https://hk.xbcatm.com/tags/design/</loc><lastmod>2026-07-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/design/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/design/"/></url><url><loc>https://hk.xbcatm.com/notes/reliable-defaults-beat-clever-recovery/</loc><lastmod>2026-07-20T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/reliable-defaults-beat-clever-recovery/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/reliable-defaults-beat-clever-recovery/"/></url><url><loc>https://hk.xbcatm.com/notes/a-release-manifest-should-name-every-published-byte/</loc><lastmod>2026-07-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/a-release-manifest-should-name-every-published-byte/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/a-release-manifest-should-name-every-published-byte/"/></url><url><loc>https://hk.xbcatm.com/tags/checksums/</loc><lastmod>2026-07-16T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/checksums/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/checksums/"/></url><url><loc>https://hk.xbcatm.com/posts/cache-headers-are-a-two-way-contract/</loc><lastmod>2026-07-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/cache-headers-are-a-two-way-contract/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/cache-headers-are-a-two-way-contract/"/></url><url><loc>https://hk.xbcatm.com/notes/redirects-and-error-codes-should-preserve-the-story/</loc><lastmod>2026-07-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/redirects-and-error-codes-should-preserve-the-story/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/redirects-and-error-codes-should-preserve-the-story/"/></url><url><loc>https://hk.xbcatm.com/notes/read-the-public-edge-in-two-commands/</loc><lastmod>2026-07-13T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/read-the-public-edge-in-two-commands/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/read-the-public-edge-in-two-commands/"/></url><url><loc>https://hk.xbcatm.com/posts/log-rotation-and-retention-basics/</loc><lastmod>2026-07-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/log-rotation-and-retention-basics/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/log-rotation-and-retention-basics/"/></url><url><loc>https://hk.xbcatm.com/notes/a-release-is-not-complete-until-the-public-edge-agrees/</loc><lastmod>2026-07-09T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/a-release-is-not-complete-until-the-public-edge-agrees/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/a-release-is-not-complete-until-the-public-edge-agrees/"/></url><url><loc>https://hk.xbcatm.com/notes/a-postmortem-should-leave-a-fact-record/</loc><lastmod>2026-07-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/a-postmortem-should-leave-a-fact-record/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/a-postmortem-should-leave-a-fact-record/"/></url><url><loc>https://hk.xbcatm.com/tags/postmortem/</loc><lastmod>2026-07-07T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/postmortem/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/postmortem/"/></url><url><loc>https://hk.xbcatm.com/tags/downloads/</loc><lastmod>2026-07-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/downloads/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/downloads/"/></url><url><loc>https://hk.xbcatm.com/notes/range-requests-should-prove-which-bytes-were-selected/</loc><lastmod>2026-07-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/range-requests-should-prove-which-bytes-were-selected/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/range-requests-should-prove-which-bytes-were-selected/"/></url><url><loc>https://hk.xbcatm.com/posts/ssh-key-hygiene-basics/</loc><lastmod>2026-07-06T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/ssh-key-hygiene-basics/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/ssh-key-hygiene-basics/"/></url><url><loc>https://hk.xbcatm.com/notes/http-methods-are-a-promise-about-side-effects/</loc><lastmod>2026-07-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/http-methods-are-a-promise-about-side-effects/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/http-method-semantics/"/></url><url><loc>https://hk.xbcatm.com/tags/semantics/</loc><lastmod>2026-07-02T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/semantics/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/semantics/"/></url><url><loc>https://hk.xbcatm.com/posts/firewall-is-a-list-of-what-you-let-through/</loc><lastmod>2026-07-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/firewall-is-a-list-of-what-you-let-through/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/firewall-is-a-list-of-what-you-let-through/"/></url><url><loc>https://hk.xbcatm.com/tags/firewall/</loc><lastmod>2026-07-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/firewall/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/firewall/"/></url><url><loc>https://hk.xbcatm.com/notes/validators-decide-whether-a-cached-copy-is-still-the-answer/</loc><lastmod>2026-06-30T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/validators-decide-whether-a-cached-copy-is-still-the-answer/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/http-conditional-requests/"/></url><url><loc>https://hk.xbcatm.com/notes/compression-changes-the-selected-http-representation/</loc><lastmod>2026-06-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/compression-changes-the-selected-http-representation/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/compression-changes-the-selected-http-representation/"/></url><url><loc>https://hk.xbcatm.com/tags/web-performance/</loc><lastmod>2026-06-29T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/tags/web-performance/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/tags/web-performance/"/></url><url><loc>https://hk.xbcatm.com/posts/harden-a-systemd-service/</loc><lastmod>2026-06-27T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/harden-a-systemd-service/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/harden-a-systemd-service/"/></url><url><loc>https://hk.xbcatm.com/notes/cache-headers-are-a-contract-with-two-clocks/</loc><lastmod>2026-06-25T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/cache-headers-are-a-contract-with-two-clocks/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/cache-headers-are-a-contract-with-two-clocks/"/></url><url><loc>https://hk.xbcatm.com/notes/hsts-should-be-rolled-out-with-a-recovery-plan/</loc><lastmod>2026-06-23T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/hsts-should-be-rolled-out-with-a-recovery-plan/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/hsts-should-be-rolled-out-with-a-recovery-plan/"/></url><url><loc>https://hk.xbcatm.com/posts/tls-certificate-expiry-is-a-date-not-a-guess/</loc><lastmod>2026-06-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/tls-certificate-expiry-is-a-date-not-a-guess/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/tls-certificate-expiry-is-a-date-not-a-guess/"/></url><url><loc>https://hk.xbcatm.com/notes/head-should-describe-the-same-representation-as-get/</loc><lastmod>2026-06-22T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/head-should-describe-the-same-representation-as-get/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/head-should-describe-the-same-representation-as-get/"/></url><url><loc>https://hk.xbcatm.com/notes/dns-changes-need-a-cache-aware-rollback-window/</loc><lastmod>2026-06-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/dns-changes-need-a-cache-aware-rollback-window/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/dns-changes-need-a-cache-aware-rollback-window/"/></url><url><loc>https://hk.xbcatm.com/posts/dns-ttl-and-the-waiting-game/</loc><lastmod>2026-06-18T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/dns-ttl-and-the-waiting-game/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/dns-ttl-and-the-waiting-game/"/></url><url><loc>https://hk.xbcatm.com/notes/caa-records-should-authorize-the-issuer-you-actually-use/</loc><lastmod>2026-06-17T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/caa-records-should-authorize-the-issuer-you-actually-use/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/caa-records-should-authorize-the-issuer-you-actually-use/"/></url><url><loc>https://hk.xbcatm.com/notes/cookie-scope-should-be-narrower-than-the-application-boundary/</loc><lastmod>2026-06-15T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/cookie-scope-should-be-narrower-than-the-application-boundary/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/cookie-scope-should-be-narrower-than-the-application-boundary/"/></url><url><loc>https://hk.xbcatm.com/tags/fundamentals/</loc><lastmod>2026-06-14T00:00:00+00:00</lastmod></url><url><loc>https://hk.xbcatm.com/posts/http-status-codes-and-their-promise/</loc><lastmod>2026-06-14T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/http-status-codes-and-their-promise/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/http-status-codes-and-their-promise/"/></url><url><loc>https://hk.xbcatm.com/notes/content-type-should-describe-the-bytes-you-actually-send/</loc><lastmod>2026-06-11T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/content-type-should-describe-the-bytes-you-actually-send/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/content-type-should-describe-the-bytes-you-actually-send/"/></url><url><loc>https://hk.xbcatm.com/notes/certificate-expiry-is-a-date-not-a-dashboard-color/</loc><lastmod>2026-06-10T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/certificate-expiry-is-a-date-not-a-dashboard-color/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/certificate-expiry-is-a-date-not-a-dashboard-color/"/></url><url><loc>https://hk.xbcatm.com/notes/a-certificate-chain-is-a-path-you-should-be-able-to-print/</loc><lastmod>2026-06-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/a-certificate-chain-is-a-path-you-should-be-able-to-print/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/certificate-chain/"/></url><url><loc>https://hk.xbcatm.com/posts/why-a-small-site-can-stay-static/</loc><lastmod>2026-06-08T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/posts/why-a-small-site-can-stay-static/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/posts/why-a-small-site-can-stay-static/"/></url><url><loc>https://hk.xbcatm.com/notes/a-static-server-should-have-one-obvious-root/</loc><lastmod>2026-06-04T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/a-static-server-should-have-one-obvious-root/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/a-static-server-should-have-one-obvious-root/"/></url><url><loc>https://hk.xbcatm.com/notes/backups-are-only-useful-after-a-restore-rehearsal/</loc><lastmod>2026-06-03T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/backups-are-only-useful-after-a-restore-rehearsal/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/backups-are-only-useful-after-a-restore-rehearsal/"/></url><url><loc>https://hk.xbcatm.com/notes/publish-a-static-site-by-switching-complete-directories/</loc><lastmod>2026-06-01T00:00:00+00:00</lastmod><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/notes/publish-a-static-site-by-switching-complete-directories/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/notes/publish-a-static-site-by-switching-complete-directories/"/></url><url><loc>https://hk.xbcatm.com/about/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/about/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/about/"/></url><url><loc>https://hk.xbcatm.com/archives/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/archives/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/archives/"/></url><url><loc>https://hk.xbcatm.com/changelog/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/changelog/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/changelog/"/></url><url><loc>https://hk.xbcatm.com/privacy/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/privacy/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/privacy/"/></url><url><loc>https://hk.xbcatm.com/cheatsheets/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/cheatsheets/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/cheatsheets/"/></url><url><loc>https://hk.xbcatm.com/resources/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/resources/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/resources/"/></url><url><loc>https://hk.xbcatm.com/sources/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/sources/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/sources/"/></url><url><loc>https://hk.xbcatm.com/pathways/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/pathways/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/pathways/"/></url><url><loc>https://hk.xbcatm.com/pathways/begin/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/pathways/begin/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/pathways/begin/"/></url><url><loc>https://hk.xbcatm.com/pathways/troubleshoot/</loc><xhtml:link rel="alternate" hreflang="en-us" href="https://hk.xbcatm.com/pathways/troubleshoot/"/><xhtml:link rel="alternate" hreflang="zh-CN" href="https://hk.xbcatm.com/zh/pathways/troubleshoot/"/></url></urlset>