发明名称 System and method for implementing NUMA-aware statistics counters
摘要 The systems and methods described herein may be used to implement scalable statistics counters suitable for use in systems that employ a NUMA style memory architecture. The counters may be implemented as data structures that include a count value portion and a node identifier portion. The counters may be accessible within transactions. The node identifier portion may identify a node on which a thread that most recently incremented the counter was executing or one on which a thread that has requested priority to increment the shared counter was executing. Threads executing on identified nodes may have higher priority to increment the counter than other threads. Threads executing on other nodes may delay their attempts to increment the counter, thus encouraging consecutive updates from threads on a single node. Impatient threads may attempt to update the node identifier portion or may update an anti-starvation variable to indicate a request for priority.
申请公布号 US8918596(B2) 申请公布日期 2014.12.23
申请号 US201213722817 申请日期 2012.12.20
申请人 Oracle International Corporation 发明人 Dice David;Lev Yosef;Moir Mark S.
分类号 G06F13/18;G06F9/50;G06F9/52 主分类号 G06F13/18
代理机构 Meyertons, Hood, Kivlin, Kowert & Goetzel, P.C. 代理人 Kowert Robert C.;Meyertons, Hood, Kivlin, Kowert & Goetzel, P.C.
主权项 1. A method, comprising: performing by a plurality of computing nodes, each of which comprises at least one processor core and a memory: beginning execution of a multithreaded application that comprises one or more operations to increment a shared counter, wherein the shared counter is implemented as a data structure that is accessible by a plurality of threads of the multithreaded application that are executing on the plurality of computing nodes, wherein the data structure comprises a count value portion and a node identifier portion;initiating, by a given thread of the application, an increment operation targeting the shared counter; anddetermining whether to attempt to perform the increment operation or delay performance of the increment operation, wherein said determining is dependent, at least in part, on a value stored in the node identifier portion of the data structure;wherein the value stored in the node identifier portion of the data structure indicates whether one or more threads on a particular one of the plurality of computing nodes have priority to increment the shared counter or have requested priority to increment the shared counter.
地址 Redwood City CA US