Reference Counting Patents (Class 707/814)
  • Patent number: 11847487
    Abstract: A method using a memory and queue handling logic, including accessing a work control structure (WCS) configured “first-in-first-out” holding work control records (WCRs) each including a field defining work to be carried out and a completion indicator indicating whether the work has completed, and initially set to indicate that the work has not completed: upon fetching a work request (WR) for execution, pushing a WCR corresponding to the WR to the WCS, and: A) inspecting the WCR at a head of the WCS, B) when the completion indicator of the WCR at the head of the WCS indicates that the unit of work associated with the WCR at the head of the WCS has been completed, popping the WCR at the head of the WCS from the WCS, and reporting completion of the WCR at the head of the WCS to a host processor, and C) iteratively performing A, B, and C.
    Type: Grant
    Filed: May 27, 2021
    Date of Patent: December 19, 2023
    Assignee: MELLANOX TECHNOLOGIES, LTD.
    Inventors: Ariel Shahar, Roee Moyal
  • Patent number: 11669277
    Abstract: A computer system having a host coupled to a storage device via a peripheral component interconnect express bus. The host communicates write commands of low priority to the storage device, which places them in a queue for execution at an idle time. In response to a determination that the storage device is in an idle state, the storage device best accommodates the write commands in the idle queue in connection with housekeeping tasks, such as garbage collection and wear leveling, to best reduce write amplification.
    Type: Grant
    Filed: July 23, 2021
    Date of Patent: June 6, 2023
    Assignee: Micron Technology, Inc.
    Inventor: Alex Frolikov
  • Patent number: 11194623
    Abstract: A resource scheduling method and a related resource scheduling apparatus to improve data input/output (I/O) efficiency, where the method includes determining a current task queue, where the current task queue includes a plurality of to-be-executed application tasks, determining, for data blocks on a disk to be accessed by the application tasks, a quantity of times that each data block is to be accessed by the application tasks, determining a hotspot data block according to the quantity of times that each data block is to be accessed by the application tasks, and sending a move-in instruction to a local node of the hotspot data block, where the move-in instruction instructs to move the hotspot data block into a memory such that the hotspot data block can be accessed in the memory.
    Type: Grant
    Filed: September 3, 2019
    Date of Patent: December 7, 2021
    Assignee: HUAWEI TECHNOLOGIES CO., LTD.
    Inventors: Jia Li, Jie Liu, Lifei Dang, Lingzhi Mao
  • Patent number: 11093387
    Abstract: System generates data structure based on unique identifiers of objects in object storages and sets indicators in positions that correspond to hashes of unique identifiers of active objects. If a first number of regions of active data objects in first data storage and second number of regions of active data objects in second data storage each fail to satisfy data threshold, then system creates model identifying locations and sizes of regions of active data objects in first data storage and regions of active data objects in second data storage. System resets indicators in positions in data structure which correspond to hashes of unique identifiers of active data objects associated with model and enables remote storage to use model to copy regions of active data objects in first data storage and second data storage to third data storage, and to delete first data storage and second data storage.
    Type: Grant
    Filed: October 26, 2018
    Date of Patent: August 17, 2021
    Assignee: EMC IP Holding Company LLC
    Inventors: Ramprasad Chinthekindi, Abhinav Duggal, Kalidas Balakrishnan, Fani Jenkins
  • Patent number: 11010334
    Abstract: Embodiments described herein involve improved management of snapshots of a file system. Embodiments include copying a first root node of a first snapshot to a second snapshot, the second snapshot referencing other nodes of the first snapshot. Embodiments further include incrementing reference counts of the other nodes of the first snapshot. Embodiments further include adding a storage address of the first root node to a list. Embodiments further include, each time that a copy on write operation is performed for a node of the other nodes, adding a storage address of the node to the list and decrementing the reference count of the node. Embodiments further include iterating through the list and, for each storage address in the list, decrementing the reference count of the node corresponding to the storage address and, if the reference count of the node reaches zero, freeing storage space at the storage address.
    Type: Grant
    Filed: April 6, 2018
    Date of Patent: May 18, 2021
    Assignee: VMware, Inc.
    Inventors: Jorge Guerra Delgado, Richard P. Spillane, Kapil Chowksey, Sandeep Rangaswamy, Abhishek Gupta, Srinath Premachandran
  • Patent number: 10621143
    Abstract: In one embodiment, a computer-implemented method of implementing a dedupe file system with constant ingestion and retrieval times for objects in dedupe file system achieved by synchronizing a garbage collection (GC) thread and reader (restore), writer (backup) threads in a dedupe file system includes generating, with at least one processor, a state machine for dedupe file system that coordinates concurrent data ingestion due to writers and data deletion due to garbage collector. The state machine has three states. “Dormant” state when the GC thread is inactive and all writers freely ingest data into dedupe file system without any need for synchronization with GC. “Data gathering” state when the GC thread determines the dedupe chunks for deletion in a garbage list and writers check for data chunks in the garbage list and filters out processed data.
    Type: Grant
    Filed: February 6, 2015
    Date of Patent: April 14, 2020
    Inventors: Ashish Govind Khurange, Kulangara Kuriakose George, Sachin Baban Durge, Kuldeep Sureshrao Nagarkar, Ravender Goyal
  • Patent number: 10515215
    Abstract: The invention relates to a method for providing a computerized system which is protected from unauthorized programs coming from an external source, the method comprises the steps of (a) secretly, and in a manner unknown to authors of external programs, providing a non-standard compiler which mutates (modifies) each high level program to one or more non-standard mutated machine code instructions that a standard CPU cannot properly execute! (b) subjecting all authorized programs to said non-standard compiler; and (c) providing a translator which converts each mutated machine code instruction resulting from said non-standard compiler to a respective standard instruction which the CPU can properly execute, whereas any program which is not subjected to both said non-standard compiler and said translator will result in one or more instructions that the CPU cannot properly execute.
    Type: Grant
    Filed: March 28, 2016
    Date of Patent: December 24, 2019
    Assignee: MORPHISEC INFORMATION SECURITY 2014 LTD.
    Inventors: Mordechai Guri, Yuval Elovici, Gabi Kedma
  • Patent number: 10430237
    Abstract: A resource scheduling method and a related resource scheduling apparatus to improve data input/output (IO) efficiency, where the method includes determining a current task queue, where the current task queue includes a plurality of to-be-executed application tasks, determining, for data blocks on a disk to be accessed by the application tasks, a quantity of times that each data block is to be accessed by the application tasks, determining a hotspot data block according to the quantity of times that each data block is to be accessed by the application tasks, and sending a move-in instruction to a local node of the hotspot data block, where the move-in instruction instructs to move the hotspot data block into a memory such that the hotspot data block can be accessed in the memory.
    Type: Grant
    Filed: May 2, 2017
    Date of Patent: October 1, 2019
    Assignee: HUAWEI TECHNOLOGIES CO., LTD.
    Inventors: Jia Li, Jie Liu, Lifei Dang, Lingzhi Mao
  • Patent number: 10248415
    Abstract: Dynamic code generation and memory management techniques are provided for component object model (COM) objects with corresponding representations in script code and native code. A browser component can receive script code including the code representing the COM object and a marshaling component is provided that marshals, based on a request for native code representing the COM object, the code representing the COM object to the native code based on a pre-constructed intermediate data structure. The pre-constructed intermediate data structure, such as a virtual table, is pre-constructed based on a dynamic type representation associated with a prototype of the COM object and cached for re-use by the marshaling component. Other embodiments provide finalizer support for memory management of COM objects having script and native world representations including an implementation of a two-phase commit protocol that enables efficient and conservative recycling of objects and associated memory.
    Type: Grant
    Filed: April 20, 2016
    Date of Patent: April 2, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Steven Lucco, Louis Lafreniere, Yong Qu
  • Patent number: 9817578
    Abstract: Storage space is reclaimed by cleaning and compacting data objects where data objects are stored by immutable storage. A storage area of which space needs to be reclaimed is identified. Active and stale data objects stored in a storage area are identified, and only active data objects are transferred to a shadow storage area from the storage area when recovering storage space. I/O operations can be fulfilled from the storage area and the shadow storage area. Compaction requests and I/O requests are throttled according to QOS parameters. Recovery of storage space does not cause a failure to meet performance requirements for any storage volume.
    Type: Grant
    Filed: June 5, 2015
    Date of Patent: November 14, 2017
    Assignee: eBay Inc.
    Inventors: Vinay Pundalika Rao, Mark S. Lewis, Anna Povzner
  • Patent number: 9804963
    Abstract: A method for managing memory, comprising: maintaining a strong reference count for a first object; establishing a first reference from the first object to a second object; establishing a second reference from the second object to the first object, wherein the second reference is a weak reference that does not increase the strong reference count of the first object; detecting that the strong reference count of the first object has reached zero; in response to detecting that the strong reference count has reached zero, invoking a corresponding action.
    Type: Grant
    Filed: January 15, 2016
    Date of Patent: October 31, 2017
    Assignee: Intel Corporation
    Inventor: David R. Cheriton
  • Patent number: 9792309
    Abstract: Techniques for cloning, writing to, and reading from file system metadata. Cloning involves identifying a first set of pointers included in a first root node in a file system metadata tree structure that stores file system metadata in leaf nodes of the tree structure, creating a first copy of the first root node that includes the first set of pointers, creating a second copy of the first root node that includes the first set of pointers, associating the first copy with a first view, and associating the second copy with a second view. Reading generally involves traversing the tree structure towards a target leaf node that contains data to be read. Writing generally involves traversing the tree structure in the same manner, but also creating copies of any nodes to be modified if those nodes are deemed to have a different treeID than a particular root node.
    Type: Grant
    Filed: August 4, 2014
    Date of Patent: October 17, 2017
    Assignee: Cohesity, Inc.
    Inventors: Mohit Aron, Ganesha Shanmuganathan
  • Patent number: 9734330
    Abstract: An inspection and recovery method and apparatus for handling virtual machine vulnerability, which inspect the security status of a virtual machine in a hypervisor domain, and recover a main system file or limit the use of a virtual machine suspected of being damaged due to hacking depending on the results of inspection, thus providing a secure virtual machine use environment for cloud computing. In the presented method, collection target information and inspection criteria including vulnerability inspection criteria, recovery criteria, and hacking damage criteria are updated. Then, the collection target information is collected from the virtual disk and virtual memory of each virtual machine. Vulnerability is inspected in conformity with the inspection criteria, based on the collected information. A damaged main system file depending on inspection results is recovered based on recovery criteria.
    Type: Grant
    Filed: July 6, 2015
    Date of Patent: August 15, 2017
    Assignee: ELECTRONICS AND TELECOMMUNICATIONS RESEARCH INSTITUTE
    Inventors: Sung-Jin Kim, ByungJoon Kim, ChulWoo Lee, HyoungChun Kim
  • Patent number: 9626230
    Abstract: A core executing processes in plural threads specifies one gate to read out a state of the gate from a thread progress control unit holding information of plural gates disposed in a loop state, setting a state of a gate disposed subsequently relative to a gate when a state of the gate is set to a first state to a second state, and setting the state of the gate to the first state when a certain period of time elapses from a first request of reading the state for the gate which is set to the second state, by every certain process in each thread. The core executes a next process when the state of the specified gate is the first state, and makes the execution of the next process wait until the state becomes the first state when it is not the first state.
    Type: Grant
    Filed: September 2, 2014
    Date of Patent: April 18, 2017
    Assignee: FUJITSU LIMITED
    Inventor: Akira Naruse
  • Patent number: 9448927
    Abstract: A distributed garbage collection in a distributed storage system is described, where the storage controller functions of the distributed storage system are separated from that of distributed storage system storage media. In an exemplary embodiment, a storage controller server generates a live object map of live objects stored on the distributed storage system in a plurality of block segments distributed across a plurality of storage controller servers. The storage controller server further scans the plurality of block segments to generate segment summary statistics, where the segment summary statistics indicates the number of live objects stored in the plurality of block segments. In addition, the storage controller server compacts each of the plurality of block segments that have a low utilization based on the segment summary statistics. Furthermore, the live object map is a probabilistic data structure storing a list of valid objects.
    Type: Grant
    Filed: December 19, 2013
    Date of Patent: September 20, 2016
    Assignee: Springpath, Inc.
    Inventors: Sandip Agarwala, Shravan Gaonkar, Mallikarjunan Mahalingam, Smit Shah, Faraz Shaikh, Praveen Vegulla, Krishna Yadappanavar
  • Patent number: 9390006
    Abstract: One or more embodiments are directed to creating a structure comprising a weak reference to an object, a strong reference to the object, a count of remote references to the object, and an identifier for the object, incrementing the count when a remote reference is created to the object and decrementing the count when a remote reference is removed, setting the strong reference in response to the count being greater than a first threshold in order to avoid a garbage collection of the object, clearing the strong reference in response to the count being less than a second threshold to enable a garbage collection of the object, and removing the structure and related resources based on a recognition of the object's collection through the weak reference.
    Type: Grant
    Filed: August 7, 2012
    Date of Patent: July 12, 2016
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Tamiya Onodera, Kiyokuni Kawachiya
  • Patent number: 9104717
    Abstract: System and methods for storage object distribution using dynamic policy controls are provided. An embodiment method deleting an object in a distributed storage system includes receiving, from a client, a delete request for an object, retrieving, by a primary datacenter, an object metadata list corresponding to the object to be deleted, and inserting, by the primary datacenter, a delete marker on a top of a stack data structure in an object metadata list.
    Type: Grant
    Filed: January 31, 2013
    Date of Patent: August 11, 2015
    Assignee: Futurewei Technologies, Inc.
    Inventors: Ajit Verma, John Plocher, Xiongbing Ou
  • Patent number: 9043294
    Abstract: Overflow access records (OARs) are managed in a database system. An OAR is created in response to receiving an update command for a data record and to the updated data record generated by the update command not fitting onto the page in the table where the data record was stored. The OAR that is created includes an index counter that indicates a number of indexes associated with the table. When an OAR is accessed in response to a query command, an identifier of the accessed OAR is replaced in the index by an identifier of a data record pointed to by the OAR, and the index counter in the accessed OAR is changed by a predefined amount. When the index counter reaches a predefined value, the accessed OAR is removed from the table.
    Type: Grant
    Filed: March 2, 2012
    Date of Patent: May 26, 2015
    Assignee: International Business Machines Corporation
    Inventors: Sebastian Nelke, Martin Oberhofer, Yannick Saillet, Jens Seifert, Knut Stolze
  • Patent number: 9009202
    Abstract: A method of identifying nonreferenced memory elements in a storage system is disclosed. A plurality of lists of referenced elements from a plurality of storage subsystems is input. A union of the lists of referenced elements is compiled. The union of the lists of referenced memory elements is compared to a list of previously referenced memory elements to determine previously referenced elements that are no longer referenced. The previously referenced elements that are no longer referenced is output.
    Type: Grant
    Filed: February 9, 2012
    Date of Patent: April 14, 2015
    Assignee: EMC Corporation
    Inventor: R. Hugo Patterson
  • Patent number: 8990789
    Abstract: Disclosed here are methods, systems, paradigms and structures for optimizing generation of intermediate representation (IR) for a script code by eliminating redundant object reference count operations from the IR. An IR of the script includes (a) a set of first code that increments a reference count of an object when a programming construct refers to the object, and (b) an associated set of second code which decrements the reference count of the object when a reference to the object is removed. The IR is analyzed to identify a subset of the set of second code which, upon execution, does not decrement the reference count of the object to a zero value. The subset of second code and the first code corresponding to the subset is removed from the IR to generate an optimized IR. The optimized IR is further converted to an executable code.
    Type: Grant
    Filed: April 18, 2013
    Date of Patent: March 24, 2015
    Assignee: Facebook, Inc.
    Inventors: Ali-Reza Adl-Tabatabai, Guilherme De Lima Ottoni, Michael Paleczny
  • Patent number: 8984013
    Abstract: Embodiments relate to systems and methods for conditioning the distribution of data in a hierarchical database. A data store can store data in a hierarchical format. Higher-level data, such as yearly profit, may be desired to be spread from parent nodes to lower nodes, such as quarters. Parent nodes can be associated with a set of programmatic placeholder nodes. A spreading tool can insert child nodes representing quarters, months, or other at insertion point(s) represented or encoded by a set of placeholder nodes, dividing quantities appropriately. In aspects, data can be spread from multiple parents at once. In aspects, the spreading tool can access or host sequence logic to ensure that data is spread in an order that takes dependencies, formatting, output connections, or other factors into account.
    Type: Grant
    Filed: September 30, 2009
    Date of Patent: March 17, 2015
    Assignee: Red Hat, Inc.
    Inventor: Eric Williamson
  • Patent number: 8972672
    Abstract: A computer-implemented method and system for performing garbage collection in a delta compressed data storage system selects a file recipe to traverse to identify live data chunks and selects a chunk identifier from the file recipe. The chunk identifier is added to a set of live data chunks. Delta references in the file metadata corresponding to the chunk identifier are added to the set of live data chunks. Data chunks in a data storage system not identified by the set of live data chunks are then discarded.
    Type: Grant
    Filed: June 13, 2012
    Date of Patent: March 3, 2015
    Assignee: EMC Corporation
    Inventors: Grant R. Wallace, Philip N. Shilane
  • Patent number: 8954473
    Abstract: A system having an agent manager and a plurality of parallel agents for assisting a user in reaching a conclusion is provided in at least one embodiment. In at least one embodiment, the system is in communication with at least one database housing information to be analyzed by at least one of the agents. Further embodiments include the operation of the system and its interaction with the at least one database. In at least one further embodiment, the method includes the development and publication of the agents.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: February 10, 2015
    Assignee: Laborie Medical Technologies Canada ULC
    Inventor: Ing Han Frank Goping
  • Patent number: 8943290
    Abstract: A method for resource management, including: identifying a resource map corresponding to a thread stack of a first thread; reading, in the resource map and by a computer processor, a bit value referencing an address of a first binary value in the thread stack; determining, based on the bit value and by the computer processor, that the first binary value corresponds to a managed resource; reading, by the computer processor, a resource identifier section of the first binary value after determining that the first binary value corresponds to the managed resource; determining a type of the managed resource based on the resource identifier section; interpreting, based on the type of the managed resource, at least a portion of a payload of the first binary value as a reference to a resource address of the managed resource in a resource storage; and accessing the managed resource using the reference.
    Type: Grant
    Filed: March 27, 2012
    Date of Patent: January 27, 2015
    Assignee: Oracle International Corporation
    Inventors: Michael Haupt, Douglas Norman Simon, Thomas Wuerthinger
  • Patent number: 8935302
    Abstract: An apparatus, system, and method are disclosed for data block usage information synchronization for a non-volatile storage volume. The method includes referencing first data block usage information for data blocks of a non-volatile storage volume managed by a storage manager. The first data block usage information is maintained by the storage manager. The method also includes synchronizing second data block usage information managed by a storage controller with the first data block usage information maintained by the storage manager. The storage manager maintains the first data block usage information separate from second data block usage information managed by the storage controller.
    Type: Grant
    Filed: February 23, 2010
    Date of Patent: January 13, 2015
    Assignee: Intelligent Intellectual Property Holdings 2 LLC
    Inventors: David Flynn, David Atkisson, Drex Dixon, Jonathan Flynn, Brandon Hansen
  • Patent number: 8930661
    Abstract: A memory leak detecting method includes: producing an object which occupies an area on a first area of the memory; checking a presence of a pointer which points at the object separately so as to remove the object and to repeatedly carry out a process for increasing a counter value of the object; moving the object from the area on the first area of the memory to an area on the second area of the memory when the counter value exceeding a first threshold; and moving the object from the area on the second area to the area on the first area and clearing the counter value of the object upon the object occupying the area on the second area.
    Type: Grant
    Filed: March 14, 2011
    Date of Patent: January 6, 2015
    Assignee: Fujitsu Limited
    Inventor: Masafumi Hashiguchi
  • Patent number: 8930420
    Abstract: A method for object tracking of resource objects with acquire and release semantics can include instrumenting both an acquisition method and a release method of a resource object to write a reference to the resource object to an open object set upon acquiring the resource object, and to remove the reference to the resource object in the open object set upon releasing the resource object. The method also can include determining whether the resource object both has been flagged for garbage collection in the virtual machine and also remains referenced in the open object set. Finally, the method can include generating an error record in the virtual machine responsive to determining the resource object to have been both flagged for garbage collection in the virtual machine and also remaining referenced in the open object set.
    Type: Grant
    Filed: March 4, 2012
    Date of Patent: January 6, 2015
    Assignee: International Business Machiness Corporation
    Inventor: Ben Wagner
  • Patent number: 8918428
    Abstract: Systems and methods for providing audio asset information using an audio asset information storage system are provided. The storage system includes a data store containing video program information associated with a video program that embeds the known audio asset. The storage system receives a number of requests to identify the known audio asset and stores an indication of each request within the data store. The storage system provides at least a portion of audio asset information associated with the known audio asset to user equipment.
    Type: Grant
    Filed: March 13, 2012
    Date of Patent: December 23, 2014
    Assignee: United Video Properties, Inc.
    Inventors: Dan LaJoie, Marvin Carlberg, Akitaka Nishimura
  • Patent number: 8918616
    Abstract: The subject disclosure relates to analyzing memory allocations for one or more computer-implemented processes. In particular, in conjunction with employing tags for tracking memory allocation commands, currently allocated memory can be examined for various characteristics of inefficient memory use. For example, as memory is initially allocated, a predetermined bit pattern can be written to the newly allocated memory. Thus, detection of the predetermined bit pattern can be indicative of wasted memory use. Moreover, additional features can be provided to both analyze data and present views associated with that analysis relating to identification of memory fragmentation, over-allocation, sparse memory use, duplication of allocations, multiple module loads, and so forth.
    Type: Grant
    Filed: August 24, 2011
    Date of Patent: December 23, 2014
    Assignee: Microsoft Corporation
    Inventor: Calvin Hsia
  • Publication number: 20140372490
    Abstract: Disclosed is a method for hybrid garbage collection of objects in a file system. An example method includes associating, with each object in the file system, a reference counter, an expiration time, and a version identifier. The object is can be kept in the file system while the reference counter of the object is non-zero. After determining that the reference counter of the object is zero, the object can be kept in the file system up to the expiration time associated with the object. When a reference referring to the object is deleted, the expiration time of the object is updated to the latest of the expiration times of the object and the reference. Furthermore, the object can be kept in the file system while the version identifier of the object is larger than a predetermined version number.
    Type: Application
    Filed: June 12, 2014
    Publication date: December 18, 2014
    Inventors: Frank Barrus, Tad Hunt
  • Patent number: 8892526
    Abstract: Apparatus, methods, and other embodiments associated with de-duplication seeding are described. One example method includes re-configuring a data de-duplication repository with a blocklet from a data de-duplication seed corpus. Reconfiguring the repository may include adding a blocklet from the seed corpus to the repository, activating a blocklet identified with the seed corpus in the repository, removing a blocklet from the repository, and de-activating a blocklet in the repository. The example method may also include re-configuring a data de-duplication index associated with the data de-duplication repository with information about the blocklet. Reconfiguring the repository and the index increases the likelihood that a blocklet ingested by a data de-duplication apparatus that relies on the repository and the index will be treated as a duplicate blocklet by the data de-duplication apparatus.
    Type: Grant
    Filed: January 11, 2012
    Date of Patent: November 18, 2014
    Inventor: Timothy Stoakes
  • Patent number: 8892610
    Abstract: A method to schedule garbage collection operations may be executed in a client/server system using multiple servers. The method includes comparing usage of memory in respective ones of the plurality of servers to one or more memory usage thresholds and dynamically identifying one or more servers in which to perform garbage collection of memory objects during a particular time period. By distributing the durations over which garbage collection is performed on respective servers, the client server system, among other things, reduces the pauses in servicing client requests.
    Type: Grant
    Filed: July 29, 2011
    Date of Patent: November 18, 2014
    Assignee: Google Inc.
    Inventor: Clement Ho Yan Pang
  • Patent number: 8886691
    Abstract: A system and method for performing garbage collection. A system includes a storage medium, a first table including entries which map a virtual address to locations in the storage medium, and a second table with entries which include a reverse mapping of a physical address in a data storage medium to one or more virtual addresses. A storage controller is configured to perform garbage collection. During garbage collection, the controller is configured to identify one or more entries in the second table which correspond to a segment to be garbage collected. In response to determining the first table includes a valid mapping for a virtual address included in an entry of the one of the one or more entries, the controller is configured to copy data from a first location identified in the entry to a second location in the data storage medium, and reclaim the first storage location.
    Type: Grant
    Filed: August 30, 2013
    Date of Patent: November 11, 2014
    Assignee: PURE Storage, Inc.
    Inventors: John Colgrove, John Hayes, Ethan Miller, Cary Sandvig, Joseph S. Hasbani, Feng Wang
  • Patent number: 8849876
    Abstract: Methods and apparatuses that maintain birth time for a file system to optimize file update operations are described. The file system can include a plurality of snapshots or clones of data stored in one or more extents of blocks allocated in a storage device. Each extent may be associated with a time stamp according to the birth time. A request may be received from an executable using the file system to update data in a particular extent associated with a particular time stamp. In response, the current birth time in the file system and the particular time stamp may be compared to determine if the particular extent is not shared by more than one of the snapshots. If the particular time stamp is equal to the current birth time, the particular extent may be updated directly without performing an expensive operation to check whether a reference count of the particular extent is equal to one.
    Type: Grant
    Filed: December 28, 2009
    Date of Patent: September 30, 2014
    Inventors: Wenguang Wang, Deric Horn, David Alexander Majnemer, Owen Strain
  • Patent number: 8799561
    Abstract: A method for garbage collection in a solid state drive (SSD) includes determining whether the SSD is idle by a garbage collection module of the SSD; based on determining that the SSD is idle, determining a victim block from a plurality of memory blocks of the SSD; determining a number of valid pages in the victim block; comparing the determined number of valid pages in the victim block to a valid page threshold; and based on the number of valid pages in the victim block being less than the valid page threshold, issuing a garbage collection request for the victim block.
    Type: Grant
    Filed: July 27, 2012
    Date of Patent: August 5, 2014
    Assignee: International Business Machines Corporation
    Inventors: Werner Bux, Robert Haas, Xiao-Yu Hu, Ilias Iliadis
  • Patent number: 8782011
    Abstract: A system and method for managing a resource reclamation reference list at a coarse level. A storage device is configured to store a plurality of storage objects in a plurality of storage containers, each of said storage containers being configured to store a plurality of said storage objects. A storage container reference list is maintained, wherein for each of the storage containers the storage container reference list identifies which files of a plurality of files reference a storage object within a given storage container. In response to detecting deletion of a given file that references an object within a particular storage container of the storage containers, a server is configured to update the storage container reference list by removing from the storage container reference list an identification of the given file. A reference list associating segment objects with files that reference those segment objects may not be updated response to the deletion.
    Type: Grant
    Filed: March 4, 2013
    Date of Patent: July 15, 2014
    Assignee: Symantec Corporation
    Inventor: Fanglu Guo
  • Patent number: 8782104
    Abstract: The present invention provides techniques that allow concurrent collection of cyclic garbage on reference counting systems. In general, candidate objects are found that may be part of cyclic garbage. Each candidate object has a reference count. Two tests are performed to determine if concurrent operations have affected the reference counts of the candidate objects. If concurrent operations have not affected the reference counts, the candidate objects are collected as garbage. Additionally, during garbage collection, the decrements to reference counts are delayed so that increments occur before decrements and so that decrements are held a predetermined time before being applied. This prevents decrementing a reference and collecting a cycle as garbage right before a reference is added to an object in the cycle.
    Type: Grant
    Filed: February 1, 2012
    Date of Patent: July 15, 2014
    Assignee: International Business Machines Corporation
    Inventors: David Francis Bacon, Vadakkedathu Thomas Rajan
  • Patent number: 8775473
    Abstract: The various embodiments of the invention provide software and metadata structures for a data processing system and method, for applications such as marketing campaign management, speech recognition and signal processing. An exemplary system embodiment includes a first data repository adapted to store a plurality of entity and attribute data; a second data repository adapted to store a plurality of entity linkage data; a metadata data repository adapted to store a plurality of metadata modules, with a first metadata module having a plurality of selectable parameters, received through a control interface, and having a plurality of metadata linkages to a first subset of metadata modules; and a multidimensional data structure.
    Type: Grant
    Filed: February 4, 2012
    Date of Patent: July 8, 2014
    Assignee: Experian Marketing Solutions, Inc.
    Inventors: Joseph Kevin Anzalone, Nevzat Hurkan Balkir, Len Cavers, Brian L. Foreman
  • Patent number: 8769191
    Abstract: A nonvolatile memory device includes a memory area having free segments and first to fourth regions having used segments. The garbage collection method includes selecting a target segment from the used segments, moving a valid data block from the selected target segment to the used segments, and erasing data of all data blocks in the selected target segment and making the selected target segment into a free segment. When the number of free segments is greater than a predefined value, the target segment is selected by a first method and valid data blocks in the target segment are moved by a second method. When the number of free segments is less than the predefined value, the target segment is selected by a third method and valid data blocks in the target segment are moved by a fourth method.
    Type: Grant
    Filed: July 27, 2012
    Date of Patent: July 1, 2014
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Lucius Yun, Shin-Ho Oh
  • Patent number: 8751546
    Abstract: Apparent performance delays in a computer application are reduced by scheduling garbage collection during periods when a user cannot modify program data within the application. Garbage collection may be initiated in response to detecting a user interface event that prevents user modification of program data being processed by the computer application. Systems and methods herein reduce the appearance of performance delays associated with garbage collection.
    Type: Grant
    Filed: January 6, 2012
    Date of Patent: June 10, 2014
    Assignee: Google Inc.
    Inventor: Andrew Alexander Grieve
  • Patent number: 8751539
    Abstract: Techniques associated with data management and distribution are described, including receiving at a content distribution and management system activity data associated with a user from a client, the client having an interface configured to display commercial content and a player configured to access the content distribution and management system, storing the activity data in a database, displaying the commercial content using the interface, receiving other activity data associated with the user from the client, storing the other activity data in the database, determining other commercial content to display using the activity data and the other activity data, and displaying the other commercial content.
    Type: Grant
    Filed: May 11, 2012
    Date of Patent: June 10, 2014
    Inventor: Michael Joseph Lourdeaux
  • Patent number: 8700634
    Abstract: A deduplicated data storage system provides high performance storage to heterogeneous clients that connect to it via a communications network. The deduplicated data storage system provides fast access to deduplication data by caching the most frequently accessed deduplication data in a hyperindex. Updates to the non-cached deduplication data are serialized by use of a store queue and hold queue.
    Type: Grant
    Filed: December 29, 2011
    Date of Patent: April 15, 2014
    Assignee: Druva Inc.
    Inventors: Anand Apte, Jaspreet Singh, Milind Borate, Shekhar S. Deshkar
  • Patent number: 8694562
    Abstract: A generational garbage collector utilizes a pool-based heap to store objects dynamically generated at runtime. The pool-based heap is configured as a collection of pools where each pool stores objects associated with the same generation. Each pool contains a pool header that identifies the generation of all objects within the pool. The pools are aligned to a memory boundary that is a multiple of the pool size. Select bits of an object's memory address may be used to access the pool header so that an object's generation, which is needed in various phases of the garbage collection process, is readily determined.
    Type: Grant
    Filed: May 22, 2012
    Date of Patent: April 8, 2014
    Assignee: Microsoft Corporation
    Inventors: Abhinaba Basu, Jaiprakash Sharma
  • Patent number: 8688739
    Abstract: A system and method for data matching are disclosed. A user terminal included in the system includes a data provider, a data consumer, and a mapper. The data provider receives life log data of a user which is collected by at least one life log collecting apparatus. The data consumer receives the life log data from the data provider, and compares the life log data and reference data received from a service server to determine whether a difference between the life log data and the reference data exceeds a predetermined threshold value. The mapper maps the service server which provides the reference data corresponding to information of the life log data received from the data provider. Accordingly, the usability to of life log apparatuses can increase.
    Type: Grant
    Filed: July 25, 2012
    Date of Patent: April 1, 2014
    Assignee: Electronics and Telecommunications Research Institute
    Inventors: Kyu Chang Kang, Chang Seok Bae, Seong Uk Heo, Dong Won Han
  • Patent number: 8676851
    Abstract: A method of executing a transaction in a distributed storage system includes, for data chunks of a read set of the transaction, reading data of the data chunks of the read set through remote direct memory access and determining a validity of the read data by evaluating a version and a lock of each data chunk of the read set. For data chunks of a write set of the transaction, the method includes setting locks on the data chunks of the write set, writing data to the locked data chunks through remote direct memory access, releasing the locks of the locked data chunks, and incrementing a version number of each released data chunk.
    Type: Grant
    Filed: August 30, 2012
    Date of Patent: March 18, 2014
    Assignee: Google Inc.
    Inventors: Kyle Nesbit, Andrew Everett Phelps
  • Patent number: 8667022
    Abstract: An adjustment method includes reading a record that includes a plurality of columns from a storage unit, determining whether data stored in a certain column in the plurality of columns of the read record has an attribute that corresponds to another column in the plurality of columns when the data does not have an attribute that corresponds to the certain column, and assigning the data to the another column when it is determined that the data has the attribute that corresponds to the another column.
    Type: Grant
    Filed: July 25, 2012
    Date of Patent: March 4, 2014
    Assignee: Fujitsu Limited
    Inventor: Shouji Iwamoto
  • Publication number: 20140040326
    Abstract: One or more embodiments are directed to creating a structure comprising a weak reference to an object, a strong reference to the object, a count of remote references to the object, and an identifier for the object, incrementing the count when a remote reference is created to the object and decrementing the count when a remote reference is removed, setting the strong reference in response to the count being greater than a first threshold in order to avoid a garbage collection of the object, clearing the strong reference in response to the count being less than a second threshold to enable a garbage collection of the object, and removing the structure and related resources based on a recognition of the object's collection through the weak reference.
    Type: Application
    Filed: July 31, 2012
    Publication date: February 6, 2014
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Tamiya Onodera, Kiyokuni Kawachiya
  • Publication number: 20140040327
    Abstract: One or more embodiments are directed to creating a structure comprising a weak reference to an object, a strong reference to the object, a count of remote references to the object, and an identifier for the object, incrementing the count when a remote reference is created to the object and decrementing the count when a remote reference is removed, setting the strong reference in response to the count being greater than a first threshold in order to avoid a garbage collection of the object, clearing the strong reference in response to the count being less than a second threshold to enable a garbage collection of the object, and removing the structure and related resources based on a recognition of the object's collection through the weak reference.
    Type: Application
    Filed: August 7, 2012
    Publication date: February 6, 2014
    Applicant: International Business Machines Corporation
    Inventors: Tamiya Onodera, Kiyokuni Kawachiya
  • Patent number: 8601036
    Abstract: A method, system and computer program product for reducing garbage collection pause time. According to example embodiments, a garbage collection cycle is initiated on a set of objects that have been dynamically allocated in a memory. An identification is made of new persistent objects and reachable non-persistent objects while ignoring old persistent objects that have been identified as persistent in previous garbage collection cycles. The new persistent objects are associated as members of a set of persistent objects that includes the old persistent objects. The persistence information for the set of persistent objects is preserved for use during subsequent garbage collection cycles. All reachable non-persistent objects and all persistent objects in the set of persistent objects are marked for memory reclamation phase processing.
    Type: Grant
    Filed: March 23, 2011
    Date of Patent: December 3, 2013
    Assignee: International Business Machines Corporation
    Inventors: Vinod Nalla, Harish K. Panda, Pranavaditya Kannojoo, Bipin N. Patil
  • Patent number: 8589456
    Abstract: The present disclosure describes garbage collection that provides prompt reclamation of large objects. A heap space is divided into Young regions, Old regions, and Humongous regions. A remembered set is created and maintained, during the execution of one or more programs, for each region that specifies where there are references from outside the region to inside the region. A garbage collection list is generated specifying regions to perform garbage collection on. All Young regions and at least one Humongous region are included in the garbage collection list. If it is determined to include Old regions, the Old regions are selected and included in the garbage collection list. Then, a garbage collection is performed on the regions specified in the garbage collection list. During the garbage collection, the indication for each region is utilized to determine reachable objects in the region, ensuring that reachable objects are not deallocated.
    Type: Grant
    Filed: February 19, 2010
    Date of Patent: November 19, 2013
    Assignee: Oracle America, Inc.
    Inventors: Antonios Printezis, Y. Srinivas Ramakrishna