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

Name collisions are possible in snapshot (.chunks, .component) #3542

Closed
vladsud opened this issue Sep 5, 2020 · 3 comments
Closed

Name collisions are possible in snapshot (.chunks, .component) #3542

vladsud opened this issue Sep 5, 2020 · 3 comments
Assignees
Labels
area: runtime Runtime related issues bug Something isn't working
Milestone

Comments

@vladsud
Copy link
Contributor

vladsud commented Sep 5, 2020

Blob with this name

const chunksBlobName = ".chunks";

is written in the root of container runtime tree, thus in the same namespace as data stores.
If data store with such name is created, it will cause corruption of the tile.

We need to isolate namespace of special blobs and data stores.
I believe (need to check) same goes with .component blob and DDs.
Within DDSs I believe things are correct (as .attributes is not colliding with DDS blobs as they are under "content" sub-tree), but need to check

@vladsud vladsud added the bug Something isn't working label Sep 5, 2020
@vladsud vladsud added this to the October 2020 milestone Sep 5, 2020
@vladsud vladsud self-assigned this Sep 5, 2020
@ghost ghost added the triage label Sep 5, 2020
@vladsud
Copy link
Contributor Author

vladsud commented Sep 5, 2020

Aldo for search results, we are adding .app//#search/ blobs
Need to reduce collisions with DDSs as well

@tylerbutler tylerbutler changed the title Name collisions are possible in snapshot (.chungs, .component) Name collisions are possible in snapshot (.chunks, .component) Sep 9, 2020
@tylerbutler tylerbutler removed the triage label Sep 9, 2020
@vladsud vladsud assigned arinwt and unassigned vladsud Oct 1, 2020
@vladsud
Copy link
Contributor Author

vladsud commented Oct 1, 2020

@arinwt, any chance you can help me here?
I believe we should revisit this layer.
First question - can blobs & trees have same name? That what would happen if someone called their DDS ".component".
But I believe answer might not be even interesting, as we want to separate them anyway. For example, we are adding support for search / alternative blobs at data store runtime layer, and we will add "search" tree under data store. This will collide with "search" DDS if such exists.
I believe our system should be flexible to allow such scenarios and clearly separate DDS sub-trees vs. root-level system trees/blobs in data store.
Backward compat is clearly an issue here, we should think about how to achieve it without breaking existing files (I have a feeling that having a feeling that easiest way to do so is to pivot based on snapshot version stored in .component blob and have two different paths in code).

@arinwt
Copy link
Contributor

arinwt commented Jan 4, 2021

Closing this issue with PR #4485, because that PR allows for clients to read in the new format.
Opened another issue #4706 to track the work for writing in the new format. This must go in a release 2 versions later than the first to ensure compatibility requirements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: runtime Runtime related issues bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants