summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [SERVER] Lock-free queue for altservers check threadSimon Rettberg2019-08-072-48/+57
|
* [BENCH] Allow specifying request block sizeSimon Rettberg2019-08-074-19/+32
|
* [SERVER] Use more _AtomicSimon Rettberg2019-08-072-5/+4Star
|
* [SERVER] Fix race condition and invalid lock orderSimon Rettberg2019-08-071-4/+7
|
* [SERVER] uplink: Improve attaching to existing requestsSimon Rettberg2019-08-062-35/+74
| | | | | Allow attaching in ULR_PROCESSING state, leave lower slots empty to increase chances attaching to ULR_PROCESSING.
* [BENCH] Increase timeouts, fix block payload readingSimon Rettberg2019-08-061-3/+3
|
* [BENCH] Fix a couple bugs in stress testerSimon Rettberg2019-08-063-82/+70Star
|
* [SERVER] Improve debug output if a locked lock gets destroyedSimon Rettberg2019-08-061-0/+1
|
* [SERVER] Fix: Client thread could destroy sendMutex while in useSimon Rettberg2019-08-061-0/+3
| | | | | | Fix a race condition where the client thread tears down the client struct including the sendMutex while the uplink thead is currently holding the lock, trying to send data to the client.
* [SERVER] Allow uplink shutdown if bgrMinClients > image->usersSimon Rettberg2019-08-051-1/+2
|
* [SERVER] Add sanity check to threadpool_run for NULL routineSimon Rettberg2019-08-051-0/+4
|
* [SERVER] Switch threadpool back to spinlock, add idle thread counterSimon Rettberg2019-08-051-22/+23
|
* [SERVER] Atomicize some global flagsSimon Rettberg2019-08-032-2/+2
|
* [SERVER] Make image->users atomic and get rid of some lockingSimon Rettberg2019-08-022-53/+40Star
| | | | | | | | With this change it should be safe to read the users count of an image without locking first, assuming you already have a reference on the image or are otherwise sure it cannot be freed, i.e. in an active uplink. Updating users, or checking whether it's 0 in order to free the image should only be done while holding the imageListLock.
* i[SERVER] Include new pretendClient in config dumpv2.2Simon Rettberg2019-08-021-0/+1
|
* [SERVER] Fix compile in release modeSimon Rettberg2019-08-021-1/+1
|
* [SERVER] Turn all spinlocks into mutexesSimon Rettberg2019-07-2611-412/+467
| | | | | | | | Just assume sane platforms offer smart mutexes that have a fast-path with spinlocks internally for locks that have little to no congestion. In all other cases, mutexes should perform better anyways.
* [SERVER] Add pretendClient config optionSimon Rettberg2019-07-233-1/+10
| | | | | | This makes the server not set the FLAGS8_SERVER flag when establishing an uplink connection. Useful mostly for running a proxy on localhost for local caching.
* [SERVER] uplink: Relay request in client's thread if possibleSimon Rettberg2019-07-232-3/+57
| | | | | Early benchmarking shows that this is faster, since we don't require another thread to wake up just to send out the request.
* [FUSE] Add --sticky mode to ignore alt-servers announced by serversSimon Rettberg2019-03-073-6/+16
|
* [FUSE] Clean up argument handling, improve helpSimon Rettberg2019-03-071-19/+10Star
|
* [KERNEL] Lower queue->limits.max_sectors to 256, like nbdSimon Rettberg2019-02-131-1/+1
|
* [SERVER] Don't shutdown uplink if background replication is FULLSimon Rettberg2019-02-131-1/+1
|
* [FUSE] Use shared/timing.* instead of nowMilli/MicroSimon Rettberg2019-02-092-57/+43Star
|
* [SHARED] More timing helpersSimon Rettberg2019-02-091-0/+23
|
* [FUSE] Consider RTT of active connection for switch-decisionsSimon Rettberg2019-02-082-55/+123
|
* [SERVER] uplink: Dedicated function for handling link failureSimon Rettberg2019-02-081-31/+50
|
* [SERVER] integrity: Group check requests, use sync_file_range()Simon Rettberg2019-02-041-25/+51
| | | | | | | This requires a much shorter queue and balances hashing between different images if the checker lags behind. On Linux, use sync_file_range() instead of fsync() before reading back to speed up flushing.
* [SERVER] Cosmetic changes (loglvl, comment)Simon Rettberg2019-02-041-2/+2
|
* [SERVER] Export image idle time in json rpcSimon Rettberg2019-01-311-3/+6
| | | | Counter in seconds for how long this image hasn't been used.
* [SERVER] altservers.c: Improve log outputSimon Rettberg2019-01-312-20/+19Star
|
* [SERVER] Don't keep an uplink connection established foreverSimon Rettberg2019-01-315-49/+93
| | | | | | In case we don't use background replication a connection to an uplink server can potentially stay around forever. This in turn would prevent the uplink server from freeing the image as it appears to be in use.
* [SERVER] uplink: Check for _maxPayload when getting client requestSimon Rettberg2019-01-311-0/+4
| | | | | | It didn't make too much sense that we only checked _maxPayload when the reply arrived; simply don't forward a request where we already know we won't handle the reply.
* [SERVER] Lower log-level of non-critical messageSimon Rettberg2019-01-302-2/+3
|
* [SERVER] Only set BGR flag in handshake for BGR_FULLSimon Rettberg2018-11-162-2/+2
| | | | | | | _backgroundReplication was still treated as a boolean flag, so a server with BGR_NONE would reject a server with BGR_HASHBLOCK. While this still forces the BGR_NONE proxy to replicate more than it normally would, it seems reasonable to allow this.
* [SERVER] Fix json format stringSimon Rettberg2018-11-161-1/+1
| | | | Don't drop runId
* [KERNEL] Fix keep alive timer on 4.15+Simon Rettberg2018-08-151-1/+1
|
* [SERVER] rpc: Distinguish between client and server (proxy) connectionsSimon Rettberg2018-08-143-8/+18
|
* [SERVER] Fix last block replicating indefinitely in hasblock modeSimon Rettberg2018-08-141-5/+7
|
* [SERVER] Use atomic vars for uplink byte countersSimon Rettberg2018-08-132-28/+5Star
|
* [SERVER] Use atomic var for (total)bytesSent countersSimon Rettberg2018-08-085-102/+62Star
| | | | | | Gets rid of the lastBytesSent field as well as the stats lock per client. Cleaned and split up the messy net_clientsToJson function while at it.
* [SHARED] Use atomic for logger maskSimon Rettberg2018-08-081-2/+2
|
* [SERVER] Add missing file mode to open() callSimon Rettberg2018-07-261-2/+2
|
* [SERVER] Fix compilation on clang (atomic vars)Simon Rettberg2018-07-101-4/+4
|
* [SERVER] Reload server config on SIGHUPSimon Rettberg2018-07-103-70/+96
| | | | | | | Most config settings can now be changed at runtime using SIGHUP. This currently excludes the basePath, listenPort, and the client and image count limits, as well as vmdkLegacyMode.
* [SERVER] Fix use of wrong constant; increase queue len for hash checkerSimon Rettberg2018-07-102-2/+2
|
* [SERVER] Reduce spam some moreSimon Rettberg2018-07-091-1/+1
|
* [SERVER] Introduce backgroundReplication=hashblockSimon Rettberg2018-07-093-38/+142
| | | | | | | | This is a compromise; if you want to validate replicated data fairly quickly, using this option will make background replication only kick in when there's a "dirty" 16M block, i.e. some blocks within a 16M block are cached locally, but not all. Completing the block makes it possible to validate its CRC32 checksum.
* [SERVER] Reduce debug spamSimon Rettberg2018-07-091-2/+1Star
|
* [KERNEL] Add support for kernel 4.17.xSimon Rettberg2018-07-061-0/+11
|