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

Helper object for newbie nodes/shards #2015

Open
carpawell opened this issue Nov 2, 2022 · 3 comments
Open

Helper object for newbie nodes/shards #2015

carpawell opened this issue Nov 2, 2022 · 3 comments
Labels
bug Something isn't working I4 No visible changes neofs-storage Storage node application issues S2 Regular significance U2 Seriously planned
Milestone

Comments

@carpawell
Copy link
Member

carpawell commented Nov 2, 2022

Context

We really rely on our sorting algorithm in some of our subsystems, e.g. we try to place objects in the most appropriate shards, and nodes.

Problem

I could imagine some sort of scenario when adding a new node/shard breaks sorting (that is not bad by itself) and could lead to unexpected object removal/keeping in storage:

  1. Broadcasting LOCK object was done when a container node was not expected to store an object and the node wrote locking info in the shard it thought should store the object. Change container node and shard order -> probability to write the object (and a potential TS for it) in another shard -> unexpected removal.
  2. Shard was RO -> locking/TS info came to not expected shard, will not be handled correctly when an object comes to that shard -> unexpected removal.
  3. Node was added after TS/LOCK objects creation, -> in the replication process that node could accept TS/LOCK objects before their objects and, therefore, could place them to a different shard -> unexpected removal.
  4. Metabase resync without real TS/LOCK object storing will erase that info.
  5. ...

Ideas

  • I was always thinking that storing a real object (not its meta relations only) in all the participating nodes/shards isn't a critical overhead but it could save us from hard-to-predict bugs and I still think so.
  • Maybe it is the time for MoveTo operation implementation.
  • All the shards could store meta relations of a container.
  • ...
@carpawell carpawell added question Further information is requested discussion Open discussion of some problem triage neofs-storage Storage node application issues U2 Seriously planned epic A collection of related issues bug Something isn't working labels Nov 2, 2022
@alexchetaev alexchetaev removed the 2022Q4 label Nov 2, 2022
@fyrchik
Copy link
Contributor

fyrchik commented Nov 3, 2022

Why is this an epic?

@carpawell
Copy link
Member Author

@fyrchik, it affects more than one component. I expect to create some set of issues and link them with that epic. But after a discussion.

@fyrchik
Copy link
Contributor

fyrchik commented Nov 3, 2022

  1. Let's try to perform some checks at the engine level before PUT (check tombstone) and DELETE (check lock objects).
  2. Let's think about storing TOMBSTONE/LOCK objects on each container node.
  3. Write use-cases for a MoveTo operation implementation.

@andreysbazhenov andreysbazhenov removed the epic A collection of related issues label Nov 7, 2022
@roman-khimov roman-khimov added S2 Regular significance I4 No visible changes and removed triage question Further information is requested discussion Open discussion of some problem labels Dec 21, 2023
@roman-khimov roman-khimov added this to the v0.42.0 milestone Feb 28, 2024
@roman-khimov roman-khimov modified the milestones: v0.42.0, v0.43.0 May 22, 2024
@roman-khimov roman-khimov modified the milestones: v0.43.0, v0.44.0 Aug 5, 2024
@roman-khimov roman-khimov modified the milestones: v0.44.0, v0.45.0 Nov 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working I4 No visible changes neofs-storage Storage node application issues S2 Regular significance U2 Seriously planned
Projects
None yet
Development

No branches or pull requests

8 participants