summaryrefslogtreecommitdiffstats
path: root/src/fuse/connection.c
Commit message (Collapse)AuthorAgeFilesLines
* [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.
* [SHARED] signal.h -> fdsignal.hSimon Rettberg2016-02-101-1/+1
|
* First steps in make signals more abstract from the underlying mechanism; ↵Simon Rettberg2016-02-051-8/+8
| | | | | | | | | | 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-171-0/+3
| | | | | | | | | 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-161-24/+40
| | | | entering fuse_main
* [FUSE] Make valgrind happy by initializing memory and not calling close() on -1Simon Rettberg2015-12-101-2/+4
|
* [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 virtual status fileSimon Rettberg2015-12-021-0/+49
|
* [FUSE] Request alt servers from connected serverSimon Rettberg2015-12-021-26/+95
|
* [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-011-11/+21
|
* [FUSE] Stability improvements, runs for longer than a couple secs now :)Simon Rettberg2015-12-011-28/+32
|
* [FUSE] It works! Kinda...Simon Rettberg2015-11-301-38/+165
|
* [FUSE] Mid-refactoring, does not compileSimon Rettberg2015-11-241-25/+220
|
* [FUSE] RefactoringSimon Rettberg2015-11-231-51/+69
|
* [FUSE] Start refactoring so we can handle multithread fuseSimon Rettberg2015-11-211-0/+211