diff --git a/paper/advisor_review/.gitignore b/paper/advisor_review/.gitignore new file mode 100644 index 00000000..20d39089 --- /dev/null +++ b/paper/advisor_review/.gitignore @@ -0,0 +1,4 @@ +main.aux +main.bbl +main.blg +main.out diff --git a/paper/advisor_review/BUILD.md b/paper/advisor_review/BUILD.md new file mode 100644 index 00000000..89b50802 --- /dev/null +++ b/paper/advisor_review/BUILD.md @@ -0,0 +1,5 @@ +# Build +This independent advisor draft preserves the student manuscript unchanged. +```text +PATH=/home/shuhao/.conda/envs/neuromem/bin:$PATH make pdf +``` diff --git a/paper/advisor_review/BUILD_TRANSCRIPT.txt b/paper/advisor_review/BUILD_TRANSCRIPT.txt new file mode 100644 index 00000000..d0c45425 --- /dev/null +++ b/paper/advisor_review/BUILD_TRANSCRIPT.txt @@ -0,0 +1,10 @@ +note: Running TeX ... +note: Running BibTeX on main.aux ... +note: Rerunning TeX because bibtex was run ... +note: Running xdvipdfmx ... +note: Writing `main.blg` (191 B) +note: Writing `main.bbl` (1.0244140625 KiB) +note: Writing `main.out` (910 B) +note: Writing `main.pdf` (50.376953125 KiB) +note: Writing `main.log` (11.8564453125 KiB) +note: Writing `main.aux` (2.05078125 KiB) diff --git a/paper/advisor_review/MANIFEST.md b/paper/advisor_review/MANIFEST.md new file mode 100644 index 00000000..06d8604d --- /dev/null +++ b/paper/advisor_review/MANIFEST.md @@ -0,0 +1,40 @@ +# Advisor review artifact manifest + +- Canonical carrier: `DataSysResearch/CANDOR-Bench`, base branch `BriskSeed` +- Source base: `4cde3b3f079ad9b1e4c98b10c2dfa7edf405f07a` +- Artifact commit: `f9661a4f6bddd08c18b51a279c17ff1ac904a82e` +- Build: `PATH=/home/shuhao/.conda/envs/neuromem/bin:$PATH make pdf` +- Tectonic exit: `0`; pages: `2`; warnings: none +- Visual check: both pages rendered at 110 DPI and inspected; no clipping, + overflow, broken glyphs, or unintended blank page. + +## SHA256 + +| Artifact | Digest | +|---|---| +| `main.tex` | `ddb2aef8c6b6f04ab44507183b8eb92a46c13aa1044aff1adbd26d53b9669be6` | +| `references.bib` | `5a62eb8ce80a3534178aa7942cfb322ed65de5e90aacbcd15ef85fbe171c3b9e` | +| `main.pdf` | `4377bce0988855392623ec4290edcf2b35e66b793fb2a0c147dff83c11cc8ad7` | +| `main.log` | `ca39b46db1ebe2ded23fc46133b918502a0d6169eeefbe029e35207807605d65` | +| `BUILD_TRANSCRIPT.txt` | `bd7b5bc03ba154fb5754bbc937e2de2ce031e10006fc0279baf198f982669e30` | + +## Test and evidence boundary + +- `git diff --check`: pass. +- Full host suite, Python 3.11: collection stopped with seven missing-dependency + errors (`numpy`, `yaml`). +- Full host suite, Python 3.10: collection stopped with four errors because + `h5py` is absent. +- Dependency-light subset: 7 passed, 2 failed. Existing failures are + `random-xs` returning no ground truth and a test shell invoking unavailable + bare `python`; this paper-only branch changes no mechanism or test code. +- Existing formal student manuscript was preserved unchanged. Its Tectonic + build fails because the `algorithm` environment is undefined and citation + `Gong20251593` is absent from its bibliography. +- Existing plots/CSV files remain historical branch evidence. No raw-to-claim + manifest binds them, so no numerical result is promoted here. +- Manual semantic audit: `paper/advisor_review/main.tex` is an independent + formal advisor entry, not a generated fragment. Its Q1--Q7 list explicitly + names problem, importance, cited related-work gap, mechanism, feasibility, + matched evaluation, and takeaway; all four bibliography entries are cited. +- Implementation, environment, experiments, and results remain student-owned. diff --git a/paper/advisor_review/Makefile b/paper/advisor_review/Makefile new file mode 100644 index 00000000..235235cf --- /dev/null +++ b/paper/advisor_review/Makefile @@ -0,0 +1,6 @@ +TECTONIC ?= tectonic +.PHONY: pdf clean +pdf: + $(TECTONIC) --keep-intermediates --keep-logs main.tex +clean: + rm -f main.aux main.bbl main.blg main.log main.out main.pdf diff --git a/paper/advisor_review/main.log b/paper/advisor_review/main.log new file mode 100644 index 00000000..458eea51 --- /dev/null +++ b/paper/advisor_review/main.log @@ -0,0 +1,354 @@ +** +(main.tex +LaTeX2e <2021-11-15> patch level 1 +L3 programming layer <2022-02-24> (article.cls +Document Class: article 2021/10/04 v1.4n Standard LaTeX document class +(size10.clo +File: size10.clo 2021/10/04 v1.4n Standard LaTeX file (size option) +) +\c@part=\count181 +\c@section=\count182 +\c@subsection=\count183 +\c@subsubsection=\count184 +\c@paragraph=\count185 +\c@subparagraph=\count186 +\c@figure=\count187 +\c@table=\count188 +\abovecaptionskip=\skip47 +\belowcaptionskip=\skip48 +\bibindent=\dimen138 +) (geometry.sty +Package: geometry 2020/01/02 v5.9 Page Geometry + (keyval.sty +Package: keyval 2014/10/28 v1.15 key=value parser (DPC) +\KV@toks@=\toks16 +) (ifvtex.sty +Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead. + (iftex.sty +Package: iftex 2022/02/03 v1.0f TeX engine tests +)) +\Gm@cnth=\count189 +\Gm@cntv=\count190 +\c@Gm@tempcnt=\count191 +\Gm@bindingoffset=\dimen139 +\Gm@wd@mp=\dimen140 +\Gm@odd@mp=\dimen141 +\Gm@even@mp=\dimen142 +\Gm@layoutwidth=\dimen143 +\Gm@layoutheight=\dimen144 +\Gm@layouthoffset=\dimen145 +\Gm@layoutvoffset=\dimen146 +\Gm@dimlist=\toks17 +) +(booktabs.sty +Package: booktabs 2020/01/12 v1.61803398 Publication quality tables +\heavyrulewidth=\dimen147 +\lightrulewidth=\dimen148 +\cmidrulewidth=\dimen149 +\belowrulesep=\dimen150 +\belowbottomsep=\dimen151 +\aboverulesep=\dimen152 +\abovetopsep=\dimen153 +\cmidrulesep=\dimen154 +\cmidrulekern=\dimen155 +\defaultaddspace=\dimen156 +\@cmidla=\count192 +\@cmidlb=\count193 +\@aboverulesep=\dimen157 +\@belowrulesep=\dimen158 +\@thisruleclass=\count194 +\@lastruleclass=\count195 +\@thisrulewidth=\dimen159 +) (tabularx.sty +Package: tabularx 2020/01/15 v2.11c `tabularx' package (DPC) + (array.sty +Package: array 2021/10/04 v2.5f Tabular extension package (FMi) +\col@sep=\dimen160 +\ar@mcellbox=\box50 +\extrarowheight=\dimen161 +\NC@list=\toks18 +\extratabsurround=\skip49 +\backup@length=\skip50 +\ar@cellbox=\box51 +) +\TX@col@width=\dimen162 +\TX@old@table=\dimen163 +\TX@old@col=\dimen164 +\TX@target=\dimen165 +\TX@delta=\dimen166 +\TX@cols=\count196 +\TX@ftn=\toks19 +) (enumitem.sty +Package: enumitem 2019/06/20 v3.9 Customized lists +\labelindent=\skip51 +\enit@outerparindent=\dimen167 +\enit@toks=\toks20 +\enit@inbox=\box52 +\enit@count@id=\count197 +\enitdp@description=\count198 +) (microtype.sty +Package: microtype 2022/03/14 v3.0d Micro-typographical refinements (RS) + +(etoolbox.sty +Package: etoolbox 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW) +\etb@tempcnta=\count199 +) +\MT@toks=\toks21 +\MT@tempbox=\box53 +\MT@count=\count266 +LaTeX Info: Redefining \noprotrusionifhmode on input line 1027. +LaTeX Info: Redefining \leftprotrusion on input line 1028. +LaTeX Info: Redefining \rightprotrusion on input line 1036. +LaTeX Info: Redefining \textls on input line 1195. +\MT@outer@kern=\dimen168 +LaTeX Info: Redefining \textmicrotypecontext on input line 1781. +\MT@listname@count=\count267 + (microtype-xetex.def +File: microtype-xetex.def 2022/03/14 v3.0d Definitions specific to xetex (RS) +LaTeX Info: Redefining \lsstyle on input line 236. +) +Package microtype Info: Loading configuration file microtype.cfg. + (microtype.cfg +File: microtype.cfg 2022/03/14 v3.0d microtype main configuration file (RS) +)) (hyperref.sty +Package: hyperref 2022-02-21 v7.00n Hypertext links for LaTeX + +(ltxcmds.sty +Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO) +) (pdftexcmds.sty +Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO +) + (infwarerr.sty +Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) +) +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +Package pdftexcmds Info: \pdfdraftmode not found. +) (kvsetkeys.sty +Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) +) +(kvdefinekeys.sty +Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) +) (pdfescape.sty +Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) +) (hycolor.sty +Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) +) (letltxmacro.sty +Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) +) (auxhook.sty +Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) +) (kvoptions.sty +Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO) +) +\@linkdim=\dimen169 +\Hy@linkcounter=\count268 +\Hy@pagecounter=\count269 + (pd1enc.def +File: pd1enc.def 2022-02-21 v7.00n Hyperref: PDFDocEncoding definition (HO) +) (intcalc.sty +Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) +) (etexcmds.sty +Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) +) +\Hy@SavedSpaceFactor=\count270 + (puenc.def +File: puenc.def 2022-02-21 v7.00n Hyperref: PDF Unicode definition (HO) +) +Package hyperref Info: Hyper figures OFF on input line 4137. +Package hyperref Info: Link nesting OFF on input line 4142. +Package hyperref Info: Hyper index ON on input line 4145. +Package hyperref Info: Plain pages OFF on input line 4152. +Package hyperref Info: Backreferencing OFF on input line 4157. +Package hyperref Info: Implicit mode ON; LaTeX internals redefined. +Package hyperref Info: Bookmarks ON on input line 4390. +\c@Hy@tempcnt=\count271 + +(url.sty +\Urlmuskip=\muskip16 +Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. +) +LaTeX Info: Redefining \url on input line 4749. +\XeTeXLinkMargin=\dimen170 + (bitset.sty +Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) + (bigintcalc.sty +Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO +) +)) +\Fld@menulength=\count272 +\Field@Width=\dimen171 +\Fld@charsize=\dimen172 +Package hyperref Info: Hyper figures OFF on input line 6027. +Package hyperref Info: Link nesting OFF on input line 6032. +Package hyperref Info: Hyper index ON on input line 6035. +Package hyperref Info: backreferencing OFF on input line 6042. +Package hyperref Info: Link coloring OFF on input line 6047. +Package hyperref Info: Link coloring with OCG OFF on input line 6052. +Package hyperref Info: PDF/A mode OFF on input line 6057. +LaTeX Info: Redefining \ref on input line 6097. +LaTeX Info: Redefining \pageref on input line 6101. + (atbegshi-ltx.sty +Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi +package with kernel methods +) +\Hy@abspage=\count273 +\c@Item=\count274 +\c@Hfootnote=\count275 +) +Package hyperref Info: Driver (autodetected): hxetex. + (hxetex.def +File: hxetex.def 2022-02-21 v7.00n Hyperref driver for XeTeX + +(stringenc.sty +Package: stringenc 2019/11/29 v1.12 Convert strings between diff. encodings (HO +) +) +\pdfm@box=\box54 +\c@Hy@AnnotLevel=\count276 +\HyField@AnnotCount=\count277 +\Fld@listcount=\count278 +\c@bookmark@seq@number=\count279 + (rerunfilecheck.sty +Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO) + (atveryend-ltx.sty +Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac +kage +with kernel methods +) (uniquecounter.sty +Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) +) +Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 +86. +) +\Hy@SectionHShift=\skip52 +) +(l3backend-xetex.def +File: l3backend-xetex.def 2022-02-07 L3 backend support: XeTeX +\c__kernel_sys_dvipdfmx_version_int=\count280 +\l__color_backend_stack_int=\count281 +\g__color_backend_stack_int=\count282 +\g__graphics_track_int=\count283 +\l__pdf_internal_box=\box55 +\g__pdf_backend_object_int=\count284 +\g__pdf_backend_annotation_int=\count285 +\g__pdf_backend_link_int=\count286 +) (main.aux) +\openout1 = `main.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 9. +LaTeX Font Info: Trying to load font information for TS1+cmr on input line 9 +. + (ts1cmr.fd +File: ts1cmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. +LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 9. +LaTeX Font Info: ... okay on input line 9. + +*geometry* driver: auto-detecting +*geometry* detected driver: xetex +*geometry* verbose mode - [ preamble ] result: +* driver: xetex +* paper: +* layout: +* layoutoffset:(h,v)=(0.0pt,0.0pt) +* modes: +* h-part:(L,W,R)=(39.74872pt, 534.79756pt, 39.74872pt) +* v-part:(T,H,B)=(39.74872pt, 715.47255pt, 39.74872pt) +* \paperwidth=614.295pt +* \paperheight=794.96999pt +* \textwidth=534.79756pt +* \textheight=715.47255pt +* \oddsidemargin=-32.52127pt +* \evensidemargin=-32.52127pt +* \topmargin=-69.52127pt +* \headheight=12.0pt +* \headsep=25.0pt +* \topskip=10.0pt +* \footskip=30.0pt +* \marginparwidth=65.0pt +* \marginparsep=11.0pt +* \columnsep=10.0pt +* \skip\footins=9.0pt plus 4.0pt minus 2.0pt +* \hoffset=0.0pt +* \voffset=0.0pt +* \mag=1000 +* \@twocolumnfalse +* \@twosidefalse +* \@mparswitchfalse +* \@reversemarginfalse +* (1in=72.27pt=25.4mm, 1cm=28.453pt) + +LaTeX Info: Redefining \microtypecontext on input line 9. +Package microtype Info: Applying patch `item' on input line 9. +Package microtype Info: Applying patch `toc' on input line 9. +Package microtype Info: Applying patch `eqnum' on input line 9. +Package microtype Info: Applying patch `footnote' on input line 9. +Package microtype Info: Character protrusion enabled (level 2). +Package microtype Info: Using default protrusion set `alltext'. +Package microtype Info: No adjustment of tracking. +Package microtype Info: No adjustment of spacing. +Package microtype Info: No adjustment of kerning. +(mt-LatinModernRoman.cfg +File: mt-LatinModernRoman.cfg 2021/02/21 v1.1 microtype config. file: Latin Mod +ern Roman (RS) +) +Package hyperref Info: Link coloring OFF on input line 9. + (nameref.sty +Package: nameref 2021-04-02 v2.47 Cross-referencing by name of section + (refcount.sty +Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) +) (gettitlestring.sty +Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) +) +\c@section@level=\count287 +) +LaTeX Info: Redefining \ref on input line 9. +LaTeX Info: Redefining \pageref on input line 9. +LaTeX Info: Redefining \nameref on input line 9. + +(main.out) (main.out) +\@outlinefile=\write3 +\openout3 = `main.out'. + + (mt-cmr.cfg +File: mt-cmr.cfg 2013/05/19 v2.2 microtype config. file: Computer Modern Roman +(RS) +) +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 10. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 10. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 10. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <9> on input line 27. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <5> on input line 27. +Package microtype Info: Loading generic protrusion settings for font family +(microtype) `lmtt' (encoding: TU). +(microtype) For optimal results, create family-specific settings. +(microtype) See the microtype manual for details. + [1 + +] (main.bbl) [2] (main.aux) +Package rerunfilecheck Info: File `main.out' has not changed. +(rerunfilecheck) Checksum: 90931822CC9B098081164C7B66C1B6A6;910. + ) +Output written on main.xdv (2 pages, 86116 bytes). diff --git a/paper/advisor_review/main.pdf b/paper/advisor_review/main.pdf new file mode 100644 index 00000000..8f80347c Binary files /dev/null and b/paper/advisor_review/main.pdf differ diff --git a/paper/advisor_review/main.tex b/paper/advisor_review/main.tex new file mode 100644 index 00000000..8b80e3bc --- /dev/null +++ b/paper/advisor_review/main.tex @@ -0,0 +1,54 @@ +\documentclass[10pt]{article} +\usepackage[margin=0.55in]{geometry} +\usepackage{booktabs,tabularx,array,enumitem,microtype} +\usepackage[hidelinks]{hyperref} +\emergencystretch=1em +\title{BriskSeed: When Is Historical Search-State Reuse Useful?\\\large Advisor Claim-Boundary and Evidence Contract} +\author{Advisor-authored narrative; implementation and experiments remain student-owned} +\date{August 2026} +\begin{document}\maketitle +\begin{abstract} +BriskSeed reuses successful approximate-nearest-neighbor (ANN) search outcomes as seeds while an index evolves. The BriskSeed branch contains an extensive student manuscript and result figures, but its current paper does not compile under Tectonic and its numerical claims are not bound to a single result/provenance manifest. This independent draft therefore treats those numbers as branch-local historical reports, not verified results. It isolates the publishable question: under what drift, query recurrence, and memory budget does seed reuse beat the strongest dynamic-ANN backend at matched recall and total update-plus-query cost? We freeze baselines, oracles, evidence gates, and failure conditions. No experiment was run and the student manuscript is unchanged. +\end{abstract} +\small + +\section{Seven-Question Storyline} +\begin{enumerate}[leftmargin=*,label=\textbf{Q\arabic*.}] +\item \textbf{Problem.} In a continuously updated ANN graph, when can a prior query's result set safely and profitably seed later traversal, and when does drift make reuse harmful? +\item \textbf{Importance.} Dynamic vector services must jointly absorb updates and serve queries. Blind reuse risks recall; rebuilding auxiliary guidance consumes update budget; always falling back loses the opportunity to avoid random graph accesses. +\item \textbf{Related-work gap and hidden assumption.} HNSW is a strong configurable search baseline~\cite{malkov2020hnsw}; GraphReorder targets cache locality but assumes an expensive layout transformation~\cite{coleman2022graphreorder}; Wolverine repairs paths after updates~\cite{liu2025wolverine}; CANDOR-Bench exposes open-world update/query interference~\cite{wang2026candor}. None establishes that historical query outcomes remain useful under drift or that reuse cost is smaller than fresh traversal. BriskSeed must separate its reuse mechanism from the benchmark contribution and from backend update quality. +\item \textbf{Mechanism hypothesis and key idea.} Keep a bounded hot tier for exact/high-confidence recurrent queries and a bounded semantic tier for long-tail candidates. Retrieve a seed, perform limited native graph expansion, validate its boundary/overlap receipt, and fall back to the unmodified backend when confidence fails. The hypothesis is that avoided traversal exceeds lookup, validation, writeback, and stale-seed recovery cost. +\item \textbf{Feasibility.} The branch contains a two-tier StreamSeed implementation, a plugin seam, runbooks, figures, and CSV summaries. These demonstrate implementation and historical-analysis presence. They do not yet prove a reproducible mechanism result because exact command, exit, hardware, dataset, backend pin, and raw-to-figure linkage are not unified. +\item \textbf{Matched evaluation.} Section~\ref{sec:eval} specifies matched arms, correctness oracle, metrics, provenance, success gate, and stopping conditions before a held-out run. +\item \textbf{Takeaway.} A positive paper would identify a predictive reuse boundary over drift, recurrence, and memory. A negative paper would show that robust native search/fallback cost eliminates the apparent gain, closing seed reuse for that regime without weakening CANDOR-Bench. +\end{enumerate} + +\section{Architecture and Predictive Boundary} +For query generation $g$, each seed receipt binds query identity/signature, source generation, returned IDs, reuse kind, age, and subsequent validation decision. Update receipts bind inserted/deleted IDs and the exact backend state. A seed hit is not a success: it succeeds only if the accepted result satisfies the exact top-$k$ oracle and reduces total work. The hypothesis predicts lower gains as unseen-query fraction, update batch size, or distribution shift rises; larger gains when recurrence and top-$k$ stability rise; and a backend-dependent crossover because native update repair changes fallback quality. The branch-reported FreshDiskANN recall decrease is therefore a negative boundary, not noise to tune away. + +\section{Matched Evaluation Contract}\label{sec:eval} +\paragraph{Arms.} B0 is the same backend with BriskSeed disabled and its strongest deployable search configuration. B1 caches exact query results with invalidation, separating ordinary caching from seed-guided traversal. B2 periodically rebuilds static guidance with the rebuild interval swept. B3 is an oracle that chooses native versus seeded search after executing both; it measures headroom but is not deployable. Treatment is the frozen two-tier BriskSeed policy. Report HNSW, SymphonyQG, FreshDiskANN, and any dynamic repair backend as separate strata; never pool them as repetitions. + +\paragraph{Matching and provenance.} Freeze Git/submodule pins, compiler flags, CPU/NUMA identity, dataset and split hashes, distance metric, ordered update/query streams, backend construction/search parameters, threads, seeds, and memory cap. Compare latency- or work-matched Pareto frontiers, not one hand-selected \texttt{efSearch}. Charge seed lookup, validation, fallback, writeback, eviction, and memory to the treatment. + +\paragraph{Oracle.} Recompute exact nearest neighbors against the post-update live set at every measured generation. Require 100\% identity conservation: no deleted IDs, duplicates, omissions, cross-generation seed use, or query/ground-truth mismatch. Report Recall@$k$ from the exact oracle and verify that fallback invokes the identical B0 path/configuration. + +\paragraph{Metrics and gate.} Report update latency/throughput, query QPS and p95, Recall@$k$, distance computations, nodes visited, cache misses, fallback rate, seed age/hit/accept rates, bytes, and peak memory with full repeated-run distributions. A positive claim requires a repeated deployable winner switch over the strongest B0--B2 frontier \emph{and} B3 oracle headroom. Recall loss must remain within a student-preregistered bound for every backend, not just on average; numeric margins and repetition counts are TBD until frozen before held-out execution. + +\paragraph{Stops.} Stop if the gain vanishes after charging maintenance/fallback, relies on repeated identical queries, fails on a second drift family/backend, is matched by exact caching, or violates any identity/recall gate. Do not retune validation thresholds after observing held-out failures. + +\section{Evidence Ledger and Two-Week Closure} +\begin{tabularx}{\linewidth}{@{}>{\raggedright\arraybackslash}p{.22\linewidth}>{\raggedright\arraybackslash}p{.18\linewidth}X@{}} +\toprule Artifact & Level & Allowed statement\\\midrule +Student manuscript/figures & historical branch report & Motivate hypotheses only; current Tectonic build fails and no unified provenance manifest binds claims.\\ +Summary CSV files & historical summary & Values are not raw results and are not promoted to real-online evidence.\\ +StreamSeed source/plugin & implementation presence & Establishes a mechanism carrier, not superiority.\\ +This PDF & derived artifact & Establishes only reproducible advisor narrative compilation.\\\bottomrule +\end{tabularx} + +Week one: the student owner freezes all identities, links raw rows to figures/claims, repairs the formal manuscript build, and validates generation-aware exact oracles. Week two: the owner runs matched B0--B3/treatment sweeps and applies the frozen gate. Advisor ownership ends at narrative and acceptance criteria; code, environment, execution, debugging, and results remain student-owned. BriskSeed is currently CPU dynamic-ANN work, so an NPU six-link claim is inapplicable; accelerator mapping without a native counterexample and mechanism is adaptation. + +\section{Conclusion} +The credible contribution is not ``reuse is always faster,'' but a falsifiable boundary for when historical state remains useful after updates. The contract protects that boundary from uncharged maintenance, weak baselines, and unbound historical plots. +\bibliographystyle{plain}\bibliography{references} +\end{document} diff --git a/paper/advisor_review/references.bib b/paper/advisor_review/references.bib new file mode 100644 index 00000000..2f0d8273 --- /dev/null +++ b/paper/advisor_review/references.bib @@ -0,0 +1,4 @@ +@article{malkov2020hnsw,author={Yu A. Malkov and D. A. Yashunin},title={Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs},journal={IEEE TPAMI},year={2020},volume={42},number={4},pages={824--836},doi={10.1109/TPAMI.2018.2889473}} +@inproceedings{coleman2022graphreorder,author={Benjamin Coleman and Santiago Segarra and Alexander J. Smola and Anshumali Shrivastava},title={Graph Reordering for Cache-Efficient Near Neighbor Search},booktitle={NeurIPS},year={2022},volume={35},pages={38488--38500}} +@article{liu2025wolverine,author={Dawei Liu and Bolong Zheng and Ziyang Yue and Fuhao Ruan and Xiaofang Zhou and Christian S. Jensen},title={Wolverine: Highly Efficient Monotonic Search Path Repair for Graph-Based ANN Index Updates},journal={PVLDB},year={2025},volume={18},number={7},pages={2268--2280},doi={10.14778/3734839.3734860}} +@article{wang2026candor,author={Mingqi Wang and Junyao Dong and Zhuoyan Wu and others},title={{CANDOR-Bench}: Benchmarking In-Memory Continuous {ANNS} under Dynamic Open-World Streams},journal={Proceedings of the ACM on Management of Data},year={2026},volume={4},number={1},doi={10.1145/3786630}}