Patents by Inventor Alexander Garthwaite

Alexander Garthwaite has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10691341
    Abstract: One or more embodiments provide techniques for accessing a memory page of a virtual machine for which loading might have been deferred, according to an embodiment of the invention, includes the steps of examining metadata of the memory page and determining that a flag in the metadata for indicating that the contents of the memory page needs to be updated is set, and updating the contents of the memory page.
    Type: Grant
    Filed: December 22, 2016
    Date of Patent: June 23, 2020
    Assignee: VMware, Inc.
    Inventors: Yury Baskakov, Alexander Garthwaite, Jesse Pool
  • Patent number: 9639480
    Abstract: The configuration of a cache is adjusted within a computer system that includes at least one entity that submits a stream of references, each reference corresponding to a location identifier corresponding to data storage locations in a storage system. The reference stream is spatially sampled using reference hashing. Cache utility values are determined for each of a plurality of caching simulations and an optimal configuration is selected based on the results of the simulations.
    Type: Grant
    Filed: August 16, 2016
    Date of Patent: May 2, 2017
    Assignee: CLOUD PHYSICS, INC.
    Inventors: Carl A. Waldspurger, Irfan Ahmad, Alexander Garthwaite, Nohhyun Park
  • Publication number: 20170102876
    Abstract: One or more embodiments provide techniques for accessing a memory page of a virtual machine for which loading might have been deferred, according to an embodiment of the invention, includes the steps of examining metadata of the memory page and determining that a flag in the metadata for indicating that the contents of the memory page needs to be updated is set, and updating the contents of the memory page.
    Type: Application
    Filed: December 22, 2016
    Publication date: April 13, 2017
    Inventors: Yury BASKAKOV, Alexander GARTHWAITE, Jesse POOL
  • Patent number: 9529728
    Abstract: Updating contents of certain memory pages in a virtual machine system is deferred until they are needed. Specifically, certain page update operations are deferred until the page is accessed for a load or store operation. Each page within the virtual machine system includes associated metadata, which includes a page signature characterizing the contents of a corresponding page or a reference to a page with canonical contents, and a flag that indicates the page needs to be updated before being accessed. The metadata may also include a flag to indicate that a backing store of the memory page has contents of a known content class. When such a memory page is mapped to a shared page with contents of that known content class, a flag in the metadata to indicate that contents of the memory page needs to be updated is not set.
    Type: Grant
    Filed: October 7, 2010
    Date of Patent: December 27, 2016
    Assignee: VMware, Inc.
    Inventors: Yury Baskakov, Alexander Garthwaite, Jesse Pool
  • Publication number: 20160357686
    Abstract: The configuration of a cache is adjusted within a computer system that includes at least one entity that submits a stream of references, each reference corresponding to a location identifier corresponding to data storage locations in a storage system. The reference stream is spatially sampled using reference hashing. Cache utility values are determined for each of a plurality of caching simulations and an optimal configuration is selected based on the results of the simulations.
    Type: Application
    Filed: August 16, 2016
    Publication date: December 8, 2016
    Applicant: Cloud Physics, Inc.
    Inventors: Carl A. WALDSPURGER, Irfan AHMAD, Alexander GARTHWAITE, Nohhyun PARK
  • Publication number: 20160357674
    Abstract: A cache in a computer system is configured with a plurality of monitoring slices, each comprising a separately addressable partition of the cache. With each monitoring slice is associated a respective sub-range of a hash function, which has a range that includes at least the addressable partitions of the cache that comprise the monitoring slices. For each of a stream of location identifiers submitted by at least one entity, a respective location identifier hash value is computed and used to determine in which, if any, monitoring slice-associated hash function sub-range the location identifier hash value falls. For at least one of the monitoring slices, a frequency value is determined as a function of how many of the location identifier hash values fell into the slice's associated hash function sub-range, and a respective cache utility value is then computed as a function of each monitoring slice's frequency value.
    Type: Application
    Filed: June 6, 2016
    Publication date: December 8, 2016
    Applicant: Cloud Physics, Inc.
    Inventors: Carl A. WALDSPURGER, Irfan AHMAD, Alexander GARTHWAITE, Nohhyun PARK, Guang YANG
  • Patent number: 9418020
    Abstract: Interaction is evaluated between a computer system cache and at least one entity that submits a stream of references corresponding to location identifiers of data storage locations. The reference stream is spatially sampled by comparing a hash value of each reference with a threshold value and selecting only those references whose hash value meets a selection criterion. Cache utility values are then compiled for those references. In some embodiments, the compiled cache values may then be corrected for accuracy as a function of statistics of those location identifiers over the entire stream of references and of the sampled references whose hash values satisfied the selection criterion. Alternatively, a plurality of caching configurations is selected and the selected references are applied as inputs to a plurality of caching simulations, each corresponding to a different caching configuration. A resulting set of cache utility values is then computed for each caching simulation.
    Type: Grant
    Filed: January 22, 2016
    Date of Patent: August 16, 2016
    Assignee: CLOUD PHYSICS, INC.
    Inventors: Carl A. Waldspurger, Irfan Ahmad, Alexander Garthwaite, Nohhyun Park
  • Patent number: 9405686
    Abstract: Cache utility curves are determined for different software entities depending on how frequently their storage access requests lead to cache hits or cache misses. Although possible, not all access requests need be tested, but rather only a sampled subset, determined by whether a hash value of each current storage location identifier (such as an address or block number) meets one or more sampling criteria. The sampling rate is adaptively changed so as to hold the number of location identifiers needed to be stored to compute the cache utility curves to within a set maximum limit.
    Type: Grant
    Filed: June 26, 2014
    Date of Patent: August 2, 2016
    Assignee: CLOUD PHYSICS, INC
    Inventors: Carl A Waldspurger, Alexander Garthwaite, Nohhyun Park, Irfan Ahmad
  • Publication number: 20160140052
    Abstract: Interaction is evaluated between a computer system cache and at least one entity that submits a stream of references corresponding to location identifiers of data storage locations. The reference stream is spatially sampled by comparing a hash value of each reference with a threshold value and selecting only those references whose hash value meets a selection criterion. Cache utility values are then compiled for those references. In some embodiments, the compiled cache values may then be corrected for accuracy as a function of statistics of those location identifiers over the entire stream of references and of the sampled references whose hash values satisfied the selection criterion. Alternatively, a plurality of caching configurations is selected and the selected references are applied as inputs to a plurality of caching simulations, each corresponding to a different caching configuration. A resulting set of cache utility values is then computed for each caching simulation.
    Type: Application
    Filed: January 22, 2016
    Publication date: May 19, 2016
    Applicant: Cloud Physics, Inc.
    Inventors: Carl A. Waldspurger, Irfan Ahmad, Alexander Garthwaite, Nohhyun Park
  • Publication number: 20140310462
    Abstract: Cache utility curves are determined for different software entities depending on how frequently their storage access requests lead to cache hits or cache misses. Although possible, not all access requests need be tested, but rather only a sampled subset, determined by whether a hash value of each current storage location identifier (such as an address or block number) meets one or more sampling criteria. The sampling rate is adaptively changed so as to hold the number of location identifiers needed to be stored to compute the cache utility curves to within a set maximum limit.
    Type: Application
    Filed: June 26, 2014
    Publication date: October 16, 2014
    Applicant: Cloud Physics, Inc.
    Inventors: Carl A. WALDSPURGER, Alexander GARTHWAITE, Nohhyun PARK, Irfan AHMAD
  • Publication number: 20120089764
    Abstract: Updating contents of certain memory pages in a virtual machine system is deferred until they are needed. Specifically, certain page update operations are deferred until the page is accessed for a load or store operation. Each page within the virtual machine system includes associated metadata, which includes a page signature characterizing the contents of a corresponding page or a reference to a page with canonical contents, and a flag that indicates the page needs to be updated before being accessed. The metadata may also include a flag to indicate that a backing store of the memory page has contents of a known content class. When such a memory page is mapped to a shared page with contents of that known content class, a flag in the metadata to indicate that contents of the memory page needs to be updated is not set.
    Type: Application
    Filed: October 7, 2010
    Publication date: April 12, 2012
    Applicant: VMWARE, INC.
    Inventors: Yury BASKAKOV, Alexander GARTHWAITE, Jesse POOL
  • Patent number: 7882505
    Abstract: In a multi-processor multi-threaded computer system, resources are dynamically assigned during program operation to either threads or processors in such a manner that resource usage is maximized. In one embodiment, the choice of whether to assign resources to threads or processors is dependent on the number of threads versus the number of processors. In another embodiment, when the system is operating in one assignment mode, the amount of wasted resources is measured and when this measured amount exceeds a predetermined threshold based on the maximum resources that could be wasted were the system operating in the other assignment mode, the assignment is switched to the other assignment mode.
    Type: Grant
    Filed: March 25, 2005
    Date of Patent: February 1, 2011
    Assignee: Oracle America, Inc.
    Inventors: Alexander Garthwaite, David Dice, Derek R. White
  • Publication number: 20060218557
    Abstract: In a multi-processor multi-threaded computer system, resources are dynamically assigned during program operation to either threads or processors in such a manner that resource usage is maximized. In one embodiment, the choice of whether to assign resources to threads or processors is dependent on the number of threads versus the number of processors. In another embodiment, when the system is operating in one assignment mode, the amount of wasted resources is measured and when this measured amount exceeds a predetermined threshold based on the maximum resources that could be wasted were the system operating in the other assignment mode, the assignment is switched to the other assignment mode.
    Type: Application
    Filed: March 25, 2005
    Publication date: September 28, 2006
    Applicant: Sun Microsystems, Inc.
    Inventors: Alexander Garthwaite, David Dice, Derek White
  • Publication number: 20060161737
    Abstract: In some embodiments, a Hat Trick deque requires only a single DCAS for most pushes and pops. The left and right ends do not interfere with each other until there is one or fewer items in the queue, and then a DCAS adjudicates between competing pops. By choosing a granularity greater than a single node, the user can amortize the costs of adding additional storage over multiple push (and pop) operations that employ the added storage. A suitable removal strategy can provide similar amortization advantages. The technique of leaving spare nodes linked in the structure allows an indefinite number of pushes and pops at a given deque end to proceed without the need to invoke memory allocation or reclamation so long as the difference between the number of pushes and the number of pops remains within given bounds. Both garbage collection dependent and explicit reclamation implementations are described.
    Type: Application
    Filed: March 20, 2006
    Publication date: July 20, 2006
    Inventors: Paul Martin, David Detlefs, Alexander Garthwaite, Guy Steele, Mark Moir