zenoh icon indicating copy to clipboard operation
zenoh copied to clipboard

NBFTReliability

Open OlivierHecart opened this issue 2 years ago • 6 comments

OlivierHecart avatar Dec 13 '22 15:12 OlivierHecart

For now, my main blocker is not code (I haven't read much of it yet), but lack of documentation:

  • What does NBFT mean?
  • What are its contracts? (What problems are solved, under what conditions)
  • How should it be used?
    • How many caches?
    • How should the caches be configured?

The filenames are also a bit awkward, why not group all NBFT things into a directory rather than prefixed files (at least for the ones in src)?

For the builder, I would ask why they don't just extend the standard builders, but I guess it's mostly because you might need access to data that the builders keep private. If possible, it would be nice to add a small trait to turn do sub_builder.reliable() and obtain the NFTReliableSubscriberBuilder. I only see this as possible if we can have the reliable builders have a SubscriberBuilder field, which might not be possible.

This last comment makes me think: maybe it would be useful to have a (forever unstable) way to break a builder into its component parts, so that zenoh-ext would less often need to re-implement the builders fully just to add one option.

p-avital avatar Dec 13 '22 16:12 p-avital

For now, my main blocker is not code (I haven't read much of it yet), but lack of documentation.

Most of the answers (if they exist) are there: https://github.com/eclipse-zenoh/roadmap/blob/main/rfcs/ALL/Non%20Blocking%20Fault%20Tolerant%20Reliability.md Should we point there from the rustdoc ?

The filenames are also a bit awkward, why not group all NBFT things into a directory rather than prefixed files (at least for the ones in src)?

Sure

For the builder, I would ask why they don't just extend the standard builders, but I guess it's mostly because you might need access to data that the builders keep private.

That's indeed the main reason.

OlivierHecart avatar Dec 14 '22 09:12 OlivierHecart

@OlivierHecart Since it's been a while ago, is the PR still alive? As a guard this week, just want to make sure no PR is forgotten. :smiley:

evshary avatar Sep 01 '23 01:09 evshary

@OlivierHecart Please change your pull request's base branch to main (new default branch). And rebase your branch against main as it is missing a status check necessary to merge this pull request but which is only available on main.

fuzzypixelz avatar Jan 12 '24 16:01 fuzzypixelz

@milyin I see this PR was mentioned in https://github.com/eclipse-zenoh/zenoh/issues/669 which is part of the next release. Would you mind linking this PR to the issue and adding it to the project roadmap? Bonus points if you use the release tag and set a timeline :D

imstevenpmwork avatar Mar 14 '24 11:03 imstevenpmwork

@milyin I see this PR was mentioned in #669 which is part of the next release. Would you mind linking this PR to the issue and adding it to the project roadmap? Bonus points if you use the release tag and set a timeline :D

This implementation is going to be rewritten accordingly to requirements in https://github.com/eclipse-zenoh/zenoh/issues/669. This is definitely going to be started after the release, currently we don't have time to it. Converting the PR to draft

milyin avatar Mar 15 '24 10:03 milyin