开发者社区 问答 正文

PMEM allocator是如何基于PMDK的libpmem库实现的?

PMEM allocator是如何基于PMDK的libpmem库实现的?

展开
收起
不吃核桃 2024-08-07 18:16:36 35 分享 版权
1 条回答
写回答
取消 提交回答
  • PMEM allocator基于PMDK的底层libpmem库实现,它将从PMEM map出的一块空间分为若干segment,每个segment再分成若干blocks。block是allocator的最小分配单元。为避免线程竞争,分配block的线程缓存一些可用空间,包括一组segment和free list。每种record size(若干个block)都维护一个free list和segment,各record size对应的segment只分配该大小的PMEM空间,各record size对应的free list中的所有指针均指向对应record size的空闲空间。

    2024-08-07 18:40:59
    赞同 3 展开评论
问答地址: