整理了一份ps-lite UML图
KVCache
KVPair
关键数据结构,一个Key对应一组定长或变长Value。
如果是变长Value,需要设置val_size,指定每组value的长度,length(val_size) == length(key)。
struct KVPair {
// [key_0, ..., key_n]
SArray<K> key;
// constant value size:
// [val_00, ..., val_0k, ..., val_n0, ..., val_nk]
// dynamic value size:
// [val_00, ...val_0,val_size[0], ..., val_n0, ..., val_n,val_size[n]
V* val = NULL ;
size_t len_val = 0; // length of val
std::vector<V>* val_vec = NULL; // allocator fo val
int* val_size = NULL;
// for match dynamic vals
std::vector<std::pair<K, SArray<V>>> recv;
int recv_num = 0;
size_t matched_num = 0;
};
参考
- https://github.com/dmlc/ps-lite/tree/v1