Method to efficiently track I/O access history

    公开(公告)号:US10509769B1

    公开(公告)日:2019-12-17

    申请号:US14303418

    申请日:2014-06-12

    申请人: EMC Corporation

    IPC分类号: G06F17/30 G06F16/16 G06F16/24

    摘要: Managing data blocks stored in a data processing system comprises logging input/output (I/O) accesses to an in-memory buffer with each log entry recording at least identifiers of the data blocks accessed and when the data blocks were accessed. When the size of the log entries reaches a predetermined threshold, the system may append log entries of the in-memory buffer to the end of a history log file. The history log file is analyzed to determine patterns of accesses, and each pattern is stored in a record in an access heuristics database. While processing a request for access to a data block, the data processing system queries the access heuristics database to obtain prior access patterns associated with the data block. A data management action may be taken based on the prior access patterns.

    Maintaining a separate LRU linked list for each thread for multi-threaded access
    2.
    发明授权
    Maintaining a separate LRU linked list for each thread for multi-threaded access 有权
    为每个线程维护一个单独的LRU链表,用于多线程访问

    公开(公告)号:US09460025B1

    公开(公告)日:2016-10-04

    申请号:US14302570

    申请日:2014-06-12

    申请人: EMC Corporation

    IPC分类号: G06F12/12 G06F12/08

    摘要: Exemplary methods for minimizing contention among multiple threads include maintaining a plurality of linked lists of elements, each linked list corresponding to one of a plurality of threads accessing cache entries, each element of each linked list corresponding to one of the cache entries, wherein each linked list comprises a head element and a tail element, the head element corresponding to a most recently used (MRU) cache entry among all cache entries accessed by a corresponding thread, and the tail element corresponding to a least recently used cache entry among all cache entries accessed by the corresponding thread. In response to a cache eviction request, determining a LRU cache entry among the plurality of cache entries based on values accessed from one or more of the tail elements of the linked lists, and evicting the determined LRU cache entry by populating the determined LRU cache entry with the new data.

    摘要翻译: 用于最小化多个线程中的争用的示例性方法包括维护多个链接的元素列表,每个链接列表对应于访问高速缓存条目的多个线程中的一个线程,每个链接列表的每个元素对应于高速缓存条目之一,其中每个链接 列表包括头元素和尾元素,头元素对应于由相应线程访问的所有高速缓存条目中的最近使用(MRU)高速缓存条目,以及对应于所有高速缓存条目中的最近最少使用的高速缓存条目的尾元素 由相应的线程访问 响应于缓存撤销请求,基于从链表的一个或多个尾元素访问的值来确定多个高速缓存条目中的LRU高速缓存条目,并且通过填充所确定的LRU高速缓存条目来逐出所确定的LRU高速缓存条目 与新的数据。

    System and method for improving data compression
    3.
    发明授权
    System and method for improving data compression 有权
    改进数据压缩的系统和方法

    公开(公告)号:US09367557B1

    公开(公告)日:2016-06-14

    申请号:US14038625

    申请日:2013-09-26

    申请人: EMC Corporation

    IPC分类号: G06F17/30

    CPC分类号: G06F17/30153 H03M7/3077

    摘要: Techniques for improving data compression of a storage system are described herein. According to one embodiment, a first sequence of data is partitioned into a plurality of data chunks in a first sequence order according to a predetermined chunking algorithm. The similarity of the data chunks is determined based on data patterns of the data chunks. The data chunks are reorganized into a second sequence order based on the similarity of the data chunks, the second sequence order being different from the first sequence order. The reorganized data chunks are compressed in the second sequence order into a second sequence of data, such that similar data chunks are stored and compressed together within the second sequence of data.

    摘要翻译: 本文描述了用于改善存储系统的数据压缩的技术。 根据一个实施例,根据预定的分块算法,以第一序列顺序将第一数据序列划分为多个数据块。 基于数据块的数据模式确定数据块的相似度。 基于数据块的相似度,将第二序列顺序与第一序列顺序不同,将数据块重新组织成第二序列。 重新组织的数据块以第二序列顺序压缩成第二数据序列,使得类似的数据块在第二数据序列内被一起存储和压缩。

    System and method for balancing compression and read performance in a storage system

    公开(公告)号:US10216754B1

    公开(公告)日:2019-02-26

    申请号:US14038632

    申请日:2013-09-26

    申请人: EMC Corporation

    IPC分类号: G06F17/30

    摘要: Techniques for balancing data compression and read performance of data chunks of a storage system are described herein. According to one embodiment, similar data chunks are identified based on sketches of a plurality of data chunks stored in the storage system. A first portion of the similar data chunks as a first group is associated with a first storage area. The first storage area is associated with one or more data chunks that are dissimilar to the first group but are likely accessed together. The first group of the similar data chunks and its associated dissimilar data chunks are compressed and stored in the first storage area.

    Contention-free approximate LRU for multi-threaded access
    6.
    发明授权
    Contention-free approximate LRU for multi-threaded access 有权
    无漏洞的近似LRU用于多线程访问

    公开(公告)号:US09529731B1

    公开(公告)日:2016-12-27

    申请号:US14302558

    申请日:2014-06-12

    申请人: EMC Corporation

    IPC分类号: G06F12/12 G06F12/08

    摘要: Exemplary methods for managing cache based on approximate least recently used (LRU) cache entries include maintaining a distributed data structure (DDS) of data elements, each corresponding to a cache entry of a plurality of cache entries, wherein each data element can be atomically accessed by multiple threads. In response to a cache eviction request from a first thread, determining an approximately LRU cache entry among the cache entries based on values atomically accessed from a first subset of the DDS of data elements, wherein the first subset of the DDS is atomically accessed using an atomic instruction without acquiring a lock to prevent another thread from accessing the first subset of the DDS to determine other approximately LRU cache entries among the cache entries, while allowing a second thread accessing a second subset of the DDS substantially concurrently. Evicting the determined approximately LRU cache entry.

    摘要翻译: 基于近似最近使用的(LRU)高速缓存条目来管理高速缓存的示例性方法包括维护数据元素的分布式数据结构(DDS),每个对应于多个高速缓存条目的高速缓存条目,其中每个数据元素可被原子访问 多线程。 响应于来自第一线程的缓存驱逐请求,基于从数据元素的DDS的第一子集原子访问的值来确定高速缓存条目中的近似LRU高速缓存条目,其中DDS的第一子集使用 原子指令,而不获取锁,以防止另一线程访问DDS的第一子集,以确定高速缓存条目中的其他近似LRU高速缓存条目,同时允许第二线程基本同时访问DDS的第二子集。 驱逐确定的大约LRU缓存条目。