A close up of an airplane engine and propellers.

gDS Overview

Significant software systems are typically built around a database/data store/DBMS functionality of some sort. The test platforms referenced in this website all use a Python-specific “global data store” called “gDS.”

gDS uses Python “list” and “dictionary” variables made global (located in shared memory) by the Python “multiprocessing” library. Once instantiated, these lists and dictionaries are used just like any other Python variable, except that the variables can be seen by all the threads and processes created by the main Python program as it executes. Several techniques are then used to manage the concurrent operation that ensues. Overall it is connectionless inter-process communication.

The other useful attribute of Python “list” and “dictionary” variables is that they can be combined into relationally organized tables that can be navigated and dereferenced cleanly and easily with ordinary Python code.

The code generator “gDSCodeGen” converts a “.dd” (schema) file provided by the developer into Python code to define and help manipulate the tables defined in it. The “.py” produced by gDSCodeGen is consumed by the test platform Python code and can be reviewed separately to provide insight.

See Case Study 1 for a tutorial on gDS.