Commit e891cd16 authored by Kirill Smelkov's avatar Kirill Smelkov

X try to use double-buffereing and queue read syscall into /dev/fuse while we are handling request

It still does not help and so hanwen/go-fuse remains the best Go fuse
library from performance point of view

a3a68a84
parent 59a13571
...@@ -101,8 +101,9 @@ func (s *fileSystemServer) ServeOps(c *fuse.Connection) { ...@@ -101,8 +101,9 @@ func (s *fileSystemServer) ServeOps(c *fuse.Connection) {
s.fs.Destroy() s.fs.Destroy()
}() }()
s.serveInFlight.Add(1) s.serveInFlight.Add(4)
s.serveOps(c) go s.serveOps(c)
go s.serveOps(c)
} }
func (s *fileSystemServer) serveOps(c *fuse.Connection) { func (s *fileSystemServer) serveOps(c *fuse.Connection) {
...@@ -123,6 +124,8 @@ func (s *fileSystemServer) serveOps(c *fuse.Connection) { ...@@ -123,6 +124,8 @@ func (s *fileSystemServer) serveOps(c *fuse.Connection) {
// queue. see e.g. https://github.com/golang/go/issues/15110 for details. // queue. see e.g. https://github.com/golang/go/issues/15110 for details.
// //
// improving FUSE request-response latency also improves IO throughput. // improving FUSE request-response latency also improves IO throughput.
//
// XXX it does not improve throughput for jacobsa/fuse.
s.serveInFlight.Add(1) s.serveInFlight.Add(1)
go s.serveOps(c) go s.serveOps(c)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment