# CyCAT data structure The data structure is based on a Redis-compatible data store. [kvrocks](https://github.com/bitleak/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:` -> `value type` ## Value type available |value|type| |-----|-----------------------------------------| | 1 | Publisher | | 2 | Project | | 3 | Item | # : (hash table) Each UUID inserted might have a corresponding hash table - `:` -> keys associated with the hash table type # t: (sorted set) Each type got a sorted set (with a score of one) to easily paginate over the various types - `t:` -> `` # parent: (set) The parent(s) UUID of the UUID. - `parent:` -> {`UUID`, `UUID`} # child: (set) The child(ren) UUID of the UUID. - `child:` -> {`UUID`, `UUID`} # 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