×

Directly mapped buffer cache on non-volatile memory

  • US 10,719,446 B2
  • Filed: 08/31/2017
  • Issued: 07/21/2020
  • Est. Priority Date: 08/31/2017
  • Status: Active Grant
First Claim
Patent Images

1. A method comprising:

  • maintaining a set of data blocks in one or more extents in a non-volatile random-access memory (NVRAM) of a computing device;

    allocating a plurality of data buffers in a dynamic random-access memory (DRAM);

    allocating a plurality of buffer headers in said DRAM of the computing device, each buffer header of said buffer headers being;

    configurable to store a reference to a data buffer of said plurality of data buffers that stores a DRAM-copy of one or more data blocks of said set of data blocks, andconfigurable to store a reference to NVRAM of one or more data blocks of said set of data blocks;

    determining whether an access request to access one or more first data blocks in a first extent of the one or more extents is a read request, said access request being made by a first process executing on the computing device; and

    when said access request is a read request, granting the first process direct read access of the one or more first data blocks in the NVRAM by at least;

    storing, in a first buffer header of said plurality of buffer headers, a reference to the one or more first data blocks in the first extent in the NVRAM,associating the first buffer header with the first process, andthe first process using the first buffer header to directly access the one or more first data blocks in the NVRAM; and

    when said access request is not a read request, granting the first process write access by at least;

    generating a first DRAM-copy of the one or more first data blocks in a first data buffer of said plurality of data buffers,storing, in the first buffer header, a reference to the first DRAM-copy of the one or more first data blocks,associating the first buffer header with the first process, andthe first process using the first buffer header to access the one or more first data blocks in said first data buffer.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×