Patents by Inventor Aman Chaudhary

Aman Chaudhary 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: 11528322
    Abstract: Improving load distribution and consistency is provided. A device intermediary to clients and servers can maintain bit values indicative of server availability stored in indices arranged in various levels. A lowest level comprises indices corresponding to a list of servers repeated multiple times. Each index in a higher level maps to a set of indices in a lower level. The device can receive a request from a client to access a server. The device can identify an index in a highest level. The device can determine a second index in the highest level that is after the index in the highest level and has a bit value indicating server availability. The device can identify an index in the lowest level mapping to the second index in the highest level. The device can select a server corresponding to the index in the lowest level.
    Type: Grant
    Filed: August 20, 2021
    Date of Patent: December 13, 2022
    Assignee: Citrix Systems, Inc.
    Inventors: Aman Chaudhary, Raghav Somanahalli Narayana, Arunkanth Abbigari, Rajesh Joshi, Vemula Srimithra, Vinay Shivananda
  • Patent number: 11489772
    Abstract: Improving distribution of traffic from clients to servers is provided. A device intermediary to a plurality of clients and a plurality of servers can receive a request from a client of the plurality of clients to access one of the plurality of servers. The device can determine a hash value based on at least a portion of the request received from the client. The device can identify an index of a plurality of indices listing the plurality of servers repeated a plurality of times in a deterministic shuffled order. The device can apply a cache array routing protocol (CARP) algorithm to a second plurality of servers listed in a subset of the plurality of indices around the index. The device can select a server from the second plurality of servers with a highest hash value based on the application of the CARP algorithm.
    Type: Grant
    Filed: August 10, 2021
    Date of Patent: November 1, 2022
    Assignee: Citrix Systems, Inc.
    Inventors: Aman Chaudhary, Vemula Srimithra, Vinay Shivananda, Raghav Somanahalli Narayana, Arunkanth Abbigari, Anuradha Gupta, Rajesh Joshi
  • Publication number: 20210328862
    Abstract: Described herein are systems and methods for updating configuration of a device based on changes to microservices. A device may receive a request via a desired state application programming interface (API) to update a configuration of the device to manage a desired set of instances of microservices. The device may identify from the request, a first set of endpoint information for each instance of a microservice in the desired set of instances of microservices. The first set of endpoint information may include an internet protocol (IP) address and port of an endpoint of a respective instance of the microservice. The first set or second set of endpoint information may include a weight for each instance of the microservice.
    Type: Application
    Filed: July 1, 2021
    Publication date: October 21, 2021
    Applicant: Citrix Systems, Inc.
    Inventors: Swetha Garipally, Pradeep Gangishetty, Chandra Keerthi Reddy, Subrata Sarkar, Vemula Srimithra, Vinay Shivananda, Raghav S N, Aman Chaudhary
  • Patent number: 11140073
    Abstract: Described embodiments provide systems and methods for routing client requests. A device may be arranged intermediary to a plurality of clients and a domain name system (DNS) controller. The device may generate a query for the DNS controller. The query may correspond to a service to be accessed by the clients. The device may receive, from the DNS controller, a response to the query. The response may include a value used by the device to route respective client requests for accessing the service to a corresponding version of a plurality of versions of the service. The device may receive, from a client, a client request for accessing the service. The device may route the client request to one of the versions of the service according to the value included in the response to manage traffic between various versions of the service.
    Type: Grant
    Filed: December 5, 2019
    Date of Patent: October 5, 2021
    Assignee: Citrix Systems, Inc.
    Inventors: Vinay Shivananda, Raghav S. N, Aman Chaudhary, Bhavana Shobhana
  • Patent number: 11099826
    Abstract: Methods and systems for performing application deployments in a computing environment are presented herein. One or more components of the computing environment may perform a canary deployment of an updated version of an application. As the canary deployment is performed, one or more determinations as to whether to continue, stop, or complete the canary deployment may be performed. These determinations may be based on one or more metrics determined by an application delivery controller of the computing environment. The application delivery controller may be configured to divert or forward traffic to application resources that execute the updated version. Additionally, the canary deployment may be performed in an automated fashion.
    Type: Grant
    Filed: October 14, 2019
    Date of Patent: August 24, 2021
    Assignee: Citrix Systems, Inc.
    Inventors: Chiradeep Vittal, Rajesh Joshi, Aman Chaudhary, Raghav SN, Ruchit Gupta, Bhavana Shobhana, Sanchita Ghai
  • Patent number: 11057271
    Abstract: Described herein are systems and methods for updating configuration of a device based on changes to microservices. A device may receive a request via a desired state application programming interface (API) to update a configuration of the device to manage a desired set of instances of microservices. The device may identify from the request, a first set of endpoint information for each instance of a microservice in the desired set of instances of microservices. The first set of endpoint information may include an internet protocol (IP) address and port of an endpoint of a respective instance of the microservice. The first set or second set of endpoint information may include a weight for each instance of the microservice.
    Type: Grant
    Filed: June 20, 2019
    Date of Patent: July 6, 2021
    Assignee: Citrix Systems, Inc.
    Inventors: Swetha Garipally, Pradeep Gangishetty, Chandra Keerthi Reddy, Subrata Sarkar, Vemula Srimithra, Vinay Shivananda, Raghav S N, Aman Chaudhary
  • Patent number: 11044174
    Abstract: Disclosed herein includes a system, a method, and a device for disabling services in a cluster. A master node of a plurality of nodes of a cluster can receive a disable instruction for a service of the cluster. The master node can transmit to the plurality of nodes a transition instruction to instruct the other nodes to stop accepting requests from one or more client devices for the service. The master node can receive, from each of the plurality of nodes, a client count value indicative of a number of current client connections from the one or more client devices to one or more respective nodes of the plurality of nodes. The master node can determine that the client count value is a zero value for each node of the plurality of nodes. The master node can transmit an out of service instruction to each node of the plurality of nodes to disable the service on the cluster.
    Type: Grant
    Filed: October 11, 2019
    Date of Patent: June 22, 2021
    Assignee: Citrix Systems, Inc.
    Inventors: Aman Chaudhary, Vemula Srimithra, Raghav S N, Rajesh Joshi
  • Publication number: 20210176167
    Abstract: Described embodiments provide systems and methods for routing client requests. A device may be arranged intermediary to a plurality of clients and a domain name system (DNS) controller. The device may generate a query for the DNS controller. The query may correspond to a service to be accessed by the clients. The device may receive, from the DNS controller, a response to the query. The response may include a value used by the device to route respective client requests for accessing the service to a corresponding version of a plurality of versions of the service. The device may receive, from a client, a client request for accessing the service. The device may route the client request to one of the versions of the service according to the value included in the response to manage traffic between various versions of the service.
    Type: Application
    Filed: December 5, 2019
    Publication date: June 10, 2021
    Inventors: Vinay Shivananda, Raghav S. N, Aman Chaudhary, Bhavana Shobhana
  • Publication number: 20210109734
    Abstract: Methods and systems for performing application deployments in a computing environment are presented herein. One or more components of the computing environment may perform a canary deployment of an updated version of an application. As the canary deployment is performed, one or more determinations as to whether to continue, stop, or complete the canary deployment may be performed. These determinations may be based on one or more metrics determined by an application delivery controller of the computing environment. The application delivery controller may be configured to divert or forward traffic to application resources that execute the updated version. Additionally, the canary deployment may be performed in an automated fashion.
    Type: Application
    Filed: October 14, 2019
    Publication date: April 15, 2021
    Inventors: Chiradeep Vittal, Rajesh Joshi, Aman Chaudhary, Raghav SN, Ruchit Gupta, Bhavana Shobhana, Sanchita Ghai
  • Publication number: 20210067424
    Abstract: Disclosed herein includes a system, a method, and a device for disabling services in a cluster. A master node of a plurality of nodes of a cluster can receive a disable instruction for a service of the cluster. The master node can transmit to the plurality of nodes a transition instruction to instruct the other nodes to stop accepting requests from one or more client devices for the service. The master node can receive, from each of the plurality of nodes, a client count value indicative of a number of current client connections from the one or more client devices to one or more respective nodes of the plurality of nodes. The master node can determine that the client count value is a zero value for each node of the plurality of nodes. The master node can transmit an out of service instruction to each node of the plurality of nodes to disable the service on the cluster.
    Type: Application
    Filed: October 11, 2019
    Publication date: March 4, 2021
    Inventors: Aman Chaudhary, Vemula Srimithra, Raghav S. N, Rajesh Joshi
  • Publication number: 20200403853
    Abstract: Described herein are systems and methods for updating configuration of a device based on changes to microservices. A device may receive a request via a desired state application programming interface (API) to update a configuration of the device to manage a desired set of instances of microservices. The device may identify from the request, a first set of endpoint information for each instance of a microservice in the desired set of instances of microservices. The first set of endpoint information may include an internet protocol (IP) address and port of an endpoint of a respective instance of the microservice. The first set or second set of endpoint information may include a weight for each instance of the microservice.
    Type: Application
    Filed: June 20, 2019
    Publication date: December 24, 2020
    Inventors: Swetha Garipally, Pradeep Gangishetty, Chandra Keerthi Reddy, Subrata Sarkar, Vemula Srimithra, Vinay Shivananda, Raghav S. N., Aman Chaudhary
  • Patent number: 9692820
    Abstract: The present disclosure is directed towards a system and method for handling limit parameters for spillover conditions of virtual servers across multiple nodes in a cluster system. The cluster system may comprise a plurality of nodes, wherein one node may be elected as a master node and the remaining nodes are designated as slave nodes. The master node may monitor the cluster system and establish limit parameters for the cluster system and apply them to the plurality of nodes. The limit parameters may be based upon the number of open connections in the cluster system and the number of nodes. The master node may establish an ideal quota value for each node to balance the number of open connections in the cluster.
    Type: Grant
    Filed: April 3, 2014
    Date of Patent: June 27, 2017
    Assignee: CITRIX SYSTEMS, INC.
    Inventors: Aman Chaudhary, Manikam Muthiah
  • Patent number: 9577892
    Abstract: The present application is directed towards systems and methods for providing monitoring in a cluster system. The systems and methods distribute the monitors for a service and the ownership of a service across a cluster system comprising a plurality of nodes. The nodes in the cluster can be configured to have different sets of virtual servers (sometimes referred to as “vservers”) and services. The ownership and monitoring of the services can be distributed among all the nodes in the cluster. The system can identify a service in a cluster system and identify a master node that has ownership of the service. The master node can transmit a service status update to other nodes in the cluster system.
    Type: Grant
    Filed: April 3, 2014
    Date of Patent: February 21, 2017
    Assignee: Citrix Systems, Inc.
    Inventors: Aman Chaudhary, Manikam Muthiah
  • Patent number: 9088501
    Abstract: The present invention is directed towards systems and methods for load balancing by a multi-core device intermediary between clients and services. The device may establish sub-slots in each slot of the device's packet engines. The number of sub-slots may correspond to the packet engine count. Each slot may track a different number of active connections allocated to a service. The device may assign a first and second service to each packet engine in a first slot corresponding to no active connections. These services may be assigned to different sub-slots in adjacent packet engines. The device may update, responsive to allocation of a first active connection to the first service, the first service from a sub-slot in the first slot of a first packet engine, to a corresponding sub-slot in a second slot. The second slot may correspond to one active connection allocated to the first service.
    Type: Grant
    Filed: July 31, 2013
    Date of Patent: July 21, 2015
    Assignee: CITRIX SYSTEMS, INC.
    Inventors: Aman Chaudhary, Vishnu Itta, Devesh Prakash, Manikam Muthiah, Jaidev Sridhar
  • Publication number: 20150039763
    Abstract: The present invention is directed towards systems and methods for load balancing by a multi-core device intermediary between clients and services. The device may establish sub-slots in each slot of the device's packet engines. The number of sub-slots may correspond to the packet engine count. Each slot may track a different number of active connections allocated to a service. The device may assign a first and second service to each packet engine in a first slot corresponding to no active connections. These services may be assigned to different sub-slots in adjacent packet engines. The device may update, responsive to allocation of a first active connection to the first service, the first service from a sub-slot in the first slot of a first packet engine, to a corresponding sub-slot in a second slot. The second slot may correspond to one active connection allocated to the first service.
    Type: Application
    Filed: July 31, 2013
    Publication date: February 5, 2015
    Applicant: Citrix Systems, Inc.
    Inventors: Aman Chaudhary, Vishnu Itta, Devesh Prakash, Manikam Muthiah, Jaidev Sridhar
  • Publication number: 20140304399
    Abstract: The present application is directed towards systems and methods for providing monitoring in a cluster system. The systems and methods distribute the monitors for a service and the ownership of a service across a cluster system comprising a plurality of nodes. The nodes in the cluster can be configured to have different sets of virtual servers (sometimes referred to as “vservers”) and services. The ownership and monitoring of the services can be distributed among all the nodes in the cluster. The system can identify a service in a cluster system and identify a master node that has ownership of the service. The master node can transmit a service status update to other nodes in the cluster system.
    Type: Application
    Filed: April 3, 2014
    Publication date: October 9, 2014
    Applicant: Citrix Systems, Inc.
    Inventors: Aman Chaudhary, Manikam Muthiah
  • Publication number: 20140304352
    Abstract: The present disclosure is directed towards a system and method for handling limit parameters for spillover conditions of virtual servers across multiple nodes in a cluster system. The cluster system may comprise a plurality of nodes, wherein one node may be elected as a master node and the remaining nodes are designated as slave nodes. The master node may monitor the cluster system and establish limit parameters for the cluster system and apply them to the plurality of nodes. The limit parameters may be based upon the number of open connections in the cluster system and the number of nodes. The master node may establish an ideal quota value for each node to balance the number of open connections in the cluster.
    Type: Application
    Filed: April 3, 2014
    Publication date: October 9, 2014
    Applicant: Citrix Systems, Inc.
    Inventors: Aman Chaudhary, Manikam Muthiah