Copying Patents (Class 707/818)
  • Patent number: 10877884
    Abstract: An approach for optimizing a copying of a data object in a concurrent copying garbage collection operation is provided. In an embodiment, a source copy of the data object to be copied as part of the garbage collection operation is identified. A copying of the source copy to a target location is initiated by a primary accessing thread. This initiating of the copying includes the creation of a temporary target object header for the target object in the target location that contains an indicator set to indicate that the copying is ongoing. As the copying is occurring, the execution of any other accessing threads that are attempting to use the data object are held for as long as the indicator indicates that the copying is ongoing. Once the copying has completed, the target object header is replaced with a copy of the source object header, resetting the indicator.
    Type: Grant
    Filed: January 9, 2018
    Date of Patent: December 29, 2020
    Assignee: International Business Machines Corporation
    Inventors: Aleksandar Micic, Joran S. C. Siu, Irwin D'Souza, Filip Jeremic, Charles R. Gracie, Dmitri Pivkine
  • Patent number: 10795877
    Abstract: Disclosed herein are embodiments for performing multi-version concurrency control (MVCC) in non-volatile memory. An embodiment operates by determining that an event occurred, wherein one or more write transactions to one or more records of a multi-version database that were pending prior to the event did not commit. The one or more write transactions are identified based on a commit value that was stored in the non-volatile memory prior to the event. A particular one of the identified uncommitted write transactions is selected. From the multi-version database, a first version of a record corresponding to the selected uncommitted write transaction that was not committed, and an earlier version of the record that was committed prior to the event are identified. A visibility of the record is set to indicate that the earlier version of the record is visible and the first version of the record is not visible.
    Type: Grant
    Filed: February 20, 2018
    Date of Patent: October 6, 2020
    Assignee: SAP SE
    Inventors: Ismail Oukid, Wolfgang Lehner, Daniel dos Santos Bossle
  • Patent number: 9785693
    Abstract: An intelligent conflict detection system. The system provides semantic expression of edits and history-aware conflict detection in a large-scale service allowing multiple users to simultaneously work with the same document, which may result in conflicting edits. When submitted, changes to a version of a document are compared to all versions of the document created since the document was sourced. Edits to documents are expressed as intents describing the changes in terms of an action and object of that action based on a characteristic of the data being edited. Comparing the intent of current edits against the historical intent of the edits made in prior versions originating from the same source document allows the system to intelligently assess whether the edits are in conflict. History-aware semantic analysis results in users being prompted less frequently to resolve conflicts, which improves the user experience.
    Type: Grant
    Filed: June 30, 2014
    Date of Patent: October 10, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Arshish C. Kapadia, Tarkan Sevilmis, Peter Adam Outcalt, Marius Bunescu, Ryan Yandle
  • Patent number: 9767019
    Abstract: An example method of managing memory includes identifying a first object of the first type to update, the first object being stored on a heap. The method also includes reading a first memory address stored in a second object of the second type and storing a copy of the first object at a second memory address. The first memory address is an initial memory address of the first object. The method further includes after the copy is stored, reading a third memory address stored in the second object. The third memory address is a current memory address of the first object. The method also includes determining whether the first memory address matches the third memory address, and when the first memory address is determined to match the third memory address, updating the first memory address stored in the second object with the second memory address.
    Type: Grant
    Filed: September 17, 2013
    Date of Patent: September 19, 2017
    Assignee: Red Hat, Inc.
    Inventor: Christine H. Flood
  • Patent number: 8990167
    Abstract: A system and method for storing and providing metadata. Metadata may be retrieved from multiple sources. The metadata is stored in facets in a repository and tagged to indicate one or more of the source, a time frame, or an associated data object. In response to receiving a request for metadata, a system selects metadata based on the specified object, source, or time frame. Access permissions corresponding to the requester are used to select and provide metadata for which the requester has permissions.
    Type: Grant
    Filed: June 11, 2010
    Date of Patent: March 24, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: David Noor
  • 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: 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: 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: 8745313
    Abstract: A memory system includes a nonvolatile semiconductor memory having blocks, the block being data erasing unit; and a controller configured to execute; an update processing for; writing superseding data in a block, the superseding data being treated as valid data; and invalidating superseded data having the same logical address as the superseding data, the superseded data being treated as invalid data; and a compaction processing for; retrieving blocks having invalid data using a management tablet the management table managing blocks in a linked list format for each number of valid data included in the block; selecting a compaction source block having at least one valid data from the retrieved blocks; copying a plurality of valid data included in the compaction source blocks into a compaction target block; invalidating the plurality of valid data in the compaction source blocks; and releasing the compaction source blocks in which all data are invalidated.
    Type: Grant
    Filed: February 27, 2009
    Date of Patent: June 3, 2014
    Assignee: Kabushiki Kaisha Toshiba
    Inventors: Junji Yano, Kosuke Hatsuda, Hidenori Matsuzaki, Wataru Okamoto
  • Patent number: 8595462
    Abstract: An illustrative embodiment of a computer-implemented process for dynamic measurement and adaptation of a parallel copying garbage collector initializes values and data structures, receives an evacuate set, determines whether a new copy block is required and responsive to a determination that a new copy block is required, calculates a size of the new copy block. The computer-implemented process further selects a survivor region from a list of survivor regions to form a selected survivor region, places a lock on the selected survivor region, identifies a number of threads enqueued on the selected survivor region, responsive to a determination that a contention value exceeds a predetermined value, increases a size of the list of survivor regions, evacuates blocks to the selected survivor region and responsive to a determination that more evacuate blocks do not exist, terminates.
    Type: Grant
    Filed: March 14, 2011
    Date of Patent: November 26, 2013
    Assignee: International Business Machines Corporation
    Inventors: Peter Wiebe Burka, Jeffrey Michael Disher, Daryl James Maier, Aleksandar Micic, Ryan Andrew Sciampacone
  • Patent number: 8527559
    Abstract: In an object-relocating garbage collector, objects are copied and new copies taken into use concurrently with mutator execution without needing to use a read barrier, and importantly, without requiring verification (read-back) of each copied word and without requiring atomic instructions for the copying. Write barriers, thread-local write barrier buffers and processing them by the garbage collector, and write propagation are used for achieving this.
    Type: Grant
    Filed: May 19, 2011
    Date of Patent: September 3, 2013
    Assignee: Clausal Computing Oy
    Inventor: Tatu J. Ylonen
  • Patent number: 8429352
    Abstract: A method and system for flushing physical memory blocks in a memory device is disclosed. The method includes detecting a quantity of available memory, background flushing partially obsolete memory blocks if the quantity decreases to a background activation threshold, disabling the background flushing if the quantity increases to a background deactivation threshold, foreground flushing the partially obsolete memory blocks if the quantity decreases to a foreground activation threshold, and disabling the foreground flushing if the quantity increases to a foreground deactivation threshold. The thresholds may be adaptively defined. The background flushing may occur when the host interface is idle. The foreground flushing may interleave writing operations with flushing operations while a write command is unfinished.
    Type: Grant
    Filed: February 22, 2008
    Date of Patent: April 23, 2013
    Assignee: SanDisk Technologies Inc.
    Inventor: Alan W. Sinclair
  • 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: 8327323
    Abstract: A method of automatically defining a new class in a class hierarchy includes creating a descendent class that descends from one or more specified ancestor classes; sequentially analyzing each class along each inheritance path from the specified ancestor classes to a specified similar class to identify each class item in each class that is not selected from the specified ancestor classes; storing a respective pointer for each class item identified in each class that is not inherited by the class referencing the class item and associated with the class; storing a respective pointer for each class item identified in each class that is inherited and redefined by the class referencing the class item and being associated with the class if a pointer referencing the class item is not already stored; and copying each class item referenced by a stored pointer to the descendent class.
    Type: Grant
    Filed: December 8, 2008
    Date of Patent: December 4, 2012
    Assignee: International Business Machines Corporation
    Inventors: Karen Holtz, Eitan Marcus, Ronny Morad
  • Patent number: 8321481
    Abstract: Persistent memory in an integrated circuit cars (ICC) must be managed in such a way that removal of power from the device at any moment does not leave the data stored in this memory in a faulty or inconsistent state. The mechanisms of this disclosure accomplish this end using the tag-length-value data structures found extensively in ICC software and standards.
    Type: Grant
    Filed: May 13, 2011
    Date of Patent: November 27, 2012
    Assignee: Assa Abloy AB
    Inventor: Scott B. Guthery
  • Patent number: 8316148
    Abstract: A method and apparatus for obtaining a real time media stream provided as a plurality of media fragments from a plurality of remote nodes in a communications network. A first series of media fragments satisfying a first selection criterion is requested from a first remote node and a further series of media fragments satisfying a further different selection criterion is requested from at least one further remote node. When combined, the first series of fragments and the further series of fragments provide the complete media stream.
    Type: Grant
    Filed: February 22, 2008
    Date of Patent: November 20, 2012
    Assignee: Telefonaktiebolaget LM Ericsson (publ)
    Inventors: Andreas Ljunggren, Robert Skog
  • Patent number: 8316108
    Abstract: A method and apparatus for obtaining a real time media stream provided as a plurality of media fragments from a plurality of remote nodes in a communications network is described. Media fragments are requested from the plurality of remote nodes. A series of media fragments is received from at least one of the plurality of remote nodes. A selection criterion is determined for identifying the series of data fragments, and a blocking request is sent to at least one other of the plurality of remote nodes, the blocking request instructing the at least one other node to block the media fragments satisfying the selection criterion from being sent.
    Type: Grant
    Filed: February 22, 2008
    Date of Patent: November 20, 2012
    Assignee: Telefonaktiebolaget LM Ericsson (publ)
    Inventors: Andreas Ljunggren, Robert Skog
  • 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: 8290992
    Abstract: A file management method includes creating a rotation group by grouping a file group in which the generations of the files are managed by changes in the file names, and storing information of the rotation group in a rotation group management unit; acquiring file identification information of the files belonging to the rotation group from the file group according to the information of the rotation group, and storing the file identification information in a file identification information management unit; and acquiring file identification information of the rotation group from the file identification information management unit, further acquiring file identification information of the files belonging to the rotation group from the file group according to the information of the rotation group, and comparing the acquired pieces of file identification information.
    Type: Grant
    Filed: January 19, 2009
    Date of Patent: October 16, 2012
    Assignee: NEC Corporation
    Inventor: Yuu Sakamoto
  • Publication number: 20120254266
    Abstract: Methods and systems for garbage collection are described. In some embodiments, Garbage collector threads may maximize local accesses and minimize remote access by copying Young objects and Old objects differently. When copying a Young object, a garbage collector thread may determine the lgroup of the pool that contains the object and copy the object to a pool of the same lgroup. The garbage collector thread may spread Old objects among lgroups by copying Old objects to pools of the same lgroup as the respective garbage collector thread. Additional methods and systems are disclosed.
    Type: Application
    Filed: March 31, 2011
    Publication date: October 4, 2012
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Antonios Printezis, Igor Veresov, Paul Henry Hohensee, John Coomes
  • Publication number: 20120254267
    Abstract: System and Methods for non-uniform memory (NUMA) garbage collection are provided. Multiple memories and processors are categorized into local groups. A heap space is divided into multiple pools and stored in each of the memories. Garbage collection threads are assigned to each of the local groups. Garbage collection is performed using the garbage collection threads for objects contained in the pools using the garbage collector threads, memory, and processor assigned to each local group, minimizing remote memory accesses.
    Type: Application
    Filed: March 31, 2011
    Publication date: October 4, 2012
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: Antonios Printezis, Igor Veresov, Paul Henry Hohensee, John Coomes
  • Patent number: 8280866
    Abstract: During garbage collection, writes to objects being copied (relocated) are monitored (tracked) using a write barrier that uses a thread-local write barrier buffer. In the preferred embodiment, soft synchronization is used for reading the thread-local write barrier buffers. In response to detecting a write to an object, the object may be re-copied, the copying may be made to fail, the write may be propagated to another copy of the object, or, e.g., another node in a distributed system may be notified of the write.
    Type: Grant
    Filed: May 5, 2010
    Date of Patent: October 2, 2012
    Assignee: Clausal Computing OY
    Inventors: Tatu J. Ylonen, Tero T. Mononen
  • Patent number: 8233172
    Abstract: Methods, systems, and software for notification of multi-function peripheral (MFP) receive jobs are disclosed. A system provides a MFP configured to store at least one remote communication identifier, to process a MFP job associated with the at least one remote communication identifier, and to transmit, in response to an event associated with the MFP job, notification directed to the remote communication identifier. The MFP may receive the remote communication identifiers from embedded MFP jobs or may receive them from previously stored user profiles that specify notification preferences for different job types. The remote identification identifier may be, for example, an email address or a telephone number.
    Type: Grant
    Filed: March 9, 2006
    Date of Patent: July 31, 2012
    Assignee: Samsung Electronics Co., Ltd.
    Inventors: Brian Podl, Walter Filbrich
  • Publication number: 20120124018
    Abstract: A method, an article of manufacture, and system for heapifying an object. The method includes: storing, in a working set, a first address of a certain object in a stack frame, copying the certain object into the heap area and holding a second address of the certain object in the heap area, following each stack frame to find a pointer pointing to the first address stored in the working set, converting the address that the pointer points to into the second address, proceeding to a next stack frame, where the address conversion includes storing an address of another object in the working set if the converted address is stored as a value of a field of the other object in the stack frame, and terminating the process in response to a lack of pointers found in the stack frame to point to the addresses stored in the working set.
    Type: Application
    Filed: November 2, 2011
    Publication date: May 17, 2012
    Applicant: International Business Machines Corporation
    Inventors: Hiroshi Horii, Kiyokuni Kawachiya
  • Patent number: 8176100
    Abstract: A system of the present invention includes a storage device for distinguishably storing old objects that are objects having existed for not less than a predetermined period since being generated and new objects that are objects having existed for less than the predetermined period since being generated. Then, a new object that has existed for less than the predetermined period since being generated is selected from the storage device, and an old object having the same content as the selected new object is searched for. If such an old object is not found, the selected new object is newly stored as an old object in the storage device. If the old object is found, a reference to the selected new object is integrated with a reference to the found old object. If the old object is stored, the reference to the selected new object is changed to a reference to the stored old object.
    Type: Grant
    Filed: August 15, 2008
    Date of Patent: May 8, 2012
    Assignee: International Business Machines Corporaton
    Inventors: Tamiya Onodera, Kiyokuni Kawachiya, Kazunori Ogata
  • Patent number: 8126941
    Abstract: A memory management method and a system for performing garbage collection. The method includes the steps of providing in a memory space a heap partitioned into a plurality of areas including an area for object allocation and a To area for future object allocation. In garbage collection, an object reachable from a root set among objects allocated in the area of use is copied into the To area. In addition, a finalizable object among the objects allocated in the area of use is set as a finalization target. Here, the finalizable object is an object unreachable from the root set and has a finalize method. After the garbage collection is completed, the finalizable object of finalization target allocated in the area of use is finalized.
    Type: Grant
    Filed: April 27, 2009
    Date of Patent: February 28, 2012
    Assignee: International Business Machines Corporation
    Inventor: Hiroshi Inoue
  • Patent number: 8108448
    Abstract: A garbage collection algorithm that achieves hierarchical copy order with parallel garbage collection threads. More specifically, the present invention provides a garbage collection method and system for copying objects from a from-space to a to-space. The method comprises the steps of (a) having multiple threads that simultaneously perform work for garbage collection (GC), (b) examining the placement of objects on blocks, and (c) changing the placement of objects on blocks based on step (b). Preferably, the method includes the additional step of calculating a placement of object(s) based on step (b), and using the result of the calculation for step (c). For example, the calculation may be used to increase the frequency of intra-block pointers and/or to increase the frequency of siblings on the same block.
    Type: Grant
    Filed: May 29, 2008
    Date of Patent: January 31, 2012
    Assignee: International Business Machines Corporation
    Inventors: David K. Siegwart, Martin Hirzel
  • Patent number: 8095525
    Abstract: An architecture and system are described that provide a unified file access service within in a managed computing environment composed of diverse networks, computing devices, and storage devices. The service provides mechanisms for remotely accessing the file systems of any managed computer or disk snapshot, independently of the computer's current state (powered on, suspended or powered off), its location within the environment, its hardware type (virtual vs. physical), its operating system type, and its file system formats. The system isolates centralized FPAs from the details of clients, proxies and storage elements by providing a service that decomposes offloaded file system access into two steps. A FPA or a requester acting on behalf of the FPA first expresses the disk set or the computer containing the file systems it wishes to access, along with requirements and preferences about the access method.
    Type: Grant
    Filed: August 9, 2010
    Date of Patent: January 10, 2012
    Assignee: VMware, Inc.
    Inventors: Bich Cau Le, Robert Frederick Deuel, Christian Czezatke
  • Publication number: 20110289125
    Abstract: Persistent memory in an integrated circuit cars (ICC) must be managed in such a way that removal of power from the device at any moment does not leave the data stored in this memory in a faulty or inconsistent state. The mechanisms of this disclosure accomplish this end using the tag-length-value data structures found extensively in ICC software and standards.
    Type: Application
    Filed: May 13, 2011
    Publication date: November 24, 2011
    Inventor: Scott B. Guthery
  • Patent number: 8065349
    Abstract: The present invention provides a system that facilitates performing concurrent garbage collection. During operation, the system executes a first mutator thread. While executing the first mutator thread, the system performs a garbage-collection operation using a garbage-collector thread. Performing the garbage-collection operation involves: discovering a live object in a from-space, which is being collected; creating a copy of the live object to a to-space, where live objects are copied to during garbage collection; and replacing the live object in the from-space with a forwarding pointer which points to a location of the copy of the live object in the to-space.
    Type: Grant
    Filed: June 30, 2008
    Date of Patent: November 22, 2011
    Assignee: Oracle America, Inc.
    Inventors: Gregory M. Wright, Mario I. Wolczko
  • Publication number: 20110264713
    Abstract: In an object-relocating garbage collector, objects are copied and new copies taken into use concurrently with mutator execution without needing to use a read barrier, and importantly, without requiring verification (read-back) of each copied word and without requiring atomic instructions for the copying. Write barriers, thread-local write barrier buffers and processing them by the garbage collector, and write propagation are used for achieving this.
    Type: Application
    Filed: May 19, 2011
    Publication date: October 27, 2011
    Applicant: TATU YLONEN OY LTD
    Inventor: Tatu J. Ylonen
  • Publication number: 20110264712
    Abstract: A garbage collector is disclosed that permits extensive separation of mutators and the garbage collector from a synchronization perspective. This relative decoupling of mutator and collector operation allows the garbage collector to perform relatively time-intensive operations during garbage collection without substantially slowing down mutators. The present invention makes use of this flexibility by first conservatively determining which objects in a set of regions of interest are live, then planning where to copy the objects (preferably including clustering), and finally performing the actual copying.
    Type: Application
    Filed: April 20, 2011
    Publication date: October 27, 2011
    Applicant: TATU YLONEN OY LTD
    Inventor: Tatu J. Ylonen
  • Publication number: 20110252075
    Abstract: During garbage collection, writes to objects being copied (relocated) are monitored (tracked) using a write barrier that uses a thread-local write barrier buffer. In the preferred embodiment, soft synchronization is used for reading the thread-local write barrier buffers. In response to detecting a write to an object, the object may be re-copied, the copying may be made to fail, the write may be propagated to another copy of the object, or, e.g., another node in a distributed system may be notified of the write.
    Type: Application
    Filed: May 5, 2010
    Publication date: October 13, 2011
    Applicant: TATU YLONEN OY LTD
    Inventors: Tatu J. Ylonen, Tero T. Mononen
  • Patent number: 8024379
    Abstract: A garbage collection algorithm that achieves hierarchical copy order with parallel garbage collection threads. More specifically, the present invention provides a garbage collection method and system for copying objects from a from-space to a to-space. The method comprises the steps of (a) having multiple threads that simultaneously perform work for garbage collection (GC), (b) examining the placement of objects on blocks, and (c) changing the placement of objects on blocks based on step (b). Preferably, the method includes the additional step of calculating a placement of object(s) based on step (b), and using the result of the calculation for step (c). For example, the calculation may be used to increase the frequency of intra-block pointers and/or to increase the frequency of siblings on the same block.
    Type: Grant
    Filed: May 29, 2008
    Date of Patent: September 20, 2011
    Assignee: International Business Machines Corporation
    Inventors: David K. Siegwart, Martin Hirzel
  • Patent number: 7991807
    Abstract: A method and system for garbage collection are provided. A memory allocation request is received for an object. An object identifier is generated for the object. A first memory location is allocated to the object. A translation table is generated storing a map of the object identifier and the first memory location. A data structure is generated for the object. A mark flag is set based on the number of references of the object. Data stored in the first memory location is moved to a second memory location based upon the value of the mark flag. The data is deleted from the first memory location based upon a value of the mark flag.
    Type: Grant
    Filed: November 21, 2007
    Date of Patent: August 2, 2011
    Assignee: SAP AG
    Inventors: Albert Rossmann, Stefan Schulz
  • Patent number: 7987209
    Abstract: Methods and systems are described for implementing mass amendments that affect many line items and span many entries in a trade compliance system. Mass amendment functions allow a data field that is repeated in a plurality of records in the trade compliance system to be corrected without redundant data entry. A copy of the records that contain the data field is made. The copy may be exported into an external spreadsheet. A global edit, which makes the same correction in each repetition of the data field, is performed on the copy. The edited copy is uploaded into a database in the trade compliance system, to update the records while still preserving the data that existed in the data field prior to the global edit.
    Type: Grant
    Filed: August 29, 2005
    Date of Patent: July 26, 2011
    Assignee: Honda Motor Co., Ltd.
    Inventors: Tom Potts, Anthony Uy, Frederic Holmes, Matt Halterman, Mark Swirt, Laurie Peach, Denise Thorn, Charlene Strong
  • Patent number: 7984084
    Abstract: In a non-volatile memory array, scheduling of reclaim operations to occur before a shortage of erased blocks arises avoids extended periods of reclaim that could exceed a time limit. A memory controller uses information regarding the data stored in the memory array to estimate the additional host data that may be programmed and the reclaim operations to be performed and schedules the reclaim operations to be evenly distributed between write operations until the memory is full.
    Type: Grant
    Filed: October 25, 2005
    Date of Patent: July 19, 2011
    Assignee: SanDisk Technologies, Inc.
    Inventor: Alan Welsh Sinclair
  • Publication number: 20110137962
    Abstract: A technique for applying hardware transaction memory to an arbitrarily large data structure is disclosed. A data updater traverses the data structure to locate an update point using a lockless synchronization technique that synchronizes the data updater with other updaters that may be concurrently updating the data structure. At the update point, the updater performs an update on the data structure using a hardware transactional memory transaction that operates at the update point.
    Type: Application
    Filed: December 7, 2009
    Publication date: June 9, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Paul E. McKenney, Maged M. Michael
  • Patent number: 7958168
    Abstract: A method and apparatus are disclosed for restoring a virtual disk (vdisk) in a data storage system as the vdisk was at an earlier time. Pointers are maintained to point to data represented by the vdisk. The pointers are saved to persistent storage at the earlier time. The data at the earlier time is maintained on the data storage device. A pointer pointing to data represented by the vdisk at a later time is compared with the pointers saved at the earlier time. If the pointer from the later time matches the pointer saved at the earlier time, keeping the pointer from the later time in the active file system. If the pointer from the later time does not match the pointers saved at the earlier time, copying a set of pointers associated with the pointer saved at the earlier time to the active file system.
    Type: Grant
    Filed: April 14, 2010
    Date of Patent: June 7, 2011
    Assignee: NetApp, Inc.
    Inventors: Raymond C. Chen, Kayuri Patel, Vijayan Rajan
  • Patent number: 7930325
    Abstract: A garbage collection algorithm that achieves hierarchical copy order with parallel garbage collection threads. More specifically, the present invention provides a garbage collection method and system for copying objects from a from-space to a to-space. The method comprises the steps of (a) having multiple threads that simultaneously perform work for garbage collection (GC), (b) examining the placement of objects on blocks, and (c) changing the placement of objects on blocks based on step (b). Preferably, the method includes the additional step of calculating a placement of object(s) based on step (b), and using the result of the calculation for step (c). For example, the calculation may be used to increase the frequency of intra-block pointers and/or to increase the frequency of siblings on the same block.
    Type: Grant
    Filed: May 29, 2008
    Date of Patent: April 19, 2011
    Assignee: International Business Machines Corporation
    Inventors: David K. Siegwart, Martin Hirzel
  • Patent number: 7921143
    Abstract: A system and method is provided for efficiently pinning references to the managed heap. The system and method allow for references to managed objects to be declared as pinned during a call to unmanaged code. The references are then reported as pinned to a garbage collector in response to invocation of a garbage collection service. The reference can be declared as pinned by a programmer within the source code or automatically invoked at run-time based on an unsafe condition. The garbage collection service will not move or relocate objects that are referenced by the active pinned local variables. If a garbage collection does not occur, the fact that the local variables are declared pinned is ignored.
    Type: Grant
    Filed: May 12, 2009
    Date of Patent: April 5, 2011
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Patent number: 7882158
    Abstract: A system and method is provided for efficiently pinning references to the managed heap. The system and method allow for references to managed objects to be declared as pinned during a call to unmanaged code. The references are then reported as pinned to a garbage collector in response to invocation of a garbage collection service. The reference can be declared as pinned by a programmer within the source code or automatically invoked at run-time based on an unsafe condition. The garbage collection service will not move or relocate objects that are referenced by the active pinned local variables. If a garbage collection does not occur, the fact that the local variables are declared pinned is ignored.
    Type: Grant
    Filed: May 12, 2009
    Date of Patent: February 1, 2011
    Assignee: Microsoft Corporation
    Inventors: Patrick H. Dussud, Vance P. Morrison
  • Publication number: 20100179971
    Abstract: Described is a technology by which a real-time data relocating mechanism is provided for multiprocessing environments, including supporting lock-free programs that run in parallel. The relocating mechanism moves an object by using a status field related to the data field, possibly in an interim (wide) object space, which is then copied to a to-space object. The status information for each data field of the original object contains information indicating where a current version of the data for each field is present, that is, in the original, wide or to-space object. In one example, a handshake mechanism of a garbage collector establishes preparation and copy phases between the mechanism and other threads that determine where memory accesses occur. Also described is support for program thread compare-and-swap (CAS) operations and/or multi-word atomic operations.
    Type: Application
    Filed: March 24, 2010
    Publication date: July 15, 2010
    Applicant: Microsoft Corporation
    Inventors: Erez Petrank, Filip Jerzy Pizlo, Bjarne Steensgaard
  • Publication number: 20100115000
    Abstract: The disclosure and claims herein are directed to efficient journaling for recovery of a database index by journaling zones of a page. A journal mechanism maintains a page zone bit map that includes a bit for a plurality of zones in each page to indicate which zones have had their unchanged image journaled before being changed since a last sync point update. The page zone bit map has a bit for each zone in each page so that the status of each zone can be tracked separately. Tracking the smaller zones of the pages makes the process more efficient both at run time and during recovery by reducing the period of time for memory deposits and reducing the amount of total redundant/recovery data sent to disk for larger pages.
    Type: Application
    Filed: October 30, 2008
    Publication date: May 6, 2010
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventor: Larry William Youngren
  • Publication number: 20100106753
    Abstract: A cyclic commit protocol is used to store relationships between transactions and is used by the technology to determine whether a transaction is committed or not. The protocol allows creation of a cycle of transactions which can be used to recover the state of a storage device after a host failure by identifying the last committed version of intention records as committed or uncommitted based on the data stored in the physical pages.
    Type: Application
    Filed: October 24, 2008
    Publication date: April 29, 2010
    Applicant: Microsoft Corporation
    Inventors: Vijayan Prabhakaran, Lidong Zhou, Thomas Lee Rodeheffer
  • Patent number: 7693919
    Abstract: An eager reference-counting garbage collection system performs a static analysis on the intermediate representation of a program. The system then uses liveness information to inject eager reference-counting updates into the program. Through the use of the liveness information, reference-counting decrements can be made earlier in execution than in traditional reference-counting schemes, freeing up memory more efficiently. Additionally, a reference-counting subsumption optimization tool identifies redundant reference-counting updates and removes them, lowering the number of garbage collection update calls and improving execution throughput. Reference-counting subsumption can also be used as a throughput enhancer in traditional reference-counting schemes that maintain up-to-date tallies of references from the stack.
    Type: Grant
    Filed: February 10, 2006
    Date of Patent: April 6, 2010
    Assignee: Microsoft Corporation
    Inventor: Pramod Gundimajalu Joisha
  • Publication number: 20100049776
    Abstract: Directories in a file system are defined with a dummy cluster in a file allocation table as the initial entry. Subsequent clusters in a directory's definition may define any data for the directory that can be changed in a transaction-safe mode. A directory may be modified in a transaction-safe mode by modifying any of the subsequent clusters while tracking changes in a second file allocation table. When the changes have been made to the directory, a pointer to the second file allocation table may be switched to indicate that the second file allocation table is now last known good. The first file allocation table may then be synchronized with the second.
    Type: Application
    Filed: November 2, 2009
    Publication date: February 25, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Sachin Patel, Yadhu Gopalan, Andrew Rogers