Coder Social home page Coder Social logo

Comments (5)

yoe avatar yoe commented on September 20, 2024

We discussed that in detail when writing the protocol spec, and decided that to add requirements that clients should not send overlapping commands and that servers should check that would incur difficulties on said servers that would not be worth it.

Perhaps the spec could say that clients SHOULD NOT do so, but that servers MAY ignore the situation if it happens, or some such. At any rate, a client doing so is dabbing into "undefined territory" as it would be known for C constructs, and what happens could be anything.

As for current implementations, the reference implementation (which is only the server really, as the client "just" does the setup) doesn't care about it, the Linux kernel doesn't issue them AFAIK, and neither does qemu.

from nbd.

josefbacik avatar josefbacik commented on September 20, 2024

Yeah imposing this kind of requirement on the server would be overly burdensome, normal hard drives don't make sure things are done in order. A properly working linux client won't do this unless some application does it with O_DIRECT with different threads. We assume that the user is smart enough to make sure this sort of thing doesn't happen, and if the client is a file system this won't ever actually be seen.

from nbd.

yann-morin-1998 avatar yann-morin-1998 commented on September 20, 2024

@yoe @josefbacik Thanks for the feedback. :-)

Would you like that I send a PR amending the protocol to explicitly say that there is no such guarantee?

from nbd.

yoe avatar yoe commented on September 20, 2024

Better to do that on the mailinglist instead: https://lists.sourceforge.net/lists/listinfo/nbd-general

We usually do some review there before changes to the protocol are accepted, to make sure that no accidental mistakes are made.

from nbd.

yann-morin-1998 avatar yann-morin-1998 commented on September 20, 2024

@yoe OK, will do. Thanks for the quick feedback! :-)

Closing the issue now.

from nbd.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.