cycat-service/backend/data-structure.md

1.3 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

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}

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