summaryrefslogtreecommitdiff
path: root/src/mongo/s/async_requests_sender.h
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-68826 Introduce the server_base libraryKaloian Manassiev2022-08-181-1/+1
|
* SERVER-57519 Make ARS use causally consistent ShardRegistry::getShard() ↵Tommaso Tocci2022-07-081-2/+8
| | | | function
* SERVER-64407 Add ResourceYielder support to ARSJack Mulrow2022-03-111-1/+7
|
* SERVER-40785 Change sharding fixed and arbitrary executors from unique_ptr ↵Randolph Tan2019-07-091-1/+1
| | | | to shared_ptr
* SERVER-41132 Opportunistic targeting for ARSJason Carey2019-06-061-7/+11
| | | | | | | | | | | Inside the ARS, support use of the TaskExecutor::scheduleRemoteCommandOnAny method, which will allow the ARS to use any acceptable host returned from targeting, rather than requiring us to use one at random. This should allow us to prefer routing requests to hosts which have ready connections to, or that we can generate ready connections to faster
* Revert "SERVER-41132 Opportunistic targeting for ARS"Gregory Wlodarek2019-06-061-13/+7
| | | | This reverts commit f3d9452220039ba74c68fe58b382a237d4e07ad1.
* SERVER-41132 Opportunistic targeting for ARSJason Carey2019-06-061-7/+13
| | | | | | | | | | | Inside the ARS, support use of the TaskExecutor::scheduleRemoteCommandOnAny method, which will allow the ARS to use any acceptable host returned from targeting, rather than requiring us to use one at random. This should allow us to prefer routing requests to hosts which have ready connections to, or that we can generate ready connections to faster
* SERVER-39163 Parallel targetting in the ARSJason Carey2019-05-011-103/+102
| | | | | Use the new opctx as executor functionality to perform parallel targeting in the ARS
* SERVER-40357 expand all calls to MONGO_DISALLOW_COPYINGBilly Donahue2019-03-281-2/+2
| | | | | | | | | | | produced by: hits="$(git grep -n MONGO_DISALLOW_COPYING | cut -d: -f1 )" for f in "$hits"; do sed -i.orig ' s/^\( *\)MONGO_DISALLOW_COPYING(\(.*\));/\1\2(const \2\&) = delete;\n\1\2\& operator=(const \2\&) = delete;/; ' $f done
* SERVER-39560 - remove leading blank line on all C++ filesBilly Donahue2019-02-131-1/+0
| | | | | | Remove leading comments that are just stating the filename. Move any file-level comments below the copyright banner. Remove leading blank lines.
* SERVER-39147 Always batonJason Carey2019-02-061-33/+0
|
* SERVER-39146 Refactor BatonJason Carey2019-02-051-4/+4
| | | | | Refactor the baton into regular and networking batons while also cleaning up the basic baton implementation.
* SERVER-37797 PCQ +multi +pipeJason Carey2018-11-021-1/+1
| | | | | | Add support for MultiProducer + MultiConsumer on our existing PCQ and introduce a Pipe type which holds the interface via shared_ptr ends and closes those ends on destruction.
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-221-8/+10
|
* SERVER-35679 General Interruption FacilityJason Carey2018-09-171-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for a generalized interruptibility facility in the server. This offers a generalized interruptibility facility, trialed in Future<T> and ProducerConsumerQueue<T>. It offers 3 major concepts: Notifyable: A type which can notified off-thread, causing a wake up from some kind of blocking wait Waitable: A type which is Notifyable, and also can perform work while in a ready-to-receive notification state. static methods offer support for running underneath condition_variable::wait's. The chief implementer is the transport layer baton type Interruptible: A type which can wait on condition variables, and offers: - deadlines. This means the type integrates some sort of clock source - interruptibility. This means the type offers a way of noticing that it should no longer run via status or exception Additionally, Interruptible's offer special scoped guards which offer - Exemption from interruption in a region defined by the lifetime of a guard object - Subsidiary deadlines which can trigger recursively, offering specialized timeout and status return support. The series of virtual types allows us to slice the interface between opCtx and future such that opctx can use future and future can use opctx. Additionally, cutting out more functionality allows us to flow a noop interruptibility type which unifies our waiting behind a common api.
* SERVER-34739 Migrate to 1 connpool in ARSJason Carey2018-04-271-5/+40
| | | | | | | | Migrate to 1 connection pool in mongos. This change involves the introduction of a transport layer baton, which improves perf for a particular transport layer when doing local scatter/gather operations.
* SERVER-34582 Replace object level lock for ARSJason Carey2018-04-241-19/+20
| | | | | | | | | | ARS holds a lock during scheduling, to prevent notification during scheduling. As an unfortunate side effect, this prevents callbacks from resolving during scheduling. (which can cause background executors to block in executing a callback). This replaces the mutex with a producer consumer queue which handles responses, and moves response handling into calls to next().
* SERVER-27664 Use scatterGatherVersionedTargetByRoutingTable instead of ↵Kaloian Manassiev2018-03-051-1/+1
| | | | | | | | | passthrough in commands_public.cpp This change replaces all usages of passthrough, which are used for sharded and unsharded collection routing from commands_public.cpp. All remaining usages of passthrough will be replaced with direct Shard::runCommand instead.
* SERVER-30838 Remove _inlock names in sharding subsystemNathan Myers2017-09-251-3/+3
|
* SERVER-28875 make the ARS take a RetryPolicyEsha Maharishi2017-09-131-1/+5
|
* SERVER-28542 make ARS store interrupt status instead of CallbackCanceled in ↵Esha Maharishi2017-03-301-8/+9
| | | | remotes if interrupted
* SERVER-28353 make ARS actually interruptible from the deadline on the ↵Esha Maharishi2017-03-231-27/+27
| | | | OperationContext
* SERVER-28164 make ClusterWrite::run path use ARS instead of DBClientMultiCommandEsha Maharishi2017-03-131-99/+102
|
* SERVER-27938 Rename all OperationContext variables to opCtxMaria van Keulen2017-03-071-7/+8
| | | | | | This commit is an automated rename of all whole word instances of txn, _txn, and txnPtr to opCtx, _opCtx, and opCtxPtr, respectively in all .cpp and .h files in src/mongo.
* SERVER-28163 make cluster_get_last_error_cmd.cpp use ARS instead of ↵Esha Maharishi2017-03-061-5/+7
| | | | DBClientMultiCommand
* SERVER-28173 create a component that sends requests in parallel to multiple ↵Esha Maharishi2017-03-021-0/+283
hosts over ASIO