Patents Assigned to PernixData, Inc.
  • Patent number: 9792050
    Abstract: Example distributed caching systems and methods are described. In one implementation, a system has multiple host systems, each of which includes a cache resource that is accessed by one or more consumers. A management server is coupled to the multiple host systems and presents available cache resources and resources associated with available host systems to a user. The management server receives a user selection of at least one available cache resource and at least one host system. The selected host system is then configured to share the selected cache resource.
    Type: Grant
    Filed: August 13, 2015
    Date of Patent: October 17, 2017
    Assignee: PernixData, Inc.
    Inventors: Michal Ostrowski, Akhilesh Joshi, Deepak Muley, Satyam Vaghani, Bryan Jeffrey Crowe, Shyan-Ming Perng
  • Patent number: 9658959
    Abstract: A resource manager directs cache operating states of virtual machines based on cache resource latency and by distinguishing between latencies in flash memory and latencies in network communications and by distinguishing between executing read commands and executing different types of write commands. As a result, the resource manager can downgrade the cache operating state of the virtual machines differently based on the type of latency being experienced and the type of command being performed. The resource manager can upgrade and/or reset the cache operating state of the virtual machines, when appropriate, and can give priority to some virtual machines over other virtual machines when operating in a downgraded cache operating state.
    Type: Grant
    Filed: February 20, 2015
    Date of Patent: May 23, 2017
    Assignee: PernixData, Inc.
    Inventors: Mahesh Patil, Sameer Narkhede
  • Patent number: 9639481
    Abstract: Systems and methods for managing records stored in a storage cache are provided. A cache index is created and maintained to track where records are stored in buckets in the storage cache. The cache index maps the memory locations of the cached records to the buckets in the cache storage and can be quickly traversed by a metadata manager to determine whether a requested record can be retrieved from the cache storage. Bucket addresses stored in the cache index include a generation number of the bucket that is used to determine whether the cached record is stale. The generation number allows a bucket manager to evict buckets in the cache without having to update the bucket addresses stored in the cache index. In an alternative embodiment, non-contiguous portions of computing system working memory are used to cache data instead of a dedicated storage cache.
    Type: Grant
    Filed: January 29, 2015
    Date of Patent: May 2, 2017
    Assignee: PernixData, Inc.
    Inventors: Woon Ho Jung, Nakul Dhotre
  • Patent number: 9588855
    Abstract: Fault domains are defined which reflect, either physically or virtually, the topology of a networked computing environment. These defined fault domains are then used to control where cached data is replicated when running in a write back cache mode. Unlike known replication approaches, the present approach replicates such data according to a user's defined data policy and based on the defined fault domains thereby avoiding the user having to keep track of changes in computing system configurations or update their data policy when virtual machines migrate from one host computing system to another.
    Type: Grant
    Filed: April 22, 2015
    Date of Patent: March 7, 2017
    Assignee: PernixData, Inc.
    Inventors: Akhilesh Manohar Joshi, Deepak Dilip Muley, Bryan Crowe, Satyam B. Vaghani, Shankar Vilayannur Natarajan
  • Patent number: 9489226
    Abstract: When a virtual machine sends a write command to a host operating system, a cache system stores the record included in the write command and later sends the write command to a storage system. Systems and methods store an indication of when the write command was received along with the received records in the cache. The cache system determines an order of the records from the indication. In some instances, records received at the same time are serialized and/or assigned record numbers. The simultaneously received records can be assigned a batch number. According to the determined order, the records are retrieved from the cache memory and included in write commands sent to the storage system. In some instances, checkpoints can be stored to prevent records from being re-sent to the storage system following a failure.
    Type: Grant
    Filed: June 6, 2014
    Date of Patent: November 8, 2016
    Assignee: PernixData, Inc.
    Inventors: Mahesh Patil, Murali Natarajan Vilayannur, Michal Ostrowski, Kaustubh Sambhaji Patil, Woon Ho Jung, Satyam B. Vaghani, Poojan Kumar
  • Patent number: 9489389
    Abstract: A cache manager maintains coherency of cached objects used by applications in a computing system. The cache manager maintains a cache memory of objects as they are accessed by an application. The cache manager tracks cached objects on a per-application basis using a cache database, storing for each object metadata comprising the generation number of the application using the cached object, and the file generation number of the file from which the object was read. The cache manager determines whether cached objects are valid and can be used by the application, or are stale and must be reloaded, by using these generation numbers when an application attempts to use a file or object. In this fashion, cache coherency is maintained even in a distributed environment without the centralized cache management bottlenecks of prior approaches and without the need to eagerly purge the cache of stale versions of objects.
    Type: Grant
    Filed: December 9, 2013
    Date of Patent: November 8, 2016
    Assignee: PernixData, Inc.
    Inventors: Kaustubh Sambhaji Patil, Murali Natarajan Vilayannur, Satyam B. Vaghani, Michal Ostrowski, Woon Ho Jung, Poojan Kumar
  • Patent number: 9489239
    Abstract: Systems and methods for managing records stored in a storage cache are provided. A cache index is created and maintained to track where records are stored in buckets in the storage cache. The cache index maps the memory locations of the cached records to the buckets in the cache storage and can be quickly traversed by a metadata manager to determine whether a requested record can be retrieved from the cache storage. Bucket addresses stored in the cache index include a generation number of the bucket that is used to determine whether the cached record is stale. The generation number allows a bucket manager to evict buckets in the cache without having to update the bucket addresses stored in the cache index. Further, the bucket manager is tiered thus allowing efficient use of differing filter functions and even different types of memories as may be desired in a given implementation.
    Type: Grant
    Filed: July 27, 2015
    Date of Patent: November 8, 2016
    Assignee: PernixData, Inc.
    Inventors: Woon Ho Jung, Nakul Dhotre, Deepak Jain, Anthony Pang
  • Patent number: 9454488
    Abstract: Systems and methods for managing records stored in a storage cache are provided. A cache index is created and maintained to track where records are stored in buckets in the storage cache. The cache index maps the memory locations of the cached records to the buckets in the cache storage and can be quickly traversed by a metadata manager to determine whether a requested record can be retrieved from the cache storage. Bucket addresses stored in the cache index include a generation number of the bucket that is used to determine whether the cached record is stale. The generation number allows a bucket manager to evict buckets in the cache without having to update the bucket addresses stored in the cache index. Further, the cache index can be expanded to accommodate very small records, such as those generated by legacy systems.
    Type: Grant
    Filed: August 8, 2014
    Date of Patent: September 27, 2016
    Assignee: PernixData, Inc.
    Inventors: Murali Natarajan Vilayannur, Woon Ho Jung, Kaustubh Sambhaji Patil, Satyam B. Vaghani, Michal Ostrowski, Poojan Kumar
  • Publication number: 20150161048
    Abstract: A cache manager maintains coherency of cached objects used by applications in a computing system. The cache manager maintains a cache memory of objects as they are accessed by an application. The cache manager tracks cached objects on a per-application basis using a cache database, storing for each object metadata comprising the generation number of the application using the cached object, and the file generation number of the file from which the object was read. The cache manager determines whether cached objects are valid and can be used by the application, or are stale and must be reloaded, by using these generation numbers when an application attempts to use a file or object. In this fashion, cache coherency is maintained even in a distributed environment without the centralized cache management bottlenecks of prior approaches and without the need to eagerly purge the cache of stale versions of objects.
    Type: Application
    Filed: December 9, 2013
    Publication date: June 11, 2015
    Applicant: PernixData, Inc.
    Inventors: Kaustubh Sambhaji Patil, Murali Natarajan Vilayannur, Satyam B. Vaghani, Michal Ostrowski, Woon Ho Jung, Poojan Kumar