发明名称 Log-structured filed system with file branching
摘要 Disclosed are systems, computer-readable mediums, and methods for reading a sequence number from regions of a solid state storage device. A latest region is determined based upon the sequence numbers and a checkpoint file is read within the latest region. A request for a block of data of a first branch is received. A first block of pointers associated with the first branch from the checkpoint file is read. A first pointer from the first block of pointers and a second block of pointers pointed to by the first pointer are read. A second pointer from the second block of pointers and a third block of pointers pointed to by the second pointer are read. A third pointer from the third block of pointers and data pointed to by the third pointer are read. The block of data of the first branch is determined based upon the read data. The block of data is returned.
申请公布号 US9342444(B2) 申请公布日期 2016.05.17
申请号 US201514684942 申请日期 2015.04.13
申请人 NetApp, Inc. 发明人 Minckler William;Wright David D.
分类号 G06F11/00;G06F12/02;G06F3/06;G06F17/30 主分类号 G06F11/00
代理机构 Foley & Lardner LLP 代理人 Foley & Lardner LLP
主权项 1. A system comprising: one or more electronic processors configured to: read a sequence number from a plurality of regions of a solid state storage device, wherein the solid state storage device is divided into regions;determine a latest region based upon the read sequence numbers;read a checkpoint file within the latest region;receive a request for a block of data of a first branch;read a first block of pointers on the solid state storage devices associated with the first branch from the checkpoint file, wherein the checkpoint file contains an association between the first branch and the first block of pointers;read a first pointer from the first block of pointers;read a second block of pointers on the solid state storage device pointed to by the first pointer;read a second pointer from the second block of pointers;read a third block of pointers on the solid state storage device pointed to by the second pointer;read a third pointer from the third block of pointers;read data on the solid state storage device pointed to by the third pointer;determine the block of data of the first branch based upon the read data pointed to by the third pointer;return the block of data of the first branch in response to receiving the request for the block of data of the first branch;receive a request to create a second branch from the first branch;create a copy of the first block of pointers; andcreate a second branch entry in the checkpoint file that points to the copy of first block of pointers, wherein the second block of pointers and third block of pointers are shared between the second branch and the first branch.
地址 Sunnyvale CA US