2.1 KiB
2.1 KiB
CyCAT data structure
The data structure is based on a Redis-compatible data store. kvrocks is the Redis-compatible data store used for CyCAT but any compatible Redis data store can be used.
u:
Each UUID inserted in CyCAT has at least an entry in the backend with the following format:
u:<UUID>->value type
Value type available
| value | type |
|---|---|
| 1 | Publisher |
| 2 | Project |
| 3 | Item |
: (hash table)
Each UUID inserted might have a corresponding hash table
<type>:<UUID>-> keys associated with the hash table type
Reserved keys
raw- raw data for the specific item
t: (sorted set)
Each type got a sorted set (with a score of one) to easily paginate over the various types
t:<type>-><UUID>
parent: (set)
The parent(s) UUID of the UUID.
parent:<UUID>-> {UUID,UUID}
child: (set)
The child(ren) UUID of the UUID.
child:<UUID>-> {UUID,UUID}
r: (set)
The list of relationships from a specific UUID.
r:<UUID>-> {UUID,UUID}
rd:: (set)
The relationship data from an UUID tuple.
rd:<source UUID>:<destination UUID>-> {value,value}
id::<NAMESPACE_ID> (set)
A namespace id referenced in an UUID
id:<NAMESPACE>:<NAMESPACE_ID>-> {UUID,UUID}
idk: (set)
Known id per namespace
idk:<NAMESPACE>' -> {NAMESPACE_ID,NAMESPACE_ID`}
Statistics
Automatic API statistics
Prefix of API statistic is stats:f: followed by the function name called.
stats:f:generateuuid: number of calls to the UUID generator API
Fixed UUIDs for UUIDv5 generation
| value | description |
|---|---|
| 690b3b43-d689-481c-aa61-5351963a36f2 | Used to generate the UUID of a GitHub url - concatenation key is publisher:project |
| 39d6e10c-dac7-40e2-8e99-1ab1cefea6f4 | Used to generate CyCAT OID for publisher and project |