Skip to content

Conversation

@cheb0
Copy link
Member

@cheb0 cheb0 commented Nov 7, 2025

Description

The is the intermediate version for supporting nanosecond MID. This version still operates in millisecond MIDs, but is compatible with the current (main) version as well as with future (phase 2) version where seq.MID contains nanoseconds. This allows us to rollback in case of problem with the future version.

  • seq.MID are still in milliseconds.
  • New frac version to indicate that seq.MID are in nanoseconds. This version silently converts them to milliseconds
  • New metadata version which contains seq.MID in nanoseconds. This version converts them to milliseconds as well.
  • New QPR encoding for async version for same reasons.
  • Async search info now has version (1 and 2), since it contains seq.MID inside stored JSON. If we see a different version (naonseconds), we convert them to millis and change version.
  • Frac cache now omits cached info for fractions if fraction version differs from the current version. This is simple because info contains seq.MID and we can not change versions.
  • Support for new seq.ID string representation is added. If MID is in nanoseconds, then delimiter is _ instead of -. In this version, if we see _ delimiter, then we convert to milliseconds.
  • Proxy now can work with new (phase 2) and current stores, i.e. can merge millisecond and nanosecond MID responses. There is a GRPC header which every store sends. This means proxy can operate properly even during the deploy/rollback process.

Relates to #232


  • I have read and followed all requirements in CONTRIBUTING.md;
  • I used LLM/AI assistance to make this pull request;

If you have used LLM/AI assistance please provide model name and full prompt:

Model: {{model-name}}
Prompt: {{prompt}}

@eguguchkin eguguchkin self-requested a review November 7, 2025 12:46
@codecov-commenter
Copy link

Codecov Report

❌ Patch coverage is 64.41718% with 58 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.73%. Comparing base (990f82d) to head (bfeba1d).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
proxy/search/ingestor.go 52.38% 8 Missing and 2 partials ⚠️
seq/seq.go 60.00% 9 Missing and 1 partial ⚠️
proxy/search/async.go 35.71% 8 Missing and 1 partial ⚠️
asyncsearcher/async_searcher.go 14.28% 6 Missing ⚠️
indexer/meta_data.go 25.00% 6 Missing ⚠️
network/grpcutil/interceptors.go 81.81% 2 Missing and 2 partials ⚠️
frac/sealed/block_info.go 0.00% 2 Missing and 1 partial ⚠️
frac/sealed/seqids/blocks.go 0.00% 2 Missing and 1 partial ⚠️
frac/sealed_loader.go 62.50% 1 Missing and 2 partials ⚠️
asyncsearcher/encoding.go 93.75% 1 Missing and 1 partial ⚠️
... and 1 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #248      +/-   ##
==========================================
- Coverage   71.88%   71.73%   -0.16%     
==========================================
  Files         199      199              
  Lines       14570    14700     +130     
==========================================
+ Hits        10474    10545      +71     
- Misses       3362     3412      +50     
- Partials      734      743       +9     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants