summaryrefslogtreecommitdiffstats
path: root/src/fuse
Commit message (Collapse)AuthorAgeFilesLines
...
* [FUSE] Cache signalfd instances used in fuse read handlerSimon Rettberg2017-10-241-2/+43
| | | | | | Previously, a fresh one was created and destroyed fo every read requests. This caused a lot of syscalls when reading. Now there's a simple cache of currently up to 6 signalfd.
* [FUSE] Spacing; Don't check if server proto is newer than clientSimon Rettberg2017-10-241-3/+3
| | | | | | | The server is always backwards compatible, and so should be the client. If support for an older version will not be kept up, MIN_SUPPORTED_{CLIENT,SERVER} will be increased accordingly so that the connection is dropped.
* [FUSE] Fix type mismatch warningsSimon Rettberg2017-10-243-18/+37
|
* [*] Support hop-counting in request header, protocol version 3Simon Rettberg2017-10-171-3/+3
| | | | | | | | | | | | | | We steal 8 bits from the request offset to count hops when requests get relayed by proxies. This still leaves plenty of bits for the offset (56 bits, supporting images of up to 72 petabytes). This is used to detect proxy cycles. The algorithm is not perfect but should prevent endless relays of the same request. This is backwards compatible to old clients and servers, as the server only ever sets the hopcount in relayed requests if the upstream server is using protocol version 3 or newer, and clients are automatically upwards compatible as there is practically no image larger than 74PB, so the newly introduced hop count field is always 0 even in requests from old clients.
* [*] Continue splitting #defines to clientconfig.h etc.Simon Rettberg2017-09-021-1/+1
|
* [FUSE] Little more verbosity in some error msgSimon Rettberg2016-11-091-1/+1
|
* [FUSE] Wait a little longer before switching via new approachSimon Rettberg2016-03-231-8/+8
|
* [FUSE] Add new load balancing mechanismSimon Rettberg2016-03-231-12/+49
| | | | | | | | | | | | | | | | | | | | | | | | | The new mechanism is supposed to complement the existing RTT based balancing. While the RTT-averaging approach is better suited to react to sudden drastic changes in server latency. The new approach doesn't directly consider RTT, but keeps track of how many consecutive times each server was the best server when measuring the RTTs. The higher that counter rises, the more likely it will become that the connection switches over to that server. Eg.: Server 1 measures 600µs each time Server 2 measures 599µs each time After a while, in case server 1 is currently used, the connection will eventually switch over to server 2. The RTT-based mechanism would not switch over in this case, since the threshold that prevents constant switching between servers is not reached. The new approach is meant to handle scenarios where the network is generally fast, but it would still be beneficial from a network topology point of view if the clients switch to the slightly faster server, assuming it is closer to the client and thus less network segments are burdened.
* compile dnbd3-fuse on FreeBSD without warning :)Sebastian2016-02-112-2/+4
|
* cleanup commitsSebastian2016-02-113-11/+3Star
|
* [SHARED] signal.h -> fdsignal.hSimon Rettberg2016-02-103-3/+3
|
* First steps in make signals more abstract from the underlying mechanism; ↵Simon Rettberg2016-02-053-12/+13
| | | | | | | | | | replace epoll with poll. We now don't assume that a signal equals a single fd (eventfd on Linux). The next step would be to create a version of signal.c that uses a pipe internally, so it can be used on other platforms, like *BSD. This is also the reason epoll was replaced with poll in uplink.c
* [FUSE] Handle SIGINT/SIGTERM to abort pending readsSimon Rettberg2015-12-172-1/+35
| | | | | | | | | Before, we would wait endlessly if there is a pending read request that doesn't get answered (e.g. because the server went down. That means you couldn't exit the client in that case. Now we use a signal handler to set a flag which causes the read to bail out and return EIO.
* [FUSE] Fix forking mode (not passing -f) by not spawning threads before ↵Simon Rettberg2015-12-163-30/+53
| | | | entering fuse_main
* [FUSE] Make valgrind happy by initializing memory and not calling close() on -1Simon Rettberg2015-12-101-2/+4
|
* [FUSE] Fix stack overflow caused by stats dataSimon Rettberg2015-12-101-3/+5
|
* [FUSE] Fix formatting in /status outputSimon Rettberg2015-12-071-6/+4Star
|
* [FUSE] Fix embarrassing memcpy over two different structsSimon Rettberg2015-12-031-3/+6
|
* [FUSE] Add --log optionSimon Rettberg2015-12-031-12/+29
|
* [FUSE] Try to get caching rightSimon Rettberg2015-12-031-2/+3
|
* [FUSE] Add virtual status fileSimon Rettberg2015-12-023-12/+101
|
* [FUSE] Request alt servers from connected serverSimon Rettberg2015-12-022-26/+100
|
* [FUSE] Clean up command line handlingSimon Rettberg2015-12-021-37/+93
|
* [FUSE] Remove debug code that forced server switches all the timeSimon Rettberg2015-12-011-2/+1Star
|
* [FUSE] Fix losing requests on server changeSimon Rettberg2015-12-012-16/+26
|
* [FUSE] Stability improvements, runs for longer than a couple secs now :)Simon Rettberg2015-12-011-28/+32
|
* [FUSE] It works! Kinda...Simon Rettberg2015-11-303-201/+207
|
* [FUSE] Compiles againSimon Rettberg2015-11-303-55/+0Star
|
* [FUSE] Mid-refactoring, does not compileSimon Rettberg2015-11-245-77/+272
|
* [FUSE] RefactoringSimon Rettberg2015-11-231-51/+69
|
* [FUSE] Start refactoring so we can handle multithread fuseSimon Rettberg2015-11-215-13/+248
|
* [FUSE] Fix compiler warnings, adjust file permissions, change fuse file name ↵Simon Rettberg2015-04-241-32/+34
| | | | to "img"
* [FUSE] Integrate into cmake build processSimon Rettberg2015-04-246-474/+456Star
|
* Fuseschwaer@HiWi.de2015-04-243-0/+496