Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [FUSE] Increase socket timeout from 1 to 3 seconds | Simon Rettberg | 2019-08-28 | 1 | -2/+2 |
| | |||||
* | [FUSE] Add --sticky mode to ignore alt-servers announced by servers | Simon Rettberg | 2019-03-07 | 3 | -6/+16 |
| | |||||
* | [FUSE] Clean up argument handling, improve help | Simon Rettberg | 2019-03-07 | 1 | -19/+10 |
| | |||||
* | [FUSE] Use shared/timing.* instead of nowMilli/Micro | Simon Rettberg | 2019-02-09 | 2 | -57/+43 |
| | |||||
* | [FUSE] Consider RTT of active connection for switch-decisions | Simon Rettberg | 2019-02-08 | 2 | -55/+123 |
| | |||||
* | [FUSE] In panic mode, use a pending range for alt check | Simon Rettberg | 2018-07-05 | 1 | -5/+43 |
| | | | | | | | | If we lost connection and then go check all known alt servers, see if we have some pending request queued and if so, use its offset and length for the alt server probe. This ensures that the server being tested is able to satisfy at least the next request we'll send. | ||||
* | [FUSE] Return 0 instead of EIO if trying to read past end | Simon Rettberg | 2018-06-13 | 1 | -1/+1 |
| | | | | | read() calls are supposed to return 0 when reading at EOF, so properly mimic that behavior. | ||||
* | [FUSE] Move variables into block where they're being used | Simon Rettberg | 2018-06-13 | 1 | -4/+4 |
| | |||||
* | [SERVER] Option to disable timestamps on stdout/console (default: disabled) | Simon Rettberg | 2018-04-11 | 1 | -0/+1 |
| | |||||
* | [FUSE] Split final multiConnect-wait across multiple calls | Simon Rettberg | 2017-11-07 | 1 | -8/+8 |
| | | | | | | There might be more than one pending connect, but each call to multiConnect() can return at most one fd, so we could be ignoring some successful connections. | ||||
* | [FUSE] Reset salen before getpeername() call | Simon Rettberg | 2017-11-07 | 1 | -1/+2 |
| | |||||
* | [FUSE] Make use of sock_multiConnect() for initial connection | Simon Rettberg | 2017-11-06 | 1 | -10/+36 |
| | | | | | | This speeds up initialization with a long list of servers where the first in the list don't work, as the delay between servers is now lowered to 100ms. | ||||
* | [FUSE] Remember up to 16 alt servers, but work only with 5 | Simon Rettberg | 2017-11-04 | 1 | -8/+59 |
| | | | | | | | 5 servers are considered "active", that is, are being measured for their RTT regularly. If We have more than 5 servers and one of the active ones isn't reachable repeatedly, the two servers will swap position. | ||||
* | [FUSE] Fix printf warning for logadd call | Simon Rettberg | 2017-11-02 | 1 | -1/+1 |
| | |||||
* | [FUSE] Improve log messages a bit | Simon Rettberg | 2017-11-01 | 1 | -2/+5 |
| | |||||
* | [*] Mark logadd() as printf-style function, fix errors that it revealed | Simon Rettberg | 2017-10-31 | 1 | -2/+2 |
| | | | | ...there were quite a few format string errors as it turns out :/ | ||||
* | [*] Introduce constants for IPv4/6 in dnbd3_host_t | Simon Rettberg | 2017-10-28 | 1 | -2/+2 |
| | | | | | | | AF_INET luckily was "2" on all platforms checked, so no problems there with interoperation, but AF_INET6 is different between Linux, BSD, Windows and possibly others, so map back and forth between AF_INET/AF_INET6 and HOST_IP4/HOST_IP6 to fix this. | ||||
* | [FUSE] Cache signalfd instances used in fuse read handler | Simon Rettberg | 2017-10-24 | 1 | -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 client | Simon Rettberg | 2017-10-24 | 1 | -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 warnings | Simon Rettberg | 2017-10-24 | 3 | -18/+37 |
| | |||||
* | [*] Support hop-counting in request header, protocol version 3 | Simon Rettberg | 2017-10-17 | 1 | -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 Rettberg | 2017-09-02 | 1 | -1/+1 |
| | |||||
* | [FUSE] Little more verbosity in some error msg | Simon Rettberg | 2016-11-09 | 1 | -1/+1 |
| | |||||
* | [FUSE] Wait a little longer before switching via new approach | Simon Rettberg | 2016-03-23 | 1 | -8/+8 |
| | |||||
* | [FUSE] Add new load balancing mechanism | Simon Rettberg | 2016-03-23 | 1 | -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 :) | Sebastian | 2016-02-11 | 2 | -2/+4 |
| | |||||
* | cleanup commits | Sebastian | 2016-02-11 | 3 | -11/+3 |
| | |||||
* | [SHARED] signal.h -> fdsignal.h | Simon Rettberg | 2016-02-10 | 3 | -3/+3 |
| | |||||
* | First steps in make signals more abstract from the underlying mechanism; ↵ | Simon Rettberg | 2016-02-05 | 3 | -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 reads | Simon Rettberg | 2015-12-17 | 2 | -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 Rettberg | 2015-12-16 | 3 | -30/+53 |
| | | | | entering fuse_main | ||||
* | [FUSE] Make valgrind happy by initializing memory and not calling close() on -1 | Simon Rettberg | 2015-12-10 | 1 | -2/+4 |
| | |||||
* | [FUSE] Fix stack overflow caused by stats data | Simon Rettberg | 2015-12-10 | 1 | -3/+5 |
| | |||||
* | [FUSE] Fix formatting in /status output | Simon Rettberg | 2015-12-07 | 1 | -6/+4 |
| | |||||
* | [FUSE] Fix embarrassing memcpy over two different structs | Simon Rettberg | 2015-12-03 | 1 | -3/+6 |
| | |||||
* | [FUSE] Add --log option | Simon Rettberg | 2015-12-03 | 1 | -12/+29 |
| | |||||
* | [FUSE] Try to get caching right | Simon Rettberg | 2015-12-03 | 1 | -2/+3 |
| | |||||
* | [FUSE] Add virtual status file | Simon Rettberg | 2015-12-02 | 3 | -12/+101 |
| | |||||
* | [FUSE] Request alt servers from connected server | Simon Rettberg | 2015-12-02 | 2 | -26/+100 |
| | |||||
* | [FUSE] Clean up command line handling | Simon Rettberg | 2015-12-02 | 1 | -37/+93 |
| | |||||
* | [FUSE] Remove debug code that forced server switches all the time | Simon Rettberg | 2015-12-01 | 1 | -2/+1 |
| | |||||
* | [FUSE] Fix losing requests on server change | Simon Rettberg | 2015-12-01 | 2 | -16/+26 |
| | |||||
* | [FUSE] Stability improvements, runs for longer than a couple secs now :) | Simon Rettberg | 2015-12-01 | 1 | -28/+32 |
| | |||||
* | [FUSE] It works! Kinda... | Simon Rettberg | 2015-11-30 | 3 | -201/+207 |
| | |||||
* | [FUSE] Compiles again | Simon Rettberg | 2015-11-30 | 3 | -55/+0 |
| | |||||
* | [FUSE] Mid-refactoring, does not compile | Simon Rettberg | 2015-11-24 | 5 | -77/+272 |
| | |||||
* | [FUSE] Refactoring | Simon Rettberg | 2015-11-23 | 1 | -51/+69 |
| | |||||
* | [FUSE] Start refactoring so we can handle multithread fuse | Simon Rettberg | 2015-11-21 | 5 | -13/+248 |
| | |||||
* | [FUSE] Fix compiler warnings, adjust file permissions, change fuse file name ↵ | Simon Rettberg | 2015-04-24 | 1 | -32/+34 |
| | | | | to "img" | ||||
* | [FUSE] Integrate into cmake build process | Simon Rettberg | 2015-04-24 | 6 | -474/+456 |
| |