Updated: 4/21/2025

  • Home
  • About
    • Welcome
    • Training / Consulting
    • History
    • Attribution
    • Contribute Case Studies
  • The gDS Facility
    • Disassembling DBMSs
    • gDS Overview
    • Working With gDS Tables
    • .dd File Format
    • gDS Generated Code
    • Managing Concurrency
  • AI R&D
    • Introduction
    • Initial Work (Post 1)
  • Building Test Platforms
    • Development Phases
    • Interface To The SUT
    • Test Runs and Cycles
    • Screen Displays
    • Static/Dynamic Config.
    • Managing Concurrency
    • Additional Functionality
  • Case Studies & Code
    • Overview & TOC
    • Case Study 1
    • Case Study 2
    • Case Study 3
    • Case Study 4
    • Case Study 5
    • Case Study 6
  • Webinars
    • Webinar Notes
  • More
    • Home
    • About
      • Welcome
      • Training / Consulting
      • History
      • Attribution
      • Contribute Case Studies
    • The gDS Facility
      • Disassembling DBMSs
      • gDS Overview
      • Working With gDS Tables
      • .dd File Format
      • gDS Generated Code
      • Managing Concurrency
    • AI R&D
      • Introduction
      • Initial Work (Post 1)
    • Building Test Platforms
      • Development Phases
      • Interface To The SUT
      • Test Runs and Cycles
      • Screen Displays
      • Static/Dynamic Config.
      • Managing Concurrency
      • Additional Functionality
    • Case Studies & Code
      • Overview & TOC
      • Case Study 1
      • Case Study 2
      • Case Study 3
      • Case Study 4
      • Case Study 5
      • Case Study 6
    • Webinars
      • Webinar Notes
  • Sign In
  • Create Account

  • Bookings
  • My Account
  • Signed in as:

  • filler@godaddy.com


  • Bookings
  • My Account
  • Sign out


Signed in as:

filler@godaddy.com

  • Home
  • About
    • Welcome
    • Training / Consulting
    • History
    • Attribution
    • Contribute Case Studies
  • The gDS Facility
    • Disassembling DBMSs
    • gDS Overview
    • Working With gDS Tables
    • .dd File Format
    • gDS Generated Code
    • Managing Concurrency
  • AI R&D
    • Introduction
    • Initial Work (Post 1)
  • Building Test Platforms
    • Development Phases
    • Interface To The SUT
    • Test Runs and Cycles
    • Screen Displays
    • Static/Dynamic Config.
    • Managing Concurrency
    • Additional Functionality
  • Case Studies & Code
    • Overview & TOC
    • Case Study 1
    • Case Study 2
    • Case Study 3
    • Case Study 4
    • Case Study 5
    • Case Study 6
  • Webinars
    • Webinar Notes

Account


  • Bookings
  • My Account
  • Sign out


  • Sign In
  • Bookings
  • My Account

gDS Overview

The test platforms referenced in this website all use a Python-specific “global data store” called “gDS”.


gDS is unconvential. It's being presented because it works very well in test platforms. You can review its primary characteristics below. You can also use an alternative to gDS if you so choose.


See Case Study 1 for a tutorial on gDS.

How Are Tables Constructed In gDS?

gDS uses Python “list” and “dictionary” variables made global (located in shared memory) by the Python “multiprocessing” library. These variables are used just like any other Python variable. except that their values are seen by all the threads and processes created by the main Python code as it executes. It can be considered connectionless inter-process communication.


The Python “list” and “dictionary” variables can be combined into relationally organized tables and indices (in 3'rd-normal form if desired). 


Together with the naming conventions used in the tables and indices are navigated and dereferenced cleanly and easily with ordinary Python code.

Replace Transactions With Simpler Functionality

A traditional DBMS uses a "transaction" to manage concurrent access to the data in the tables. gDS offers alternatives to managing concurrency:


  1. A single "system lock" is used to provide atomic operations on the data in the tables.
  2. Table data is memory-resident; loading data into it at the start does not take that long. Small amounts of "startup data" can be persisted if needed.
  3. Data can be organized so that each thread has it's own row of data, reducing the need for locks.


These alternatives are not embedded in gDS but used in the general flow of control in the test platform. 

gDS Code Generator

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

Copyleft © 2025 Testing Complex Systems - All Rights Reserved.

Powered by

This website uses cookies.

We use cookies to analyze website traffic and optimize your website experience. By accepting our use of cookies, your data will be aggregated with all other user data.

DeclineAccept