Patents by Inventor Prakash Khemani

Prakash Khemani 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: 7370329
    Abstract: A client-server system may include a primary state of session data. One or more application servers may include client states of the session data and may be configured to access the primary state. The session data may include one or more attributes. The distributed store may lock the primary state for access by a process executing on one of the application servers. Information may be maintained on which attributes are mutably accessed by the process. An object graph comparison of the mutably accessed attributes and a benchmark version of the attributes may be performed to determine which of the mutably accessed attributes were actually modified. The modified attributes may be used to synchronize the primary state with the client state.
    Type: Grant
    Filed: March 1, 2002
    Date of Patent: May 6, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susarla, Prakash Khemani
  • Patent number: 7320035
    Abstract: A client-server system may include a distributed store configured to maintain a primary state of session data. The system may also include one or more application servers that each may include a client state of the session data. The session data may include one or more attributes. In one embodiment, the client state may be accessible by clients of the system. The application server may compare the client state to a benchmark of the client state to determine a subset of the attributes that have been modified in the client state. In some embodiments, the comparison may be a binary differencing or object graph differencing of the client state and the benchmark of the client state to locate the modified attributes. The distributed store may synchronize the primary state with the client state using the subset of the attributes.
    Type: Grant
    Filed: March 1, 2002
    Date of Patent: January 15, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susarla, Prakash Khemani
  • Publication number: 20070156966
    Abstract: The present invention is directed towards a method and system for providing granular timed invalidation of dynamically generated objects stored in a cache. The techniques of the present invention incorporates the ability to configure the expiration time of objects stored by the cache to fine granular time intervals, such as the granularity of time intervals provided by a packet processing timer of a packet processing engine. As such, the present invention can cache objects with expiry times down to very small intervals of time. This characteristic is referred to as “invalidation granularity.” By providing this fine granularity in expiry time, the cache of the present invention can cache and serve objects that frequently change, sometimes even many times within a second. One technique is to leverage the packet processing timers used by the device of the present invention that are able operate at time increments on the order of milliseconds to permit invalidation or expiry granularity down to 10 ms or less.
    Type: Application
    Filed: December 30, 2005
    Publication date: July 5, 2007
    Inventors: Prabakar Sundarrajan, Prakash Khemani, Kailash Kailash, Ajay Soni, Rajiv Sinha, Saravana Annamalaisami, Bharat Bhushan KR, Anil Kumar
  • Publication number: 20070156852
    Abstract: The present invention is directed towards a “flash crowd” technique for handling situations where the cache receives additional requests, e.g.,. nearly simultaneous requests, for the same object during the time the server is processing and returning the response object for a first requester. Once all such nearly simultaneous requests are responded to by the cache, the object is flushed from the cache, with no additional expire time or invalidation action needed. This technique of the present invention enables data to be cached and served for very small amounts of time for objects that would otherwise be considered non-cacheable. As such, this technique yields a significant improvement in applications that serve fast changing data to a large volume of concurrent users, such, for example, as real time stock quotes, or a fast evolving news story.
    Type: Application
    Filed: December 30, 2005
    Publication date: July 5, 2007
    Inventors: Prabakar Sundarrajan, Prakash Khemani, Kailash Kailash, Ajay Soni, Rajiv Sinha, Saravana Annamalaisami, Bharat Bhushan K R
  • Publication number: 20070156965
    Abstract: A method for maintaining a cache of dynamically generated objects. The method includes storing in the cache dynamically generated objects previously served from an originating server to a client. A communication between the client and server is intercepted by the cache. The cache parses the communication to identify an object determinant and to determine whether the object determinant indicates whether a change has occurred or will occur in an object at the originating server. The cache marks the object stored in the cache as invalid if the object determinant so indicates. If the object has been marked as invalid, the cache retrieves the object from the originating server.
    Type: Application
    Filed: December 30, 2005
    Publication date: July 5, 2007
    Inventors: Prabakar Sundarrajan, Prakash Khemani, Kailash Kailash, Ajay Soni, Rajiv Sinha, Saravana Annamalaisami, Bharath Bhushan KR, Anil Kumar
  • Publication number: 20070156876
    Abstract: The present invention is directed towards a method and system for providing a technique referred to as flash caching to respond to requests for an object, such as a dynamically generated object, from multiple clients. This technique of the present invention uses a dynamically generated object stored in a buffer for transmission to a client, for example in response to a request from the client, to also respond to additional requests for the dynamically generated object from other clients while the object is stored in the buffer. Using this technique, the present invention is able to increase cache hit rates for extremely fast changing dynamically generated objects that may not otherwise be cacheable.
    Type: Application
    Filed: December 30, 2005
    Publication date: July 5, 2007
    Inventors: Prabakar Sundarrajan, Prakash Khemani, Kailash Kailash, Ajay Soni, Rajiv Sinha, Saravana Annamalaisami, Bharat Bhushan KR, Anil Kumar
  • Patent number: 7240058
    Abstract: A client-server system may include a primary state of session data. Application servers may include client states of the session data and may access the primary state. The session data may include attributes. The distributed store may provide locked access to the primary state to processes executing within the application servers. While one process has locked access, other processes are not allowed to access the primary state. In one embodiment, the distributed store provides locked access to portions of the primary state to threads executing within a process with locked access. While a portion of the primary state is locked for a thread, other threads cannot access the portion. In one embodiment, the distributed store may request the process to release the locked access. The process may release the locked access in response to the request. In one embodiment, the process may release the locked access when no longer needed.
    Type: Grant
    Filed: March 1, 2002
    Date of Patent: July 3, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susarla, Prakash Khemani
  • Publication number: 20060195660
    Abstract: The present invention is directed towards a method and system for modifying by a cache responses from a server that do not identify a dynamically generated object as cacheable to identify the dynamically generated object to a client as cacheable in the response. In some embodiments, such as an embodiment handling HTTP requests and responses for objects, the techniques of the present invention insert an entity tag, or “etag” into the response to provide cache control for objects provided without entity tags and/or cache control information from an originating server. This technique of the present invention provides an increase in cache hit rates by inserting information, such as entity tag and cache control information for an object, in a response to a client to enable the cache to check for a hit in a subsequent request.
    Type: Application
    Filed: December 30, 2005
    Publication date: August 31, 2006
    Inventors: Prabakar Sundarrajan, Prakash Khemani, Kailash Kailash, Ajay Soni, Rajiv Sinha, Saravana Annamalaisami, Bharath Bhushan K R, Anil Kumar
  • Patent number: 7085852
    Abstract: A client-server system may include a primary state of session data. Application servers may include client states of the session data and may access the primary state. The session data may include attributes. An application server may generate a set of attributes of the session data for synchronizing the primary state with the client state. The set may exclude immutable attributes. In some embodiment the set may further exclude attributes only immutably accessed and/or further exclude attributes that were not accessed. In some embodiments, the application server may use a binary comparison or an object graph comparison of the set of attributes to a benchmark of the client state to determine a subset of the generated set of attributes that are modified. The distributed store may synchronize the primary state with the client state using the generated set of attributes or, in some embodiments, using only the modified attributes.
    Type: Grant
    Filed: March 1, 2002
    Date of Patent: August 1, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susaria, Prakash Khemani
  • Publication number: 20060015570
    Abstract: A device that implements a method for performing integrated caching in a data communication network. The device is configured to receive a packet from a client over the data communication network, wherein the packet includes a request for an object. At the operating system/kernel level of the device, one or more of decryption processing of the packet, authentication and/or authorization of the client, and decompression of the request occurs prior to and integrated with caching operations. The caching operations include determining if the object resides within a cache, serving the request from the cache in response to a determination that the object is stored within the cache, and sending the request to a server in response to a determination that the object is not stored within the cache.
    Type: Application
    Filed: June 29, 2005
    Publication date: January 19, 2006
    Applicant: Netscaler, Inc.
    Inventors: Prakash Khemani, Prabakar Sundarrajan, Lakshmi Kumar, Kailash Kailash, Ajay Soni, Rajiv Sinha, Saravanakumar Annamalaisami
  • Patent number: 6871219
    Abstract: A distributed shared memory multiprocessor computer system utilizes page placement policies to reduce data access latencies. Pages of memory are allocated to nodes in a distributed shared memory multiprocessor computer system. A placement policy database is maintained which indicates a placement policy for each page in the system. Upon an access to a page, the placement policy corresponding to the accessed page is determined and the indicated policy is acted upon. A Migrate on Next Touch policy provides that the next access to a page with this policy will cause the page to migrate to the node of the accessing CPU. A Memory Follows Lightweight Process (LWP) policy ensures that pages within a given address range are always local to a specified LWP. A Migrate on Every Touch policy provides that pages within a given address range are migrated to an accessing CPU on every touch. A Replicate on Remote Touch policy provides for replication of a page in the memory of each accessing CPU's domain.
    Type: Grant
    Filed: March 7, 2001
    Date of Patent: March 22, 2005
    Assignee: Sun Microsystems, Inc.
    Inventors: Lisa K. Noordergraaf, Julia D. Harper, Prakash Khemani
  • Publication number: 20030167268
    Abstract: A client-server system may include a primary state of session data. Application servers may include client states of the session data and may access the primary state. The session data may include attributes. The distributed store may provide locked access to the primary state to processes executing within the application servers. While one process has locked access, other processes are not allowed to access the primary state. In one embodiment, the distributed store provides locked access to portions of the primary state to threads executing within a process with locked access. While a portion of the primary state is locked for a thread, other threads cannot access the portion. In one embodiment, the distributed store may request the process to release the locked access. The process may release the locked access in response to the request. In one embodiment, the process may release the locked access when no longer needed.
    Type: Application
    Filed: March 1, 2002
    Publication date: September 4, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susarla, Prakash Khemani
  • Publication number: 20030167285
    Abstract: A client-server system may include a distributed store configured to maintain a primary state of session data. The system may also include one or more application servers that each may include a client state of the session data for access by clients of the system. The session data may include one or more attributes. An application server may track accesses of the attributes. In one embodiment, the application server may track accesses of the attributes by storing information identifying the accessed attributes. The distributed store may synchronize the primary state with the client state using the tracked accessed attributes. In some embodiments, the application server may perform a binary or object graph comparison of the tracked accessed attributes and a benchmark of the session data to determine the attributes that are modified, and the distributed store may synchronize the primary state with the client state using only the modified attributes.
    Type: Application
    Filed: March 1, 2002
    Publication date: September 4, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susarla, Prakash Khemani
  • Publication number: 20030167331
    Abstract: A client-server system may include a distributed store configured to maintain a primary state of session data including one or more attributes. One or more other nodes may include other instances of the primary state. The system may compare the primary state to a benchmark primary state to generate a subset of the attributes of the session data that have been modified in the primary state. Another instance of the primary state may be synchronized with the primary state using the subset of the attributes. In one embodiment, the comparing may include performing binary differencing of binary representations of the primary state and the benchmark primary state to determine the modified attributes. In another embodiment, the comparing may include performing object graph differencing of object graph representations of the primary state and the benchmark primary state to determine the modified attributes.
    Type: Application
    Filed: March 1, 2002
    Publication date: September 4, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susarla, Prakash Khemani
  • Publication number: 20030167297
    Abstract: A client-server system may include a primary state of session data. Application servers may include client states of the session data and may access the primary state. The session data may include attributes. An application server may generate a set of attributes of the session data for synchronizing the primary state with the client state. The set may exclude immutable attributes. In some embodiment the set may further exclude attributes only immutably accessed and/or further exclude attributes that were not accessed. In some embodiments, the application server may use a binary comparison or an object graph comparison of the set of attributes to a benchmark of the client state to determine a subset of the generated set of attributes that are modified. The distributed store may synchronize the primary state with the client state using the generated set of attributes or, in some embodiments, using only the modified attributes.
    Type: Application
    Filed: March 1, 2002
    Publication date: September 4, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susarla, Prakash Khemani
  • Publication number: 20030167332
    Abstract: A client-server system may include a distributed store configured to maintain a primary state of session data. The system may also include one or more application servers that each may include a client state of the session data. The session data may include one or more attributes. In one embodiment, the client state may be accessible by clients of the system. The application server may compare the client state to a benchmark of the client state to determine a subset of the attributes that have been modified in the client state. In some embodiments, the comparison may be a binary differencing or object graph differencing of the client state and the benchmark of the client state to locate the modified attributes. The distributed store may synchronize the primary state with the client state using the subset of the attributes.
    Type: Application
    Filed: March 1, 2002
    Publication date: September 4, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susarla, Prakash Khemani
  • Publication number: 20030167333
    Abstract: A client-server system may include a primary state of session data. One or more application servers may include client states of the session data and may be configured to access the primary state. The session data may include one or more attributes. The distributed store may lock the primary state for access by a process executing on one of the application servers. Information may be maintained on which attributes are mutably accessed by the process. An object graph comparison of the mutably accessed attributes and a benchmark version of the attributes may be performed to determine which of the mutably accessed attributes were actually modified. The modified attributes may be used to synchronize the primary state with the client state.
    Type: Application
    Filed: March 1, 2002
    Publication date: September 4, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Ajay Kumar, Hanumantha Rao Susarla, Prakash Khemani
  • Publication number: 20020129115
    Abstract: A distributed shared memory multiprocessor computer system utilizes page placement policies to reduce data access latencies. Pages of memory are allocated to nodes in a distributed shared memory multiprocessor computer system. A placement policy database is maintained which indicates a placement policy for each page in the system. Upon an access to a page, the placement policy corresponding to the accessed page is determined and the indicated policy is acted upon. A Migrate on Next Touch policy provides that the next access to a page with this policy will cause the page to migrate to the node of the accessing CPU. A Memory Follows Lightweight Process (LWP) policy ensures that pages within a given address range are always local to a specified LWP. A Migrate on Every Touch policy provides that pages within a given address range are migrated to an accessing CPU on every touch. A Replicate on Remote Touch policy provides for replication of a page in the memory of each accessing CPU's domain.
    Type: Application
    Filed: March 7, 2001
    Publication date: September 12, 2002
    Inventors: Lisa K. Noordergraaf, Julia D. Harper, Prakash Khemani