38 lines
		
	
	
		
			1022 B
		
	
	
	
		
			Markdown
		
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1022 B
		
	
	
	
		
			Markdown
		
	
	
# 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.
 | 
						|
 | 
						|
# UUID k/v
 | 
						|
 | 
						|
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                                 |
 | 
						|
 | 
						|
# UUID hash table
 | 
						|
 | 
						|
Each UUID inserted might have a corresponding hash table
 | 
						|
 | 
						|
- `<type>:<UUID>` -> keys associated with the hash table type
 | 
						|
 | 
						|
# type sorted set
 | 
						|
 | 
						|
Each type got a sorted set (with a score of one) to easily paginate over the various types
 | 
						|
 | 
						|
- `t:<type>` -> `<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
 |