EventStore Table Definitions

From GlueXWiki
Revision as of 17:43, 3 February 2015 by Sdobbs (Talk | contribs) (Tables)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Event Indexing

EventStore indexes events by syncValues (SV's), where SV = (run #, event #, uid). The uid in this case is a unique ID that is used to disambiguate events in the case where multiple events have the same run and event number. Data will always have uid=1, MC events will be assigned uid's in some scheme to be determined.

EventStore can manage multiple streams of data as well. This feature is not currently used in GlueX.

Tables

Here we describe the tables defined by EventStore. Note that the bold names are primary keys in those tables and italic names represents the group index (for faster lookup).

Important Tables

  • FileID gives the list of files
  • Version gives the list of data versions
  • GraphPath gives the dependencies between different data versions

FileID

fileId fileName typeID

One entry per data and key file.

  • fileId is a unique identifier associated with every stored file
  • typeID is an index into the FileType table

KeyFile

graphId view run uid keyFileId

One entry per key file. Associates key files with particular skims.

  • graphId is an index into the GraphPath table (which defines the graphs)
  • view is a the name of a skim (e.g. "2track")
  • keyFileId is an index into the FileID table

RunUID

run uid

A list of the run/uid pairs stored in the DB.

FileType

id type description
  • type is the internal description of the type of data (e.g. "evio", "rest", "mc", etc.)
  • description is a long description of the data type

OrphanFile

id dateTime user

When files are deleted dateTime and user register who deleted the files and when.

Version

id grade timeStamp minRunNumber maxRunNumber graphId state

Information about different data versions

  • grade is the name of the skim, as in KeyFile table
  • timeStamp is the date associated with this version, i.e. the first time this data is considered available. This is conventionally when the data was generated or submitted.
  • graphId is an index into the GraphPath
  • state is "active" or "disabled"


SpecificVersion

svName svid
  • svName is the string that describes this data version
  • svid is the id associated with this specific version

SpecificVersionComment

id svid commentDate comment

Can save a long text comment associated with a particular specific version. [NOTE: need to decide what the use case is for this in GlueX.]

GraphPath

graphId svid

Classify SV's into paths

PathDepend

parentId childId

Describe dependencies between graph nodes.

[NOTE: need to clarify how the prev. two tables interact.]


MaxMasterID

masterMaxId comment

MySQL only. Used for merging? Still investigating...


A visual description of the tables in ESDB is:

ESDB.png

Grades

There are two different types of grades used by EventStore:

  • write grades specify data versions that have been added to the database and can be managed but are not yet ready for general use.
  • read grades specify data versions approved to be accessed by end users.

Data versions can be moved from one grade to another

The current list of grades used are:

write read
rawdata-unchecked rawdata
recon-unchecked recon

Injection

A more detailed discussion of what happens during injection can be found here