Patents by Inventor Anil Shetty

Anil Shetty 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: 8065559
    Abstract: The present invention provides methods and systems for performing load balancing via a plurality of virtual servers upon a failover using metrics from a backup virtual server. The methods and systems described herein provide systems and methods for an appliance detecting that a first virtual server of a plurality of virtual servers having one or more backup virtual servers load balanced by an appliance is not available, identifying at least a first backup virtual server of a one or more backup virtual servers of the first virtual server is available, maintaining a status of the first virtual server as available in response to the identification, obtaining one or more metrics from the first backup virtual server of a one or more backup virtual servers, and determining the load across the plurality of virtual servers using the metrics obtained from the first backup virtual server associated with the first virtual server.
    Type: Grant
    Filed: May 29, 2008
    Date of Patent: November 22, 2011
    Assignee: Citrix Systems, Inc.
    Inventors: Sandeep Kamath, Josephine Suganthi, Sergey Verzunov, Murali Raja, Anil Shetty
  • Publication number: 20110222535
    Abstract: Methods for using a client agent to route client requests among a plurality of appliances using transport layer information include the steps of: establishing, by a client agent executing on a client, a first transport layer connection with a first appliance of a plurality of appliances, the first appliance providing access to one or more servers; establishing, by a client agent executing on the client, a second transport layer connection with a second appliance of a plurality of appliances, the second appliance providing access to one or more servers; intercepting, by the client agent, a packet transmitted by the client; selecting, by the client agent, one of the connections to transmit the intercepted packet based on a characteristic of at least one of: the transport layer connections, the plurality of appliances, or the servers; and transmitting the intercepted packet via the selected connection.
    Type: Application
    Filed: April 25, 2011
    Publication date: September 15, 2011
    Inventors: Josephine Suganthi, Junxiao He, Sergey Verzunov, Anil Shetty, Charu Venkatraman
  • Publication number: 20110153938
    Abstract: The present invention is directed towards systems and methods for providing static proximity load balancing via a multi-core intermediary device. An intermediary device providing global server load balancing identifies a size of a location database comprising static proximity information. The intermediary device stores the location database to an external storage of the intermediary device responsive to determining the size of the location database is greater than a predetermined threshold. A first packet processing engine on the device receives a domain name service request for a first location, determines that proximity information for the first location is not stored in a first memory cache, transmits a request to a second packet processing engine for proximity information of the first location, and transmits a request to the external storage for proximity information of the first location responsive to the second packet processing engine not having the proximity information.
    Type: Application
    Filed: December 23, 2009
    Publication date: June 23, 2011
    Inventors: Sergey Verzunov, Anil Shetty, Josephine Suganthi
  • Publication number: 20110153937
    Abstract: The present disclosure presents systems and methods for maintaining original source and destination IP addresses of a request while performing intermediary cache redirection. An intermediary receives a request from a client destined to a server identifying a client IP address as a source IP address and a server IP address as a destination IP address. The intermediary transmits the request to a cache server, the request maintaining original IP addresses and identifying a MAC address of the cache server as the destination MAC address. The intermediary receives the request from the cache server responsive to a cache miss, the received request maintaining the original source and destination IP addresses. The intermediary identifying that the third request is coming from the cache server via one or more data link layer properties of the third transport layer connection.
    Type: Application
    Filed: December 23, 2009
    Publication date: June 23, 2011
    Inventors: Saravanakumar Annamalaisami, Anil Shetty, Josephine Suganthi, Akshat Choudhary
  • Patent number: 7953889
    Abstract: Methods for using a client agent to route client requests among a plurality of appliances using transport layer information include the steps of: establishing, by a client agent executing on a client, a first transport layer connection with a first appliance of a plurality of appliances, the first appliance providing access to one or more servers; establishing, by a client agent executing on the client, a second transport layer connection with a second appliance of a plurality of appliances, the second appliance providing access to one or more servers; intercepting, by the client agent, a packet transmitted by the client; selecting, by the client agent, one of the connections to transmit the intercepted packet based on a characteristic of at least one of: the transport layer connections, the plurality of appliances, or the servers; and transmitting the intercepted packet via the selected connection.
    Type: Grant
    Filed: August 3, 2006
    Date of Patent: May 31, 2011
    Assignee: Citrix Systems, Inc.
    Inventors: Josephine Suganthi, Junxiao He, Sergey Verzunov, Anil Shetty, Charu Venkatraman
  • Patent number: 7926116
    Abstract: A method for enabling decentralized dynamic load balancing among a plurality of appliances providing access to a plurality of sites, each site comprising a local area network and at least one server includes: determining, by a first appliance, a first number of services currently available for access via a local area network connected to the first appliance; receiving, by the first appliance from a second appliance, a communication indicating a second number of services currently available for access via a local area network connected to the second appliance; receiving, by the first appliance, a plurality of requests to connect to a service; determining, by the first appliance, a weight to be assigned to the second appliance, wherein the determination is responsive to the second number; and forwarding, by the first appliance to the second appliance, a subset of the plurality of requests, wherein the number of requests comprising the subset is determined in response to the determined weight.
    Type: Grant
    Filed: October 29, 2009
    Date of Patent: April 12, 2011
    Assignee: Citrix Systems, Inc.
    Inventors: Sandeep Kamath, Josephine Suganthi, Anil Shetty, Sergey Verzunov, Murali Raja
  • Publication number: 20110066718
    Abstract: An apparatus, method and computer program product for efficiently pooling network client-server connections. The apparatus is implemented within an interface unit connecting a plurality of servers to the Internet, which is in turn connected to a plurality of clients. The method includes the steps of opening a connection between a first client and the interface unit; determining whether a connection between the interface unit and a server is finished being utilized by the first client; opening a connection between a second client and the interface unit; if no free connection is open between the interface unit and the server, then allowing the second client to access information on the server via the same connection utilized by the first client without waiting for the first client to initiate closing the connection; and delinking the connections between the first and second clients and the interface unit while keeping open the connection between the interface unit and the server.
    Type: Application
    Filed: August 12, 2010
    Publication date: March 17, 2011
    Inventors: Michel K. Susai, Rajiv Sinha, Anil Shetty
  • Publication number: 20110060840
    Abstract: An apparatus, method and computer program product for guaranteeing network client-server response time while providing a way of putting the client on-hold when the response time temporarily prohibits access to the requested server. The apparatus is implemented within an interface unit connecting a plurality of servers and an on-hold server to the Internet, which is connected to a plurality of clients.
    Type: Application
    Filed: September 13, 2010
    Publication date: March 10, 2011
    Inventors: Michel K. Susai, Anil Shetty, Wanqun Bao, Jose K. Raphel, Rajiv Sinha, Venugopal Botlaguduru, Sivaprasad R. Udupa, Vamsimohan Korrapati, Sergey Verzunov
  • Publication number: 20100332594
    Abstract: The present invention is directed towards systems and methods for dynamically deploying and executing acceleration functionality on a client to improve the performance and delivery of remotely accessed applications. The acceleration program of the present invention is automatically installed and executed on a client in a manner transparent to and seamless with the operation of the client. An appliance may intercept a request of the client to establish a communication session or connection with a server, and transmit the acceleration program to the client. In some cases, the appliance determines whether the application being accessed by the client can be accelerated and only provides the acceleration program if the application can be accelerated. Upon receipt of the acceleration program, the client automatically performs a silent installation of the acceleration program and executes the acceleration program upon completion of the installation.
    Type: Application
    Filed: September 2, 2010
    Publication date: December 30, 2010
    Inventors: Prabakar Sundarrajan, Junxiao He, Sergey Verzunov, Charu Venkatraman, Anil Shetty
  • Publication number: 20100322252
    Abstract: The present application is directed towards systems and methods for handling a multi-connection protocol communication between a client and a server traversing a multi-core system. The multi-connection protocol comprises a first connection and a second connection, which may be used respectively for control communications and data communications. Because different cores in the multi-core system may handle the first connection and second connection, the present invention provides systems and methods for efficiently coordinating protocol management between a plurality of cores.
    Type: Application
    Filed: June 22, 2009
    Publication date: December 23, 2010
    Inventors: Josephine Suganthi, Anil Shetty
  • Publication number: 20100322250
    Abstract: The present invention is directed towards systems and methods for using a distributed hash table to maintain the same configuration and resource persistency across a plurality of cores in a multi-core system. The distributed hash table includes a plurality of partitions, each partition being owned by a respective core of the multi-core system. A core may establish resources in the partition it owns. A core may request other cores to establish resources in the partitions they own and send resource information to the core. The core may locally cache the resource information.
    Type: Application
    Filed: June 22, 2009
    Publication date: December 23, 2010
    Inventors: Anil Shetty, Josephine Suganthi, Prakash Khemani
  • Publication number: 20100325263
    Abstract: Systems and methods for consolidating metrics and statistics used for load balancing by a plurality of cores of a multi-core intermediary are disclosed. A timer operating on each packet engine of each core in a multi-core system may expire. A consolidator may store, responsive to expiration of the timer, a set of counter values from each of the packet engines to a first storage location. The consolidator may send to each packet engine a message to update the set of counter values. The consolidator may, upon completion of updating the set of counter values by the packet engines, send a second message to the packet engines that includes a consolidated set of counter values determined based on the updated set of values from each packet engine. Each packet engine may establish settings and parameters for load balancing based on the consolidated set of counter values.
    Type: Application
    Filed: June 22, 2009
    Publication date: December 23, 2010
    Inventors: Murali Raja, Anil Shetty, Josephine Suganthi, Saravana Annamalaisami
  • Patent number: 7836191
    Abstract: An apparatus, method and computer program product for guaranteeing network client-server response time while providing a way of putting the client on-hold when the response time temporarily prohibits access to the requested server. The apparatus is implemented within an interface unit connecting a plurality of servers and an on-hold server to the Internet, which is connected to a plurality of clients.
    Type: Grant
    Filed: April 19, 2004
    Date of Patent: November 16, 2010
    Inventors: Michel K. Susai, Anil Shetty, Wanqun Bao, Jose K. Raphel, Rajiv Sinha, Venugopal Botlaguduru, Sivaprasad R. Udupa, Vamsimohan Korrapati, Sergey Verzunov
  • Publication number: 20100284411
    Abstract: The present solution is related to a method for distributing flows of network traffic across a plurality of packet processing engines executing on a corresponding core of a multi-core device. The method includes receiving, by a multi-core device intermediary to clients and servers, a packet of a first flow of network traffic between a client and server. The method also includes assigning, by a flow distributor of the multi-core device, the first flow of network traffic to a first core executing a packet processing engine and distributing the packet to this core. The flow distributor may distribute packets of another or second flow of traffic between another client and server to a second core executing a second packet processing engine. When a packet for the flow of traffic assigned to the first core is received, such as a third packet, the flow distributor distributes this packet to the first core.
    Type: Application
    Filed: April 23, 2010
    Publication date: November 11, 2010
    Inventors: Rajiv Mirani, Rajiv Sinha, Abhishek Chauhan, Anil Shetty
  • Publication number: 20100262650
    Abstract: Described are methods and systems for managing the connections between a client, an intermediary appliance and a server, so that asynchronous messages can be transmitted over HTTP from the server to a client. When a connection is established between a client and an intermediary, and the intermediary and a server to establish a logical client-server connection, that logical client-server connection is labeled and not maintained, while the connection between the client and the intermediary is maintained. Messages generated by the server and destined for the client are transmitted to the intermediary along with the connection label. The intermediary can then use the connection label to determine which client should receive the message.
    Type: Application
    Filed: October 8, 2009
    Publication date: October 14, 2010
    Inventors: Abhishek Chauhan, Ravi Kodamuru, Josephine Suganthi, Murali Raja, Anil Shetty
  • Patent number: 7810089
    Abstract: The present invention is directed towards systems and methods for dynamically deploying and executing an acceleration program on a client to improve the performance and delivery of remotely accessed applications. The acceleration program of the present invention is automatically installed and executed on a client in a manner transparent to and seamless with the operation of the client. An appliance may intercept a request of the client to establish a communication session or connection with a server, and transmit the acceleration program to the client. In some cases, the appliance determines whether the application being accessed by the client can be accelerated and only provides the acceleration program if the application can be accelerated. Upon receipt of the acceleration program, the client automatically performs a silent installation of the acceleration program and executes the acceleration program upon completion of the installation.
    Type: Grant
    Filed: December 30, 2005
    Date of Patent: October 5, 2010
    Assignee: Citrix Systems, Inc.
    Inventors: Prabakar Sundarrajan, Junxiao He, Sergey Verzunov, Charu Venkatraman, Anil Shetty
  • Patent number: 7801978
    Abstract: An apparatus, method and computer program product for efficiently pooling network client-server connections. The apparatus is implemented within an interface unit connecting a plurality of servers to the Internet, which is in turn connected to a plurality of clients. The method includes the steps of opening a connection between a first client and the interface unit; determining whether a connection between the interface unit and a server is finished being utilized by the first client; opening a connection between a second client and the interface unit; if no free connection is open between the interface unit and the server, then allowing the second client to access information on the server via the same connection utilized by the first client without waiting for the first client to initiate closing the connection; and delinking the connections between the first and second clients and the interface unit while keeping open the connection between the interface unit and the server.
    Type: Grant
    Filed: October 18, 2000
    Date of Patent: September 21, 2010
    Assignee: Citrix Systems, Inc.
    Inventors: Michel K. Susai, Rajiv Sinha, Anil Shetty
  • Publication number: 20100191851
    Abstract: In a method and appliance for determining responsiveness of a service via a particular protocol, a device intermediary to a plurality of clients and a plurality of services determines response times from each of a plurality of services to respond to requests via a first type of protocol of a plurality of protocols. The device calculates an average response time for the first type of protocol from each of the response times of the plurality of services. The device establishes a predetermined threshold for which a response time of a service for the first type of protocol may deviate from the average response time. The device identifies a service as available responsive to determining that a deviation of the response time of the service from the average response falls within the predetermined threshold.
    Type: Application
    Filed: April 2, 2010
    Publication date: July 29, 2010
    Inventors: Murali RAJA, Ravi KONDAMURU, Josephine SUGANTHI, Sergey VERZUNOV, Sandeep KAMATH, Anil SHETTY
  • Patent number: 7720954
    Abstract: In a method and appliance for using a dynamic response time to determine responsiveness of one or more network services on a server, a monitor determines a response time for each of one or more network services. The monitor establishes an average response time based on the determined response time for each of the one or more network services. The monitor associates with the established average response time a predetermined threshold for which the response time of the one or more network services may deviate from the average response time and maintain an indication of responsiveness. The monitor monitors the response time of the one or more network services to one or more requests. The monitor determines that the response time of the one or more network services deviates from the average response time by the predetermined threshold. The monitor indicates that the one or more network services are unavailable.
    Type: Grant
    Filed: August 3, 2006
    Date of Patent: May 18, 2010
    Assignee: Citrix Systems, Inc.
    Inventors: Murali Raja, Ravi Kondamuru, Josephine Suganthi, Sergey Verzunov, Sandeep Kamath, Anil Shetty
  • Publication number: 20100036951
    Abstract: A method for enabling decentralized dynamic load balancing among a plurality of appliances providing access to a plurality of sites, each site comprising a local area network and at least one server includes: determining, by a first appliance, a first number of services currently available for access via a local area network connected to the first appliance; receiving, by the first appliance from a second appliance, a communication indicating a second number of services currently available for access via a local area network connected to the second appliance; receiving, by the first appliance, a plurality of requests to connect to a service; determining, by the first appliance, a weight to be assigned to the second appliance, wherein the determination is responsive to the second number; and forwarding, by the first appliance to the second appliance, a subset of the plurality of requests, wherein the number of requests comprising the subset is determined in response to the determined weight.
    Type: Application
    Filed: October 29, 2009
    Publication date: February 11, 2010
    Inventors: Sandeep Kamath, Josephine Suganthi, Anil Shetty, Sergey Verzunov, Murali Raja