Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't send dynamic type information to connecting sources #1656

Merged
merged 3 commits into from
May 20, 2021

Conversation

lava
Copy link
Member

@lava lava commented May 11, 2021

📔 Description

📝 Checklist

  • All user-facing changes have changelog entries.
  • The changes are reflected on docs.tenzir.com/vast, if necessary.
  • The PR description contains instructions for the reviewer, if necessary.

🎯 Review Instructions

@lava lava force-pushed the story/ch25395/type-registry-transforms branch from a27e219 to 5d7897e Compare May 17, 2021 16:06
@lava lava marked this pull request as ready for review May 17, 2021 21:54
Copy link
Member

@dominiklohmann dominiklohmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some smaller stuff, otherwise LGTM.

changelog/unreleased/breaking-changes/1656.md Outdated Show resolved Hide resolved
libvast/src/system/spawn_source.cpp Show resolved Hide resolved
@dominiklohmann dominiklohmann changed the title Handle transformed layouts in type registry Don't send dynamic type information to connecting sources May 18, 2021
lava added 3 commits May 20, 2021 10:55
The type registry in VAST knows two different sources of type
information: On the one hand, layouts are described in schema
files that are stored on disk and loaded when VAST is started.
The schema files describe the *input* data format that is
expected by the sources.

On the other hand, the type registry would accumulate the layouts
of all table slices going through the importer. Without transforms,
each of these layouts must have been the input format of some source,
so the type registry would redistribute them to newly registered
sources.

With transforms, this is no longer guaranteed, since both client
and server input transformation might have been applied to the
table slice.

Conceptually, the idea of a source not being able to parse its own
input and relying on information from other, independent sources to
do so is also quite weird.

So from now on, we only forward the statically configured type
information from the schema files to connecting sources.
@lava lava force-pushed the story/ch25395/type-registry-transforms branch from 5d7897e to f985e3b Compare May 20, 2021 09:02
@lava
Copy link
Member Author

lava commented May 20, 2021

Merging this without waiting for CI because the nix-prefetch-github package seems broken.

Fwiw, I can reproduce the error locally:

[nix-shell:~/src/vast/transforms]$ nix-prefetch-github --rev=41d728a43df8c9e5145b1c5bc259b6b2e7340a8c tenzir vast
Internal Error: Calculate hash value for sources in github repo tenzir/vast.

And I confirmed that 41d728a43df8c9e5145b1c5bc259b6b2e7340a8c is a valid revision known by github, but I don't know how to add debug output to my local version of nix-prefetch-github so I'm not really sure how to proceed.

@lava lava merged commit f2f0240 into master May 20, 2021
@lava lava deleted the story/ch25395/type-registry-transforms branch May 20, 2021 10:04
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