liveBook · Manning

Memory store

As explained in Designing Deep Learning Systems: A guide for software engineers

An in-memory component that temporarily stores job objects and their execution-state collections.

A memory store temporarily holds training-job objects and their execution-state collections. It separates waiting, launching, running, and finalized jobs so the training service can coordinate requests, execution, and status queries. section 3.3.2

The reference implementation uses four maps to represent the job lifecycle:

The Docker job tracker monitors the queue, launches containers when capacity exists, and moves each job between maps as Docker reports state changes. A status request identifies the map containing the job ID and derives the current training status from it. section 3.3.4 section 3.3.5

Tracking a submitted training job

A Train API request receives a job ID when the request enters the job queue. After capacity becomes available, the tracker launches its Docker container and moves the job to launching, then running. Once the container finishes, the job enters finalized; a later status query reports waiting, launch, running, success, or failure according to its map. section 3.3.4 section 3.3.5

Figure 3.5 A high-level service design and user workflow: user training requests are queued, and the Docker job tracker picks up jobs from the queue and launches Docker containers to run model training.

Use the service workflow to trace how queued training requests pass through the memory store and Docker job tracker. section 3.3.2

How Designing Deep Learning Systems: A guide for software engineers covers it

How deep it goes
Defines four in-memory maps and their lifecycle transitions, but recommends a database for an ideal implementation.
Examples
Uses Java map declarations, DockerTracker listings, container-status polling, and a job-status lookup implementation.
What it assumes
Assumes familiarity with training requests and Docker containers while defining job states and transitions through the workflow.
What you can do after
Operate a training-job lifecycle by queueing requests, tracking Docker execution, and deriving status from state collections.
How it connects
Connects training requests, the Train API, the Docker job tracker, Docker containers, and execution-status queries.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Designing Deep Learning Systems: A guide for software engineers. The section links point to the parts of the book it draws on.