Autumn-27
2f5f7c0227
feat(traffic): 流量列表新增「清空全部」,并借空库时机压实索引
一次删除全部流量记录,忽略当前筛选条件。与按 host 删除的两条路径相比多做
两件事:
- 清理索引已不再记录的历史 host 目录。按 host 删除只能从索引反查目录,
行已消失的孤立目录会一直留着;「清空全部」既然语义是不留残余,就直接
扫顶层目录(跳过 _index/_blobs/_ca/_delete_staging)。
- 收尾做一次全量压实(optimize + VACUUM + wal_checkpoint(TRUNCATE)),把
索引占用的磁盘空间还给系统,并把实际释放量返回给前端提示。
VACUUM 的耗时与临时空间只和它保留的内容成正比,所以空库是做全量压实唯一
免费的时机——也正因如此,这一步顺带成为已有实例的转换途径:auto_vacuum
只能通过 VACUUM 生效,清空一次之后旧库即转为增量回收模式,此后日常按
host 删除就能自行回收空间(TestDeleteAllConvertsLegacyIndex 覆盖)。
已绑定到漏洞的流量证据保存在独立的证据库中,不受影响——绑定时已拷出独立
副本,正是为了让热流量可以随时清空而不带走证据。确认弹窗里明确写了这点。
前端把「清空全部」做成 outline 样式而非第二个 destructive 按钮:它忽略一切
筛选条件,不该看起来和「删除该目标」只差一次误点;无流量时禁用。
测试:新增 TestDeleteAllPurgesAndCompacts(清空后索引、正文、blob 引用与
孤立目录全清,空间回收到 1/8 以下,清空后仍可继续录制)与
TestDeleteAllConvertsLegacyIndex(旧库经清空后转为增量回收,随后普通删除
即可回收)。
2026-09-30 02:50:49 -04:00
..
2026-07-26 04:27:45 -04:00
2026-09-14 13:56:56 -04:00
2026-09-19 07:58:23 -04:00
2026-08-31 11:22:34 -04:00
2026-09-11 11:59:46 -04:00
2026-08-11 10:56:39 -04:00
2026-07-26 04:27:45 -04:00
2026-08-24 11:55:50 -04:00
2026-09-17 09:40:06 -04:00
2026-09-16 22:36:07 +08:00
2026-08-24 19:29:00 +08:00
2026-08-28 14:03:07 +08:00
2026-08-24 14:14:15 +08:00
2026-09-10 16:06:08 +08:00
2026-09-16 22:36:07 +08:00
2026-08-24 19:31:16 +08:00
2026-09-29 10:09:23 -04:00
2026-09-29 10:09:23 -04:00
2026-09-24 13:32:45 -04:00
2026-08-31 09:00:21 -04:00
2026-09-10 10:49:11 -04:00
2026-08-24 19:28:18 +08:00
2026-08-24 19:29:00 +08:00
2026-09-17 09:40:06 -04:00
2026-09-10 16:06:08 +08:00
2026-09-10 16:06:08 +08:00
2026-09-10 13:03:20 +08:00
2026-09-11 00:54:51 +08:00
2026-09-10 10:15:24 -04:00
2026-09-15 00:43:20 +08:00
2026-09-14 12:44:15 -04:00
2026-08-28 12:56:29 +08:00
2026-08-31 10:58:32 -04:00
2026-08-24 14:14:15 +08:00
2026-08-24 19:29:00 +08:00
2026-08-31 12:20:31 -04:00
2026-08-24 19:29:00 +08:00
2026-08-24 19:29:00 +08:00
2026-09-16 22:36:07 +08:00
2026-09-15 23:51:37 +08:00
2026-09-16 17:24:15 +08:00
2026-09-15 23:51:37 +08:00
2026-09-15 23:51:37 +08:00
2026-09-16 17:24:15 +08:00
2026-08-24 19:28:18 +08:00
2026-08-24 19:28:18 +08:00
2026-08-25 09:40:05 -04:00
2026-09-09 13:35:04 -04:00
2026-09-10 10:49:11 -04:00
2026-07-26 04:27:45 -04:00
2026-08-24 19:29:00 +08:00
2026-08-24 19:29:00 +08:00
2026-09-17 12:52:57 -04:00
2026-09-15 00:56:16 +08:00
2026-08-11 10:56:39 -04:00
2026-09-13 11:36:31 -04:00
2026-07-26 04:27:45 -04:00
2026-09-15 00:56:16 +08:00
2026-08-24 14:14:15 +08:00
2026-09-12 09:26:38 -04:00
2026-09-10 21:42:25 +08:00
2026-09-30 02:50:49 -04:00
2026-09-17 12:52:57 -04:00
2026-09-16 22:36:07 +08:00
2026-08-31 11:37:44 -04:00
2026-08-24 19:30:14 +08:00
2026-08-31 11:37:44 -04:00
2026-09-11 11:37:56 -04:00
2026-08-24 14:14:15 +08:00
2026-09-19 11:08:15 -04:00
2026-09-19 11:08:15 -04:00
2026-08-28 12:56:29 +08:00
2026-09-11 00:54:51 +08:00
2026-08-24 19:29:14 +08:00
2026-08-24 09:16:44 -04:00
2026-08-24 09:16:44 -04:00
2026-08-24 19:29:00 +08:00
2026-09-17 12:52:57 -04:00
2026-08-24 19:29:00 +08:00
2026-09-19 09:06:22 -04:00
2026-09-17 09:40:06 -04:00
2026-09-17 09:40:06 -04:00
2026-08-25 14:56:15 +08:00
2026-08-25 14:56:15 +08:00
2026-08-24 14:14:15 +08:00
2026-08-24 19:29:46 +08:00
2026-09-19 09:27:03 -04:00
2026-07-26 04:27:45 -04:00
2026-08-25 12:05:26 +08:00
2026-08-25 12:05:26 +08:00
2026-07-26 04:27:45 -04:00
2026-09-12 09:26:38 -04:00
2026-08-09 02:19:29 -04:00
2026-09-11 12:39:59 -04:00
2026-09-11 12:39:59 -04:00
2026-07-26 04:27:45 -04:00
2026-07-26 04:27:45 -04:00
2026-08-31 09:00:21 -04:00
2026-08-09 01:01:19 -04:00