Mark-sweep Patents (Class 707/816)
  • Patent number: 11892979
    Abstract: Metadata of each file of a group of files of a storage and chunk file metadata are analyzed to identify one or more file segment data chunks that are not referenced by the group of files of the storage. Fragmented chunk files to be combined together are identified based at least in part on the one or more identified file segment data chunks. The chunk file metadata is updated with an update that concurrently reflects the removal of at least a portion of the one or more file segment data chunks that are not referenced by the group of files and the combination of the identified fragmented chunk files.
    Type: Grant
    Filed: December 13, 2021
    Date of Patent: February 6, 2024
    Assignee: Cohesity, Inc.
    Inventors: Anubhav Gupta, Anirvan Duttagupta
  • Patent number: 11523159
    Abstract: Method for generating media content items based on location information starts with the server system receiving from a first computing device an electronic communication including location information from a location sensor coupled to the first client computing device. Server system then determines a current activity of a first user of the first client computing device based on the location information; generating a media content item including a map display based on the location information and at least one of: (i) an avatar of the first user engaged in the current activity, (ii) a status message associated with the current activity of the first user, or (iii) a status message associated with a map location on the map display. Server system then causes the media content item to be displayed on a display screen of at least one of a plurality of client computing devices. Other embodiments are described herein.
    Type: Grant
    Filed: March 17, 2021
    Date of Patent: December 6, 2022
    Assignee: Snap Inc.
    Inventors: Jonathan Brody, Joseph Engelman, Robert Lin, Gaurav Misra, Kimberly A. Phifer, Sriram Raman, Jay Sani
  • Patent number: 11507272
    Abstract: A memory system which is capable of dynamically adjusting the frequency of performing a garbage collection operation based on a performance ratio. The memory system includes: a memory device including a plurality of storage spaces; and a controller controlling the memory device, wherein the controller determines a performance ratio, which is ratio of performance of a garbage collection operation to a total performance of the memory system, for securing free storage space in the memory device based on a performance requirement of the memory system and the free storage space, schedules the garbage collection operation based on the performance ratio, and performs the garbage collection operation according to the schedule, wherein the total performance indicates a sum of a performance of all operations performed in the memory system.
    Type: Grant
    Filed: July 6, 2020
    Date of Patent: November 22, 2022
    Assignee: SK hynix Inc.
    Inventor: Minjun Jang
  • Patent number: 11226934
    Abstract: Metadata of each file of a group of files of a storage and chunk file metadata are analyzed to identify one or more file segment data chunks that are not referenced by the group of files of the storage. Fragmented chunk files to be combined together are identified based at least in part on the one or more identified file segment data chunks. The chunk file metadata is updated with an update that concurrently reflects the removal of at least a portion of the one or more file segment data chunks that are not referenced by the group of files and the combination of the identified fragmented chunk files.
    Type: Grant
    Filed: January 3, 2020
    Date of Patent: January 18, 2022
    Assignee: Cohesity, Inc.
    Inventors: Anubhav Gupta, Anirvan Duttagupta
  • Patent number: 11153094
    Abstract: Techniques for providing secure deduplication in a data storage system using smaller hash values. The techniques employ a keyed hash function to generate keyed hash values for data blocks received at the data storage system. The keyed hash function can generate keyed hash values having an acceptable probability of accidental collision, in which each keyed hash value requires a reduced number of bits to represent them. By representing each keyed hash value with a number of bits less than the number required for a cryptographic hash value, the impact that an index table in main memory has on the amount of free memory space available can be reduced, while still providing an acceptable probability of accidental collision. The keyed hash function can be implemented as a keyed universal hash function, which can reduce the number of processor cycles required to generate a keyed hash value for each received data block.
    Type: Grant
    Filed: April 27, 2018
    Date of Patent: October 19, 2021
    Assignee: EMC IP Holding Company LLC
    Inventor: Charles W. Kaufman
  • Patent number: 11048616
    Abstract: In accordance with aspects of the disclosure, systems and methods are provided for monitoring one or more classes for detecting suspected memory leaks in a production environment. The systems and methods may include identifying which of the one or more classes hold at least one static or non-static field of collection or array type, accessing the one or more classes that hold the at least one static or non-static fields of collection or array type, and tracking a size for each field of each class by periodically sampling the size of each field over an interval, processing the size data for each field of each class, and detecting suspected memory leaks of each class by identifying which of the one or more fields of each class exhibits suspect behavior in the size over the interval.
    Type: Grant
    Filed: March 6, 2015
    Date of Patent: June 29, 2021
    Assignee: BMC Software, Inc.
    Inventors: Gilad Arbel Komissar, Eyal Koren, Asaf Dafner
  • Patent number: 10979752
    Abstract: Method for generating media content items based on location information starts with the server system receiving from a first computing device an electronic communication including location information from a location sensor coupled to the first client computing device. Server system then determines a current activity of a first user of the first client computing device based on the location information; generating a media content item including a map display based on the location information and at least one of: (i) an avatar of the first user engaged in the current activity, (ii) a status message associated with the current activity of the first user, or (iii) a status message associated with a map location on the map display. Server system then causes the media content item to be displayed on a display screen of at least one of a plurality of client computing devices. Other embodiments are described herein.
    Type: Grant
    Filed: February 28, 2019
    Date of Patent: April 13, 2021
    Assignee: Snap Inc.
    Inventors: Jonathan Brody, Joseph Engelman, Robert Lin, Gaurav Misra, Kimberly A. Phifer, Sriram Raman, Jay Sani
  • Patent number: 10877849
    Abstract: System and method for managing different types of snapshots of storage objects stored in a storage system uses a storage structure that includes both a storage object and any snapshots of the storage object. When a request to delete a snapshot of the storage object is received, a determination is made whether the snapshot is a first snapshot type. After determining that the snapshot is not the first snapshot type, the snapshot is deleted from the storage structure. After determining that the snapshot is the first snapshot type, the snapshot is marked as delete designated, and a deletion of the snapshot from the storage structure is prevented when there is a second snapshot type snapshot remaining in the storage structure that was created after the snapshot had been created so that the snapshot is available when the second snapshot type snapshot is subsequently used.
    Type: Grant
    Filed: August 25, 2018
    Date of Patent: December 29, 2020
    Assignee: VMware, Inc.
    Inventors: Asit Desai, Derek Uluski, Alexander T. Garthwaite, Sunil Satnur, Ilya Languev, Anoop Jaishankar
  • Patent number: 10872059
    Abstract: System and method for managing snapshots of storage objects stored in a storage system uses a storage structure that includes both a storage object and any snapshots of the storage object. When a request to delete the storage object is received, the storage structure that includes the storage object is checked to determine if there is at least one snapshot in the storage structure. After determining that there is at least one snapshot in the storage structure, the storage object is marked as being delete designated without deleting the storage structure. After determining that there is no snapshot in the storage structure, the storage structure is deleted.
    Type: Grant
    Filed: August 25, 2018
    Date of Patent: December 22, 2020
    Assignee: VMware, Inc.
    Inventors: Asit Desai, Derek Uluski, Alexander T. Garthwaite, Sunil Satnur, Ilya Languev
  • Patent number: 10346086
    Abstract: Techniques for determining an age category for an object and identifying objects for memory leak analysis based on age categories are described. An age category classifier generates a set of age categories, each corresponding to a respective time interval. The age category classifier monitors garbage collection processes on the heap. The age category classifier determines a current age category based on a duration of time that has elapsed between (a) an initiation of a current garbage collection cycle and (b) a reference event. The age category classifier identifies objects transferred from one object group to another object group during the current garbage collection cycle. The age category classifier stores the current age category as the transfer age category in the headers of the transferred objects. The transfer age categories of the objects may be used for reducing the number of objects that are analyzed in a memory leak analysis.
    Type: Grant
    Filed: June 8, 2017
    Date of Patent: July 9, 2019
    Assignee: Oracle International Corporation
    Inventors: Marcus Mattias Hirt, Erik Kristofer Gahlin
  • Patent number: 10095674
    Abstract: A non-transitory computer-readable storage medium may comprise instructions stored thereon. The instructions, when executed by at least one processor, may be configured to cause the first computing system to at least generate a collection of inverse transformations of an index of the document, the collection of inverse transformations being based on at least one asymmetric local edit to the document by the first computing system, determine a location within the document to perform a remote edit by the second computing system based on the collection of inverse transformations of the index of the document, perform the remote edit to the document at the determined location based on the remote edit by the second computing system, and perform at least one local edit to the document based on the at least one asymmetric local edit to the document by the first computing system.
    Type: Grant
    Filed: July 8, 2016
    Date of Patent: October 9, 2018
    Assignee: GOOGLE LLC
    Inventor: Raphael Levien
  • Patent number: 9684646
    Abstract: The present disclosure relates to implementing changes to a data structure, such as a formula, in a collaborative context. In certain embodiments, collaborative changes made to a formula containing references to other portions of a table are retained or account for when an undo operation is performed. In one aspect, unique identifiers are used to identify and track table features, such as columns, rows, or cells, which may be moved, deleted, or created during a collaborative session. In some instances, collaborative changes may be logged for later application or applied to commands in an undo stack to prevent loss of changes.
    Type: Grant
    Filed: August 5, 2014
    Date of Patent: June 20, 2017
    Assignee: Apple Inc.
    Inventors: Michael Jeremy Coblenz, Shawn Patrick Flisakowski
  • Patent number: 9679007
    Abstract: Techniques for managing references to containers are disclosed. In one particular embodiment, the techniques may be realized as a method for managing references to containers comprising comparing at least one identifier to a first bloom filter, generating a first list of identifiers based on the comparison of the at least one identifier and the first bloom filter, comparing the first list of identifiers to a second bloom filter, generating a second list of identifiers based on the comparison of the first list and the second bloom filter, comparing the second list of identifiers to a main container list, and determining whether an image refers to a container based on the comparison of the second list and the main container list.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: June 13, 2017
    Assignee: Veritas Technologies LLC
    Inventors: Daniel Joshua Feldman, Matthew Paul Navratil
  • Patent number: 9424185
    Abstract: A garbage collector of a storage system traverses a namespace of a file system of the storage system to identify segments that are alive in a breadth-first manner. The namespace includes information identifying files that are represented by segments arranged in a plurality of levels in a hierarchy, where an upper level segment includes one or more references to one or more lower level segments, and at least one segment is referenced by multiple files. All live segments of an upper level are identified before any of live segments of a lower level are identified. Upon all live segments of all levels have been identified, the live segments are copied from their original storage locations to a new storage location, and a storage space associated with the original storage locations is reclaimed.
    Type: Grant
    Filed: June 4, 2013
    Date of Patent: August 23, 2016
    Assignee: EMC Corporation
    Inventors: Fabiano C. Botelho, Dheer Moghe, Guilherme Vale Ferreira Menezes, Nitin Garg, Srikant Varadan
  • Patent number: 9389965
    Abstract: A request is received to read a portion of a file from the storage system. In response to the request, future requests to the file are predicted based in part on the received request and metadata of the file. Access of a subsequent portion of the file is optimized based on the predicted future requests and the data contained in the portion of the file is then returned.
    Type: Grant
    Filed: April 30, 2012
    Date of Patent: July 12, 2016
    Assignee: EMC Corporation
    Inventors: Frederick Douglis, Windsor W. Hsu, Hangwei Qian
  • Patent number: 9043371
    Abstract: A server system having memory and one or more processors running a trusted internal process receives, from an untrusted external process of one or more external processes, a request to interact with a data item. In response to the request, the server system interacts with the first data item and stores a marker indicative of the interaction with the data item. After storing the marker, the server system identifies a plurality of markers corresponding to a plurality of data items and retrieves information corresponding to the plurality of markers. The retrieved information enables a determination, for each data item in the plurality of data items, as to whether an operation corresponding to the data item is to be executed. When a determination has been made that an operation corresponding to the data item is to be executed, the server system deletes the markers in conjunction with execution of the operation.
    Type: Grant
    Filed: March 27, 2012
    Date of Patent: May 26, 2015
    Assignee: GOOGLE INC.
    Inventors: Alfred R. K. Fuller, Mykhailo Aizatskyi
  • Patent number: 9037617
    Abstract: Object are created such that each of the objects stores a bit that designates eventual removal of one of the objects. Further, the objects are added to a data structure that includes a set that comprises a union of a plurality of subsets such that each subset in the plurality of subsets is stored separately according to a corresponding thread and such that an added object that is added to the set by a given thread is stored in the corresponding subset. In addition, one of the objects is logically removed, without physical removal, from the set by activating the bit. Each subset is periodically swept. All objects marked with the activated bit are physically removed.
    Type: Grant
    Filed: November 12, 2010
    Date of Patent: May 19, 2015
    Assignee: International Business Machines Corporation
    Inventors: Moshe M. E. Matsa, Eric D. Perkins
  • Publication number: 20150074155
    Abstract: Techniques of hierarchical garbage collection in an object-relational database system are described. When the object-relational database system receives a request to delete an object, the object-relational database system marks the object for deletion. A garbage collection procedure executing in the background can perform iterations of sweep and mark to delete the object and children objects of the object. In each iteration, a layer or “generation” of objects is deleted. The garbage collection procedure can continue the iterations until the object and all descendants of the objects are deleted.
    Type: Application
    Filed: September 11, 2013
    Publication date: March 12, 2015
    Applicant: Owtware Holdings Limited, BVI
    Inventor: Douglas Allen Walter
  • Patent number: 8943276
    Abstract: A plurality of tracks is examined for meeting criteria for a discard scan. In lieu of waiting for a completion of a track access operation, at least one of the plurality of tracks is marked for demotion. An additional discard scan may be subsequently performed for tracks not previously demoted. The discard and additional discard scans may proceed in two phases.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: January 27, 2015
    Assignee: International Business Machines Corporation
    Inventors: Michael T. Benhase, Lokesh M. Gupta, Carol S. Mellgren, Kenneth W. Todd
  • Patent number: 8943109
    Abstract: A computer-implemented process for write barrier elision during program execution receives a request to overwrite a reference, determines whether garbage collection is active and responsive to a determination that garbage collection is active, determines whether a reference object has been scanned. Responsive to a determination that the reference object has not been scanned set a mark bit for the reference object in a modified mark map, the reference object is scanned and a scan bit is set for the reference object in the modified mark map.
    Type: Grant
    Filed: February 22, 2011
    Date of Patent: January 27, 2015
    Assignee: International Business Machines Corporation
    Inventors: Charles Robert Gracie, Aleksandar Micic, Ryan Andrew Sciampacone
  • 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: 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
  • 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: 8868624
    Abstract: Embodiments of the present invention relate to systems, methods and computer storage media for facilitating the structured storage of binary large objects (Blobs) to be accessed by an application program being executed by a computing device. Generally, the manipulation of Blobs in a structured storage system includes receiving a request for a Blob, which may be located by way of a Blob pointer. The Blob pointer allows for the data, such as properties, of the Blob to be identified and located. Expired properties are garbage collected as a manipulation of the Blob data within a structured storage system. In an embodiment, the Blob is identified by a key that is utilized within a primary structured index to located the requested Blob. In another embodiment, the requested Blob is located utilizing a secondary hash index. In an additional embodiment, the Blob is locate utilizing a file table.
    Type: Grant
    Filed: July 22, 2013
    Date of Patent: October 21, 2014
    Assignee: Microsoft Corporation
    Inventors: Bradley Gene Calder, Ju Wang, Xinran Wu, Niranjan Nilakantan, Deepali Bhardwaj, Shashwat Srivastav, Alexander Felsobuki Nagy
  • Patent number: 8856194
    Abstract: A method and system for garbage collection in a virtualization environment. The virtualization environment includes a virtual machine hypervisor, at least one guest operating system, and at least one application program that runs on each guest operating system. The application program performs memory management using a garbage collection mechanism. The method includes, in response to an operating environment of the application program initiating garbage collection, the garbage collector requesting the guest operating system to assign a memory space and in response, the guest operating system assigns the memory space to the garbage collector. Then garbage collector marks live objects in an original memory space of the application program, and replicates the marked live objects to the assigned memory space. Finally, the garbage collector releases the original memory space of the application program to the guest operating system.
    Type: Grant
    Filed: April 18, 2011
    Date of Patent: October 7, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ying Chen, Li Li, Liang Liu, Rui Xiong Tian, Hao Wong, Qing Bo Wang
  • Patent number: 8805896
    Abstract: A system and method for use with garbage collected systems and languages, for enabling an allocated heap memory to be updated (e.g., increased or decreased) at runtime, subject to sufficient availability of physical memory. In accordance with an embodiment, a Java Virtual Machine (JVM) is associated with a management console, which allows a systems administrator to monitor current heap utilization at runtime. The heap is visualized as a contiguous chunk of memory with one or more extension points, e.g., by use of a trailing pointer to a null list. If later, at runtime, the heap size needs to be incremented then the trailing pointer can be set to a new chunk of memory with a size of (new value?old value), so that the cumulative new size is made equal to a new value specified on the console.
    Type: Grant
    Filed: July 19, 2013
    Date of Patent: August 12, 2014
    Assignee: Oracle International Corporation
    Inventor: Prateek Khanna
  • Patent number: 8775486
    Abstract: A file system is disclosed that includes an application wide name space instantiated in a global index (Gindex) that is used for accessing objects related to an application. Using the Gindex, a method for cache coherency includes establishing one or more appliances, each defining a storage cluster; establishing one or more tenants spanning across appliances, wherein an application stores objects in file systems associated with the appliances and tenants; establishing a Gindex including metadata relating to objects stored in association with the application; replicating the Gindex to plurality of data centers supporting the tenants; storing an original object at a first data center; storing a cached copy of the object at a second data center; aligning the cached copy using metadata for the object from a local copy of the Gindex.
    Type: Grant
    Filed: May 5, 2011
    Date of Patent: July 8, 2014
    Assignee: Symantec Corporation
    Inventor: John Albert Carmichael
  • 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
  • Publication number: 20140059093
    Abstract: A disclosed method includes: specifying a first object pointed by a first pointer, wherein the first object is in a heap area that includes plural generational areas; determining whether or not an address in a generational area, which is different from a first generational area that includes the first object, is set as a movement destination address of the first object; upon determining that the address is set as the movement destination address of the first object, obtaining the movement destination address of the first object; and updating the first pointer with the movement destination address of the first object.
    Type: Application
    Filed: August 21, 2013
    Publication date: February 27, 2014
    Applicant: FUJITSU LIMITED
    Inventor: Katsutomo SEKIGUCHI
  • Patent number: 8631051
    Abstract: A method of managing memory, and a system implementing the method, are disclosed herein. In one embodiment according to the invention, the method comprises the step of allocating a first space, a first semi-space and a second semi-space of a memory unit. The first space has a first space size, and the first and second semi-spaces have a semi-space size. The first object is transformed into a plurality of elements and a spine containing pointers to the plurality of elements. The plurality of elements are stored in the first space and the spine in one of the first semi-space and the second semi-space. First memory portions of the first space are reclaimed using a mark-sweep policy and second memory portions of one of the first semi-space and the second semi-space are reclaimed using a moving policy.
    Type: Grant
    Filed: September 22, 2009
    Date of Patent: January 14, 2014
    Inventor: Filip Pizlo
  • Patent number: 8612493
    Abstract: Tracking newly created objects during a garbage collection cycle includes marking newly allocated objects in the GC cycle during the allocation cache population phase. The goal is to take a high performance system for tracing live objects, such as the mark map, and combine the SATB with a cached allocation system for heap memory such that SATB representation is preserved. Embodiments combine both efficient support for an SATB model during a collection cycle and a highly optimized allocation path for heap objects in an allocation scheme (which may optionally be a size segregated class allocation scheme) that allows both mechanisms to co-exist effectively. Specifically, embodiments track newly created objects during a GC cycle such that they are kept alive during the trace phase while continuing to support a highly efficient allocating caching strategy.
    Type: Grant
    Filed: October 30, 2008
    Date of Patent: December 17, 2013
    Assignee: International Business Machines Corporation
    Inventors: Aleksandar Micic, Ryan A. Sciampacone
  • 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
  • Publication number: 20130318132
    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: Application
    Filed: May 22, 2012
    Publication date: November 28, 2013
    Applicant: Microsoft Corporation
    Inventors: ABHINABA BASU, Jaiprakash Sharma
  • Publication number: 20130311521
    Abstract: Embodiments of the present invention relate to systems, methods and computer storage media for facilitating the structured storage of binary large objects (Blobs) to be accessed by an application program being executed by a computing device. Generally, the manipulation of Blobs in a structured storage system includes receiving a request for a Blob, which may be located by way of a Blob pointer. The Blob pointer allows for the data, such as properties, of the Blob to be identified and located. Expired properties are garbage collected as a manipulation of the Blob data within a structured storage system. In an embodiment, the Blob is identified by a key that is utilized within a primary structured index to located the requested Blob. In another embodiment, the requested Blob is located utilizing a secondary hash index. In an additional embodiment, the Blob is locate utilizing a file table.
    Type: Application
    Filed: July 22, 2013
    Publication date: November 21, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: BRADLEY GENE CALDER, JU WANG, XINRAN WU, NIRANJAN NILAKANTAN, DEEPALI BHARDWAJ, SHASHWAT SRIVASTAV, ALEXANDER FELSOBUKI NAGY
  • Patent number: 8554807
    Abstract: A technique for incrementally unloading classes using a region-based garbage collector is described. One aspect of such a technique includes maintaining a remembered set for a class set. The remembered set indicates whether instances of the class set are contained in one or more regions in memory, and in which regions the instances are contained. Upon performing an incremental garbage collection process for a subset of the regions in memory, the technique examines the remembered set to determine whether the class set includes instances in regions outside of the subset. If the remembered set indicates that the class set includes instances outside of the subset of regions, the technique identifies the class set as “live.” This will preclude unloading the class set from the subset of regions.
    Type: Grant
    Filed: March 28, 2012
    Date of Patent: October 8, 2013
    Assignee: International Business Machines Corporation
    Inventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
  • Publication number: 20130262532
    Abstract: Embodiments disclosed herein provide systems and methods for performing garbage collection in virtual environments. In a particular embodiment, a method provides performing a garbage collection process to identify at least a portion of a secondary storage volume located within a primary storage volume. The method further provides triggering a data block release process on at least a portion of the primary storage volume corresponding to the at least a portion of the secondary storage volume.
    Type: Application
    Filed: March 28, 2013
    Publication date: October 3, 2013
    Inventors: Gregory L. Wade, J. Mitchell Haile
  • Patent number: 8527560
    Abstract: Aspects for conservative garbage collecting are disclosed. In one aspect, a heap of objects is generated during an execution of a script, and script objects in an unexecuted portion are traced to corresponding memory locations on the heap. The heap is then marked concurrently with executing the script such that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then freed concurrently with executing the script based on the marking. In another aspect, an object graph associated with a call stack is generated and traced such that script objects in an unexecuted portion of the stack are traced to corresponding memory locations on a heap. Heap objects are marked concurrently with executing the stack so that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then cleared concurrently with executing the stack based on the marked heap.
    Type: Grant
    Filed: March 29, 2011
    Date of Patent: September 3, 2013
    Assignee: Microsoft Corporation
    Inventors: Steven Lucco, Curtis Cheng-Cheng Man
  • Patent number: 8516018
    Abstract: Disclosed are apparatus and methods for managing image storage. An image source of a computing device can include one or more functions and a reference to image views for an image object, such as a bitmap object. The image object can include a reference to first storage that stores an image. The image source, the reference to the image views, and the image object are stored in a managed portion of memory. The first storage is stored in an unmanaged portion of memory differing from the managed portion. The computing device displays the image. Upon determining to discontinue displaying the image, an unbind function of the image source is called. The image source responsively discontinues display of the image. The image source receives an indication that the image views are solely weakly referenced. In response to the indication, the image source deallocates the first storage.
    Type: Grant
    Filed: April 6, 2012
    Date of Patent: August 20, 2013
    Assignee: Google Inc.
    Inventors: William Foote, Alejandro Nijamkin
  • Patent number: 8489653
    Abstract: A technique for incrementally unloading classes using a region-based garbage collector is described. One aspect of such a technique includes maintaining a remembered set for a class set. The remembered set indicates whether instances of the class set are contained in one or more regions in memory, and in which regions the instances are contained. Upon performing an incremental garbage collection process for a subset of the regions in memory, the technique examines the remembered set to determine whether the class set includes instances in regions outside of the subset. If the remembered set indicates that the class set includes instances outside of the subset of regions, the technique identifies the class set as “live.” This will preclude unloading the class set from the subset of regions.
    Type: Grant
    Filed: February 8, 2011
    Date of Patent: July 16, 2013
    Assignee: International Business Machines Corporation
    Inventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
  • Patent number: 8473529
    Abstract: An illustrative embodiment of a computer-implemented process for single pass marking of finalizable objects marks strong roots, marks finalizable roots and determines whether a strong work stack is empty. Responsive to a determination the strong work stack is empty the computer-implemented process determines whether a finalizable work stack is empty. Responsive to a determination the finalizable work stack is empty, synchronize threads, the computer-implemented process finalizes finalizable roots and merges mark maps to finish parallel marking.
    Type: Grant
    Filed: March 14, 2011
    Date of Patent: June 25, 2013
    Assignee: International Business Machines Corporation
    Inventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
  • Patent number: 8438193
    Abstract: A method for performing garbage collection on an object heap is described. In one embodiment, such a method includes performing a copy phase on an object heap by copying live objects from a source space to a destination space. An abort condition is generated when copying an object from the source space to the destination space fails due to insufficient space. In response to the abort condition, tracing work and reference updating associated with the copy phase are terminated. A mark phase is then initiated that marks live objects in the source space. This mark phase resumes tracing work and reference updating terminated by the copy phase in order to avoid or minimize the repetition of work performed by the copy phase. A corresponding computer program product and system are also described.
    Type: Grant
    Filed: March 28, 2012
    Date of Patent: May 7, 2013
    Assignee: International Business Machines Corporation
    Inventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
  • Patent number: 8423589
    Abstract: A method for performing garbage collection on an object heap is described. In one embodiment, such a method includes performing a copy phase on an object heap by copying live objects from a source space to a destination space. An abort condition is generated when copying an object from the source space to the destination space fails due to insufficient space. In response to the abort condition, tracing work and reference updating associated with the copy phase are terminated. A mark phase is then initiated that marks live objects in the source space. This mark phase resumes tracing work and reference updating terminated by the copy phase in order to avoid or minimize the repetition of work performed by the copy phase. A corresponding computer program product and system are also described.
    Type: Grant
    Filed: March 14, 2011
    Date of Patent: April 16, 2013
    Assignee: International Business Machines Corporation
    Inventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
  • Patent number: 8326894
    Abstract: The present invention provides a method and system for processing memory access events.
    Type: Grant
    Filed: October 30, 2009
    Date of Patent: December 4, 2012
    Assignee: International Business Machines Corporation
    Inventor: Yao Qi
  • Patent number: 8327109
    Abstract: A system and method for efficient garbage collection. A general-purpose central processing unit (CPU) partitions an allocated heap according to a generational garbage collection technique. The generations are partitioned into fixed size cards. The CPU marks indications of qualified dirty cards during application execution since the last garbage collection. When the CPU detects a next garbage collection start condition is satisfied, the CPU sends a notification to a special processing unit (SPU) corresponding to a determination of one or more card root addresses, each card root address corresponding to one of said marked indications. The SPU has a single instruction multiple data (SIMD) parallel architecture and may be a graphics processing unit (GPU). The SPU may utilize the parallel architecture of its SIMD core to simultaneously compute multiple card root addresses. Following, the SPU sends these addresses to the CPU to be used in a garbage collection algorithm.
    Type: Grant
    Filed: March 2, 2010
    Date of Patent: December 4, 2012
    Assignee: Advanced Micro Devices, Inc.
    Inventor: Eric R Caspole
  • Patent number: 8316204
    Abstract: One embodiment of the present invention provides a system that uses versioned pointers to facilitate reusing memory without having to reclaim the objects solely through garbage collection. The system operates by first receiving a request to allocate an object. Next, the system obtains the object from a pool of free objects, and sets an allocated/free flag in the object to indicate that the object is allocated. The system also increments a version number in the object, and also encodes the version number into a pointer for the object. The system then returns the pointer, which includes the encoded version number. In this way, subsequent accesses to the object through the pointer can compare the version number encoded in the pointer with the version number in the object to determine whether the object has been reused since the pointer was generated.
    Type: Grant
    Filed: September 28, 2011
    Date of Patent: November 20, 2012
    Assignee: Oracle America, Inc.
    Inventor: David R. Chase
  • Patent number: 8301672
    Abstract: A system and method for efficient garbage collection. A general-purpose central processing unit (CPU) sends a garbage collection request and a first log to a special processing unit (SPU). The first log includes an address and a data size of each allocated data object stored in a heap in memory corresponding to the CPU. The SPU has a single instruction multiple data (SIMD) parallel architecture and may be a graphics processing unit (GPU). The SPU efficiently performs operations of a garbage collection algorithm due to its architecture on a local representation of the data objects stored in the memory. The SPU records a list of changes it performs to remove dead data objects and compact live data objects. This list is subsequently sent to the CPU, which performs the included operations.
    Type: Grant
    Filed: September 22, 2008
    Date of Patent: October 30, 2012
    Assignee: Advanced Micro Devices, Inc.
    Inventors: Azeem S. Jiva, Gary R. Frost
  • Patent number: 8296337
    Abstract: An apparatus, system, and method are disclosed for managing data with an empty data segment directive at the requesting device. The apparatus, system, and method include a token directive generation module and a token directive transmission module. The token directive generation module generates a storage request with a token directive. The token directive includes a request to store on the storage device a data segment token. The token directive substitutes for a series of repeated, identical characters or a series of repeated, identical character strings to be stored as a data segment. The token directive includes at least a data segment identifier and a data segment length. The data segment token and the token directive are substantially free from data of the data segment. The token directive transmission module transmits the token directive to the storage device.
    Type: Grant
    Filed: December 6, 2007
    Date of Patent: October 23, 2012
    Assignee: Fusion-io, Inc.
    Inventors: David Flynn, Jonathan Thatcher, Michael Zappe
  • Patent number: 8291187
    Abstract: Mechanisms for memory management in a scoped memory system are provided. The scoped memory system includes a scoped memory area for the allocation of objects therein for access by one or more software threads in execution. The scoped memory area has an associated thread count for indicating that the scoped memory area is discardable. The mechanisms identify a set of root references for objects allocated in the scoped memory area and recursively traverses and marks objects that are referenced from the set of root references and that are allocated in the scoped memory area. The mechanisms further identify objects in the scoped memory area that are not so marked and discards the identified objects.
    Type: Grant
    Filed: September 23, 2008
    Date of Patent: October 16, 2012
    Assignee: International Business Machines Corporation
    Inventor: Andrew Johnson
  • Publication number: 20120254265
    Abstract: Aspects for conservative garbage collecting are disclosed. In one aspect, a heap of objects is generated during an execution of a script, and script objects in an unexecuted portion are traced to corresponding memory locations on the heap. The heap is then marked concurrently with executing the script such that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then freed concurrently with executing the script based on the marking. In another aspect, an object graph associated with a call stack is generated and traced such that script objects in an unexecuted portion of the stack are traced to corresponding memory locations on a heap. Heap objects are marked concurrently with executing the stack so that a marked heap includes reachable and unreachable objects. Memory allocated to the unreachable objects is then cleared concurrently with executing the stack based on the marked heap.
    Type: Application
    Filed: March 29, 2011
    Publication date: October 4, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Steven Lucco, Curtis Cheng-Cheng Man
  • Patent number: 8280927
    Abstract: The present invention claims and discloses an electronic equipment capable of executing a processing executing program that performs a predetermined processing. The electronic equipment comprises a memory; a setting unit that sets an allocation time for a memory region in the memory that the processing executing program is to use; and a memory leak detecting unit that detects when the memory region has not been deallocated within the allocation time.
    Type: Grant
    Filed: September 4, 2008
    Date of Patent: October 2, 2012
    Assignee: KYOCERA Document Solutions Inc.
    Inventor: Toshiaki Ueno