US 11,687,392 B2
Method and system for constructing persistent memory index in non-uniform memory access architecture
Jiwu Shu, Beijing (CN); Qing Wang, Beijing (CN); Youyou Lu, Beijing (CN); and Zhuo Cheng, Beijing (CN)
Assigned to TSINGHUA UNIVERSITY, Beijing (CN)
Filed by Tsinghua University, Beijing (CN)
Filed on Nov. 23, 2021, as Appl. No. 17/534,121.
Claims priority of application No. 202110722046.4 (CN), filed on Jun. 28, 2021.
Prior Publication US 2022/0413952 A1, Dec. 29, 2022
Int. Cl. G06F 16/23 (2019.01); G06F 16/901 (2019.01); G06F 11/07 (2006.01); G06F 9/30 (2018.01); G06F 11/14 (2006.01); G06F 12/02 (2006.01)
CPC G06F 11/073 (2013.01) [G06F 9/3009 (2013.01); G06F 11/0772 (2013.01); G06F 11/1438 (2013.01); G06F 12/0238 (2013.01); G06F 16/2365 (2019.01); G06F 2212/2542 (2013.01); Y10S 707/99953 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for constructing a persistent memory index in a non-uniform memory access (NUMA) architecture, wherein the NUMA architecture comprises a plurality of NUMA nodes having a persistent memory and a DRAM, the method comprising:
maintaining a plurality of partial persistent views in the persistent memory, and maintaining a global volatile view in the DRAM;
processing by an underlying persistent memory index, a request in a foreground thread when cold data is accessed by the foreground thread;
when hot data is accessed by the foreground thread,
in response to a query operation carried in the request, reading by the foreground thread a key-value pair corresponding to a piece of hot data in the global volatile view; and
in response to an insert, update or delete operation carried in the request, updating by the foreground thread a local partial persistent view of a NUMA node where the foreground thread is located and the global volatile view; and
in response to a hotspot migration, generating by a background thread new partial persistent views and a new global volatile view based on new hot data, and recycling the partial persistent views and the global volatile view for old hot data into the underlying persistent memory index.