Replaying distributed systems
AssigneeMicrosoft Corporation
InventorsWei Lin, Xuezheng Liu, Zheng Zhang
Life of this patent
Estimating the term…
Abstract
Replaying distributed systems involves playing a distributed system in a simulator using data from a real-world operation. In an example embodiment, a simulation process is to simulate a distributed system that has a first instance and a second instance. The simulation process includes a first simulation object corresponding to the first instance and a second simulation object corresponding to the second instance. In another example embodiment, communications between the first instance and the second instance are simulated within the simulation process using function calls between the first simulation object and the second simulation object.
Claims18
A device comprising:
- a processor;
- a simulation controller that simulates a distributed system having a first instance and a second instance, the simulation controller being configured to receive as inputs, a first trace log and a second trace log that correspond respectively to the first instance and the second instance, the first trace log and the second trace log each including nondeterministic events derived from an operation of the distributed system;
- a first simulation object corresponding to the first instance and a first memory area that is associated with the first simulation object;
- and
- a second simulation object corresponding to the second instance and a second memory area that is associated with the second simulation object;
- wherein the simulation controller is further configured to direct a single simulation process of the nondeterministic events by switching from the first memory area to the second memory area and use function calls to communicate information between the first simulation object and the second simulation object.
A computer-implemented method comprising:
- receiving a first trace log corresponding to a first instance, and a second trace log corresponding to a second instance, the first trace log and the second trace log including data derived from an operation of a distributed system;
- simulating the first instance of the distributed system in a single simulation process;
- simulating the second instance of the distributed system in the single simulation process;
- simulating messages transferred between the first instance and the second instance of the distributed system as intra-process function calls within the single simulation process;
- and
- switching simulation process memory from a first memory-mapped file corresponding to the first instance to a second memory-mapped file corresponding to the second instance when simulation of the distributed system switches from the first instance to the second instance based at least in part on an intra-process function call.
One or more processor-accessible storage media comprising processor-executable instructions stored thereon, that comprise:
- a distributed system simulator to simulate operation of a distributed system that includes multiple instances, wherein the distributed system simulator simulates the multiple instances within a single simulation process using function calls to simulate communications between the multiple instances;
- and
- multiple trace logs that correspond respectively to the multiple instances, each trace log including data derived from an operation of the distributed system;
- wherein the distributed system simulator:
- applies the data from the multiple trace logs to the multiple instances of the single simulation process during a simulated operation;
- and
- switches from a first memory-mapped file corresponding to a first instance to a second memory-mapped file corresponding to a second instance during the single simulation process.
Dependencies are inferred from the claim text.