Comments (8)
(Sorry, I have very old laptop, so I can't edit messages)
Also, HTTP/2 reduces RTT, has internal PING, allows to read as a stream, say, 42 GB without blocking any other operations, has dependency tree of requests and priorities.
from nbd.
from nbd.
No, HTTP/2 is completely different protocol. Yes it’s slightly related to HTTP/1.1. But actually, it’s generic stream multiplexer.
For example, two simultaneous write commands should look like two parallel streams inside one TCP-connection, multiplexed by HTTP/2. So, I don't mean wrapping current protocol in HTTP/2. I mean implementing same semantic as in current NBD, but using framing from HTTP/2. Just like gRPC does.
Do you familiar with details of HTTP/2 ?
from nbd.
from nbd.
Well, I use NBD with qemu-nbd to write qcow2 images from CEPH. In order to increase performance, I read from CEPH with 10 streams in parallel. In my code, it writes to NBD in parallel in one connection. And I need to wait while really big chunk is written to socket (4 MB) before small chunk from another stream can be written. 4 MB is the standard chunk in RBD. And if there are 9 big chunks in queue, everyting is worth.
Yes, I can open 10 NBD connections, but what is purpose of multiplexing in current NBD then?
from nbd.
What does HTTP/2 framing actually buy you?
Because server can limit window size for each stream (i.e. each IO request) and allow another IO to be submitted.
from nbd.
The trouble with framing NBD over HTTP/2 is that you'd have to implement HTTP/2 in the kernel. Not sure that's a terribly good idea; it requires a lot of baggage that we really don't need for NBD.
There are some other, lower layer, protocols such as SCTP, which might be worthwhile to layer NBD on top of; but HTTP/2 doesn't seem like a very good idea.
from nbd.
Additionally, once structured replies have been implemented, a server should be able to multiplex multiple read replies in the same server, too.
from nbd.
Related Issues (20)
- Syntax error in /etc/nbdtab when using ip as host
- NBD server unreliable when in debug mode (-d) HOT 1
- can't connect server to client
- A typo in the format string in error message in nbd-client.c HOT 1
- Integer Overflow in nbd-client.c:421
- Stack Overflow in nbd-client.c: 501 HOT 1
- client authorization is always successfull (return true) for v6-mapped IPV4 addresses.
- Sporadic build failure with parallel make due to implicit dependency in Makefile.am
- Crashes when giving HUP-signal to nbd-server HOT 2
- 3.24: test suite runs forever HOT 8
- How to configure a local Ubuntu system to boot from NBD server hosting a multiple partition(e.g. GPT) image HOT 3
- server fails with glib2 2.76.0 HOT 22
- support windows client or server version HOT 1
- nbd-3.25 compile failure in gznbd HOT 1
- Extremely low performance with 20 simultaneous clients and 9Gb squashfs image HOT 3
- Performance optimization HOT 1
- Feature request: nbd-server serves multiple (autogenerated) files in directory hierarchy HOT 1
- default port become 0 after updating to 3.26.1 HOT 1
- NBD export fail "nbd0: truncated" to mount with block size other than 512 HOT 1
- compiler warning: warning: 'daemon' is deprecated: first deprecated in macOS 10.5 - Use posix_spawn APIs instead.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nbd.