Skip to main content
Version: 2.5.0

ChronoPlayer

ChronoPlayer is the component responsible for the "story reading" side of the ChronoLog services, as it reads back the recorded data and serves the client applications' queries into the recorded events.

The ChronoPlayer design is the logical continuation of the internal design of ChronoKeeper and ChronoGrapher servers, as it is also based on the Story Pipeline model.

There are two different APIs to get events back. Playback() retrievies Events at the end of the Story. Replay() requests history Events in earlier time range of a Story.

CHRONOPLAYER COMPONENTSCHRONOPLAYERPartial StoryChunks from ChronoKeepersPlayer Recording ServiceChronoPlayer Registrationand Heartbeat MsgsPlayer Registry ClientPlayer Data StoreAdmin ServiceNotifications from the ChronoVisorto Start & Stop Story RecordingPLAYER DATA STOREPlayer Data StoreStory 1 PipelineStory 2 PipelineStory 3 PipelinePlayback/Replay Requestsfrom Client ApplicationsPlayback/Replay ServicePlayback/Replay Response Transfer Agent for Story 1Playback/Replay Response Transfer Agent for Story 2Playback/Replay Responsesto Client ApplicationsArchive Reading AgentReads from HDF5 ArchivesPersistent Storage TierComplete StoryChunks are retrieved from the ChronoStore
ComponentDescription
Player Registry ClientThe client side of RPC communication between the ChronoPlayer process and ChronoVisor's ProcessRegistryService. Used to send register/unregister and periodic heartbeat/statistics messages to ChronoVisor.
Player Data Store Admin ServiceListens to Start/Stop Story recording notifications from ChronoVisor. These notifications trigger instantiation or dismantling of the appropriate active StoryPipelines based on client data access requests.
Player Recording ServiceThe RPC service that receives partial StoryChunks from ChronoKeeper processes — the same partial story chunks sent to ChronoGrapher to be merged and committed to the Persistent Storage layer.
Player Data StoreMaintains the most recent segment of StoryPipeline for every active story, applying the same chunk merging logic as ChronoGrapher. This allows ChronoPlayer to have the most recent story events sorted, merged, and available for playback/replay requests before they are available in the slower Persistent Storage layer.
Playback/Replay ServiceListens to Story playback/replay queries from client applications and serves responses. Returns all sorted events for a specific story within the requested time range. The most recent events may come from the active Player Data Store; the majority of requests are satisfied from the Persistent Storage layer.
Playback/Replay Response Transfer AgentThe RPC client responsible for bulk transfer of the range query response event series back to the requesting client application. Instantiated by the Playback Service for each client query, using the client's response-receiving service credentials provided in the query request.
Archive Reading AgentReads Chronicle and Story data persisted in HDF5 Archives, extracts the subset of events relevant to the requested range query as StoryChunks for use by the Playback Service.