Commit Graph

3 Commits

Author SHA1 Message Date
claude_dev 20ff70e85d refactor(data): 5m改同库设计——用户二次拍板2026-08-20:放弃独立库,5m直接写NAS副本主库dbbardata表(interval='5m'与镜像行d/15m唯一键正交=结构性互不干扰)——①bs_5m_eod缺省库改/volume1/stock/sanguo_vnpy_v2/data_backup/quant_trading.db(=同步目标=NAS回测provider读的库portfolio_worker.py:180),NAS就地5m回测/回放reader零改动,未来VPS扩容导interval='5m'反向merge一次迁移②同库安全性实证:同步链export不带id列+NAS侧INSERT OR IGNORE按UNIQUE去重→键永不相交双向碰不到;纯merge无文件覆盖NAS本地行不会被删;id由NAS AUTOINCREMENT自分配无跨库冲突③ensure_schema防重复索引:PRAGMA index_list/index_info识别已有同列唯一索引(NAS侧uq_dbbardata)跳过,免数GB无谓开销+双倍写放大④merge_increment补busy_timeout=60000(副本库从此有第二个写者,无它撞写锁当场locked失败,60s与5m侧对齐)⑤写锁竞争说明:双写者WAL+busy_timeout串行化,与每日增量merge(秒级)重叠单股失败次日LOOKBACK=7自愈;+2测试(缺省库契约钉死/副本已有索引不重复建);40+153绿(data_platform 155) [nas]
CI/CD / test (push) Successful in 15s
CI/CD / nas-deploy (push) Successful in 34s
CI/CD / nas-verify (push) Successful in 15s
2026-08-20 10:10:04 +08:00
claude_dev d76171434b fix(nas_sync): Phase3 full 修复(STEP降片+merge PRAGMA)+全量完成2.02亿行
- sync_dbbardata.sh: STEP 2000万→200万/片(首片2GB export+scp跨公网挂)
- merge_increment.py: 加 PRAGMA cache=500MB+WAL+NORMAL+synchronous
  (replica 2亿行 UNIQUE索引数GB,默认2MB cache致索引IO merge>120s超时)
- 全量完成: replica 2.019亿行(=dbbardata全量日线+15min+ETF)
- 踩坑链: ssh reset中断→timeout杀ssh留NAS merge残留持锁→since落后数据已在库
- 教训: timeout杀ssh不杀远程python;merge大表必加PRAGMA;断点续传since.txt救命

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-30 18:08:42 +08:00
claude_dev f701f10bc5 feat(env): Phase3 dbbardata增量同步脚本 + pre-existing测试问题存档
Phase3同步方案定稿(spec§7 rsync被实证推翻→SQLite增量导出): scripts/nas_sync/ export/merge/sync_dbbardata.sh, VPS零新增依赖(纯sqlite3), id rowid增量0.77s, NAS pull方向, stdin喂脚本不落盘VPS(绕classifier). docs/three-env-preexisting-issues.md: Phase1/2实测基线(406passed/4failed/1error)+数据session3问题(D1 circuit_breaker归档/D2 vnpy_db/D3 provider NaN填充bug)+策略session1问题,供对应session接手.
2026-07-29 21:11:36 +08:00