Hacker News new | ask | show | jobs
by trasz 1397 days ago
So it’s essentially like userspace iSCSI server, but proprietary?
2 comments

Not proprietary, but not iSCSI-specific either. The whole idea is that you can use any protocol you like. Could be iSCSI, could be NBD, could be AoE, could be something proprietary but that's less likely than open/standard alternatives.
It’s obviously proprietary: it’s non-standard and specific to a single vendor.

What is the whole idea, though? Serving things to kernel from userland is decades old and commonly used with both NFS and iSCSI. The fact that this particular implementation uses io_uring instead of something non-proprietary like RDMA, is just an implementation detail.

  > It’s obviously proprietary: it’s non-standard and specific to a
  > single vendor.
That's not how people typically use "proprietary" when referring to open-source code developed collectively by multiple vendors, universities, and thousands of independent contributors.

  > What is the whole idea, though? [...] this particular implementation
  > uses io_uring instead of something non-proprietary like RDMA, is just
  > an implementation detail.
When performance matters, sometimes implementation details are the whole idea.

According to the patch's author at <https://lwn.net/Articles/904638/>, ublk has about twice the throughput of NBD.

>That's not how people typically use "proprietary" when referring to open-source code

Indeed, many people believe that source code being available somehow magically makes things non-proprietary. Not sure where that belief came from. An API is proprietary when it 1. Doesn't comply with existing standards, 2. Isn't interoperable, and 3. Is controlled by a single entity.

>multiple vendors

It comes from IBM/RedHat - a single commercial entity, not “thousands of independent contributors”. But yes, if it was a proper community project then it of course wouldn’t be proprietary.

>twice the throughput

Compared to NBD which can’t use RDMA at all. Again: the idea is old and not bad, it’s just that this particular implementation looks like another case of NIH.

> It’s obviously proprietary: it’s non-standard and specific to a single vendor.

I just re-read the LWN article and there's no suggestion of any such thing. Where are you seeing it?

> Serving things to kernel from userland is decades old and commonly used with both NFS and iSCSI.

...and regular FC/SCSI too. I worked on that for four years. Yawn. What's your point?

> The fact that this particular implementation uses io_uring instead of something non-proprietary like RDMA

RDMA implementations are even more likely to be bound up with proprietary bits than vanilla-TCP implementations. RDMA over IB or other even lesser known interconnects (both open/standard and proprietary) existed long before ROCE. Do you even know what "open" vs. "proprietary" mean? There were open network-disk protocols before iSCSI. I worked on such as early as 1989, and developed my own (along with my own user-space block device for Linux and Windows) in 2000. It seems like you've only been exposed to a small set of open/standards based technologies, and deride anything else as "proprietary" even though that's far from accurate. Is there some undisclosed interest at play here?

> is just an implementation detail

It's a very important detail, considering the performance difference.

Why do you say proprietary?