...
Below is a more detailed version of the timeline presented above. Each event in the timeline is associated with a (cumulative) distribution of "completion" times. The "completion" time for a given event is the time delta between that event and its preceding event; hence, the cdf for the first event is quite boring. (Note: the x-axis in the cdf's below is in seconds.)
Event Invoking sync() to backups
...
Event Invoking Send 'write segment' RPC
...
Event Invoking client.send()
...
Event Invoking session->clientSend()
...
Event Acquired Dispatch::Lock in TransportManager::WorkerSession::clientSend
...
Event Invoking Instantiate new ClientRpc
...
Event Completed Instantiate new ClientRpc
...
Event Invoking rpc->sendOrQueue
...
Event Invoking postSendZeroCopy
...
Event Completed postSendZeroCopy
...
Event Completed rpc->sendOrQueue
...
Event Completed session->clientSend()
...
Event Completed client.send()
...
Event Completed Send 'write segment' RPC
...
Event Invoking Send 'write segment' RPC
...
Event Invoking client.send()
...
Event Invoking session->clientSend()
...
Event Acquired Dispatch::Lock in TransportManager::WorkerSession::clientSend
...
Event Invoking Instantiate new ClientRpc
...
Event Completed Instantiate new ClientRpc
...
Event Invoking rpc->sendOrQueue
...
Event Invoking postSendZeroCopy
...
Event Completed postSendZeroCopy
...
Event Completed rpc->sendOrQueue
...
Event Completed session->clientSend()
...
Event Completed client.send()
...
Event Completed Send 'write segment' RPC
...
Event Invoking Send 'write segment' RPC
...
Event Invoking client.send()
...
Event Invoking session->clientSend()
...
Event Acquired Dispatch::Lock in TransportManager::WorkerSession::clientSend
...
Event Invoking Instantiate new ClientRpc
...
Event Completed Instantiate new ClientRpc
...
Event Invoking rpc->sendOrQueue
...
Event Invoking postSendZeroCopy
...
Event Completed postSendZeroCopy
...
Event Completed rpc->sendOrQueue
...
Event Completed session->clientSend()
...
Event Completed client.send()
...
Event Completed Send 'write segment' RPC
...
Event Reaped outstanding RPC (non-close)
...
Event Reaped outstanding RPC (non-close)
...
Event Reaped outstanding RPC (non-close)
...
Event Completed sync() to backups
On the the Backup
Average over 9584 same-shape timelines.
...
Just as we did for the master, we have the cdf's for the events on the backup server:
Event Invoking appendToBuffer() [dispatch]
...
Event Completed appendToBuffer() [dispatch]
...
Event Invoking serviceManager->handleRpc() [dispatch]
...
Event Completed serviceManager->handleRpc() [dispatch]
...
Event Invoking service.handleRpc() [worker]
...
Event Invoking service.dispatch() [worker]
...
Event Invoking callHandler() [worker]
...
Event Invoking SegmentInfo->write() [worker]
...
Event Completed SegmentInfo->write() [worker]
...
Event Completed callHandler() [worker]
...
Event Completed service.dispatch() [worker]
...
Event Completed service.handleRpc() [worker]
...
Event Invoking worker->rpc->sendReply() [dispatch]
...
Event Invoking postSend() [dispatch]
...
Event Completed postSend() [dispatch]
...
Event Completed worker->rpc->sendReply() [dispatch]
Benchmark IB Send vs. RDMA
...