一批交易明细 INSERT 进复制表之后,服务端按分区切块、排序压缩成新的 part,后台 merge 把小 part 合大,另外两个副本照着 Keeper 里的复制日志去拉。part 写完不再改,去重、改数据和修数据的做法都从这一点来。
ClickHouse 轻量删除清重复行的代价
按 _part、_part_offset 删掉重复的那份,带子查询的 DELETE 在复制表上先被拒;放开之后子查询跟着全表 part 数重复执行。加上 IN PARTITION 它反而最省,但同一秒写进来的两份按 create_time 分不开。
清理 ClickHouse 重复行时行数校验拦不住的情形
用 argMin 重建出事窗口再 REPLACE 的清理方案,在三副本 lab 里先报语法错;修好之后,列序错位、迟到写入、落后副本、只看一个节点的核对,以及换分区落到临时表还没复制到的副本,都能让数据坏掉或丢掉,行数校验照样通过。
ClickHouse 重复行的四个入口和 sink exactlyOnce 的覆盖范围
Kafka 到 ClickHouse 的链路上,重复行能从 producer 重试、sink 超时重投、task 重启重放和人工补发四处进来。lab 实测 sink 的 exactlyOnce 挡得住重放,挡不住超时重投,打开后崩溃重启默认停在状态冲突上。
在 Cloudflare Tunnel 后面按 key 查 LiteLLM 的用量和来源 IP
LiteLLM 的 spend log 按 key 记了 token 和来源 IP,放在 Cloudflare Tunnel 后面时 IP 全是集群内地址。改用 pre-call hook 读 CF-Connecting-IP,对外的 key 另加别名和限流。
MySQL 8 迁到 OceanBase 4.2 的兼容差异与分区取舍
prize-service 换到 OceanBase 4.2.5 后,隔离级别、gap lock、等锁超时和 FOR UPDATE OF 都与 MySQL 8 不同;时间分区拆不开 pmax,建表脚本不写分区,交给 DBA 做 HASH/KEY 分区。
xiaogpt 怎么接管小爱音箱:轮询原理与 homelab 部署
xiaogpt 不改音箱固件,靠每秒轮询小米云的对话记录截下带关键词的问题,再交给大模型回答。在新加坡密码登录会被小米风控拒绝,只能用 passToken;它会轮换,登录失败还会删掉 token 文件,所以在 K3s 里放 PVC、单文件挂载。
Kubernetes 怎样用容器重现虚拟机
借 Ivan Velichko 在 iximiuz 上的系统解析,回顾软件部署从虚拟机到容器编排的演进脉络:分析 VM 时代的实例抽象、Docker 单进程容器的断层,以及 Kubernetes 怎样用三层对象重现经典服务模型。
虚拟线程下的 Spring MVC SSE:Tomcat、Jetty、WebFlux 的单机上限
同一份 Spring MVC + 虚拟线程的 SSE 代码,4 核 8 GB 容器里 Tomcat 每条连接占 112.3 KB 存活堆(移到堆外后 98 KB),5.2 万条撞堆墙;换 Jetty 是 18.3 KB,WebFlux 每连接 RSS 最低。
边缘计算的运行时与存储模型
边缘节点上跑代码有 VM 级隔离、同进程 V8 isolate、microVM 三种做法,出现时间重叠,至今并存;存储上,Cloudflare 按读写模式分出最终一致的 KV、单实例的 Durable Objects 和带区域只读副本的 D1。