In high performance systems it is sometimes hard to build very large graphs that are efficient both with respect to memory and compute. This paper proposes a data structure called Markov-chain-priority-queue (MCPrioQ), which is a lock-free sparse markov-chain that enables online and continuous learning with time-complexity of $O(1)$ for updates and $O(CDF^{-1}(t))$ inference. MCPrioQ is especially suitable for recommender-systems for lookups of $n$-items in descending probability order. The concurrent updates are achieved using hash-tables and atomic instructions and the lookups are achieved through a novel priority-queue which allows for approximately correct results even during concurrent updates. The approximatly correct and lock-free property is maintained by a read-copy-update scheme, but where the semantics have been slightly updated to allow for swap of elements rather than the traditional pop-insert scheme.
翻译:在高性能系统中,构建既节省内存又高效计算的超大规模图结构往往颇具挑战。本文提出一种名为马尔可夫链优先队列(MCPrioQ)的数据结构,它是一种无锁稀疏马尔可夫链,支持在线连续学习,其更新的时间复杂度为 $O(1)$,推理的时间复杂度为 $O(CDF^{-1}(t))$。MCPrioQ 特别适用于按概率降序查找 $n$ 个物品的推荐系统。并发更新通过哈希表和原子指令实现,而查找则借助一种新颖的优先队列完成,该队列即使在并发更新期间也能保证结果的近似正确性。这种近似正确且无锁的特性通过读复制更新(RCU)机制得以维持,但语义略有调整,允许元素交换而非传统的弹出-插入方案。