Interleaving read and write requests to reduce latency and maximize throughput in a flash storage device

    公开(公告)号:US09747044B2

    公开(公告)日:2017-08-29

    申请号:US15284808

    申请日:2016-10-04

    IPC分类号: G06F3/06

    摘要: In an all-flash storage array, write requests can take about 9 to 10 times longer than a read request of the same size. There could be several problems when reading or writing from all-flash storage, such as a large write request slowing down small read requests, or other write requests. Also, a large read request may slow down smaller read requests by filling the incoming requests queue. In one implementation, a determination is made on what is the maximum size of a request to flash storage that improves the throughput of a flash chip (e.g., write requests beyond a certain size do not improve throughput). A chunklet is defined as a block of data having the calculated maximum size. As write requests come in, the write requests are broken into chunklets, and then the chunklets are queued for processing by the flash chip. One chunklet is processed at a time per write request. This way, one write request does not monopolize the use of the flash chip for a period of time, allowing other requests to be queued while the chunklet is being processed by the all-flash storage.

    DYNAMIC CORE ALLOCATION FOR CONSISTENT PERFORMANCE IN A NON-PREEMPTIVE SCHEDULING ENVIRONMENT

    公开(公告)号:US20170177221A1

    公开(公告)日:2017-06-22

    申请号:US15445919

    申请日:2017-02-28

    IPC分类号: G06F3/06

    摘要: Methods and systems are presented for allocating resources based on dynamic core allocation in a scheduler hierarchy of a storage system. One method includes reserving a set of core processors including one or more core processors for execution of system IOs in the data storage system. The data storage system includes a controller including non-volatile memory (NVRAM) for handling IOs and a first central processing unit (CPU) having a plurality of core processors, a solid state memory (SSD) configured as a read cache memory, and permanent data storage. The method includes dynamically adjusting the number of core processors in the set based on a current utilization of a resource. The method includes scheduling an IO on a first core processor of the plurality of core processors that has the least magnitude of scheduled utilization.

    VIRTUALIZATION OF NON-VOLATILE RANDOM ACCESS MEMORY

    公开(公告)号:US20170123685A1

    公开(公告)日:2017-05-04

    申请号:US14932356

    申请日:2015-11-04

    IPC分类号: G06F3/06

    摘要: Methods, systems, and computer programs are presented for virtualizing Non-Volatile Random Access Memory (NVRAM). A first area in RAM is labeled as active area and a second area as non-active area, and an active journal and a non-active journal are created in permanent storage. A transaction is created for each write made to the virtual NVRAM, and the created transactions are written to the active journal and to the active area. When the active journal is greater than a predetermined size or a timeout occurs, a checkpoint is created by copying contents from the active area to the non-active area, switching status of the active area and the non-active areas (the active area becomes the non-active area and the non-active area becomes the active area), switching status of the active journal and the non-active journal, and copying the content of the current non-active area to permanent storage.

    Processing of Incoming Blocks in Deduplicating Storage System

    公开(公告)号:US20170115883A1

    公开(公告)日:2017-04-27

    申请号:US14919414

    申请日:2015-10-21

    IPC分类号: G06F3/06 G06F12/10

    摘要: Methods, systems, and computer programs are presented for deduplicating data. One method includes an operation for receiving a data block having a logical address. The storage system includes a logical address mapping index for mapping logical addresses to block numbers, a block index for mapping block numbers to physical locations, and a fingerprint index for mapping fingerprints of data blocks to block numbers. Additionally, the method includes an operation for inline processing the data block. Inline processing the data block includes determining a fingerprint of the data block, examining the fingerprint index to determine if the fingerprint is already mapped to an existing data block in the storage system, if the fingerprint is already mapped then adding a mapping of the logical address to the existing data block in the logical address mapping index, and if the fingerprint is not already mapped then creating the corresponding entries in the indices.

    Methods for transitioning control between two controllers of a storage system
    9.
    发明授权
    Methods for transitioning control between two controllers of a storage system 有权
    用于在存储系统的两个控制器之间转换控制的方法

    公开(公告)号:US09594614B2

    公开(公告)日:2017-03-14

    申请号:US14015910

    申请日:2013-08-30

    IPC分类号: G06F3/00 G06F11/07 G06F11/20

    摘要: Described herein are methods for transitioning control between a first and second controller of a storage system. In such transition, the first controller transmits a message to a memory element shared by the first and second controllers, the message capable of notifying the second controller of an imminent failure of the first controller. The second controller receives the message from the shared memory element, the message notifying the second controller of an imminent failure of the first controller. Subsequent to transmitting the message to the shared memory element, the first controller becomes unavailable to facilitate access to the storage devices of the storage system. Subsequent to receiving the message from the shared memory element, the second controller becomes available to facilitate access to the storage devices of the storage system.

    摘要翻译: 这里描述了用于在存储系统的第一和第二控制器之间转换控制的方法。 在这种转换中,第一控制器向第一和第二控制器共享的存储器元件发送消息,该消息能够通知第二控制器第一控制器即将发生故障。 第二控制器从共享存储器元件接收消息,该消息通知第二控制器第一控制器即将发生故障。 在将消息发送到共享存储器元件之后,第一控制器变得不可用以便于访问存储系统的存储设备。 在从共享存储器元件接收到消息之后,第二控制器变得可用以便于访问存储系统的存储设备。

    Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system
    10.
    发明授权
    Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system 有权
    用于以冗余的方式将数据存储在存储系统的多个存储单元上的方法和系统

    公开(公告)号:US09563509B2

    公开(公告)日:2017-02-07

    申请号:US14332282

    申请日:2014-07-15

    IPC分类号: G06F11/00 G06F11/10

    摘要: Described herein are techniques for storing data in a redundant manner on a plurality of storage units of a storage system. While all of the storage units are operating without failure, only error-correction blocks are stored on a first one of the storage units, while a combination of data blocks and error-correction blocks are stored on a second one of the storage units. Upon failure of the second storage unit, one or more data blocks and one or more error-correction blocks formerly stored on the second storage unit are reconstructed, and the one or more reconstructed data blocks and the one or more reconstructed error-correction blocks are stored on the first storage unit.

    摘要翻译: 这里描述了用于以冗余的方式将数据存储在存储系统的多个存储单元上的技术。 虽然所有存储单元都没有故障地运行,但只有纠错块存储在第一个存储单元上,而数据块和纠错块的组合被存储在第二个存储单元上。 在第二存储单元发生故障时,重构先前存储在第二存储单元上的一个或多个数据块和一个或多个纠错块,并且一个或多个重构数据块和一个或多个重建纠错块是 存储在第一存储单元上。