Skip to content

Inner workings

Fireworks

Fireworks is the workflow engine that DISP uses to deploy searches. Its fully documentation can be found in its own website. For simple search and retrieve type of work, knowing how to work with fireworks is not required. However, detailed analytics and updating existing search jobs requires using the lpad command line interface, or the LaunchPad python interface of fireworks.

MongoDB

MongoDB is a NSQL database that fireworks uses as a centralised server that each worker pulls jobs from. DISP also uses MongoDB to store relaxed geometry generated by the search. Knowledge of MongoDB is required for advanced usages.

The quickest way to launch an MongoDB server on your own computer is to launch it throgh docker. Free public internet server is avaliable from the MongoDB Atlas service. However, the free tier impose many limitations, and you may want to run a virtual private server (VPS) for MongoDB service yourselves.

Life cycles of a search task

stateDiagram-v2
    [*] --> READY
    READY --> RUNNING
    RUNNING --> COMPLETED
    RUNNING --> RELAX_TIMEDOUT
    RUNNING --> RELAX_ERRORED
    READY --> INSUFFICIENT_TIME
    INSUFFICIENT_TIME --> READY
    RELAX_TIMEDOUT --> READY
    COMPLETED --> DB_UPLOAD

    COMPLETED --> [*]
    RELAX_ERRORED --> [*]
    DB_UPLOAD --> [*]