×

Financial information exchange (FIX) protocol based load balancing

  • US 10,296,973 B2
  • Filed: 07/23/2014
  • Issued: 05/21/2019
  • Est. Priority Date: 07/23/2014
  • Status: Active Grant
First Claim
Patent Images

1. A method comprising:

  • maintaining, by a high frequency trading (HFT) platform;

    weighting factor information for a plurality customers of the HFT platform by tracking historical resource usage patterns for the plurality of customers including for each customer of the plurality of customers, observing Financial Information eXchange (FIX) sessions associated with the customer and updating a weighting factor for the customer as a function of one or more of network bandwidth used by the customer, a number of FIX sessions initiated by the customer, a volume of transactions requested by the customer per FIX session and an average number of transactions carried out by the customer during a predetermined timeframe;

    load information for a plurality of servers of the HFT platform, by tracking FIX sessions assigned to the plurality of servers and increasing a load factor for a particular server of the plurality of servers by (i) responsive to assignment of a particular FIX session associated with a particular customer to a particular server, increasing the load factor by the weighting factor for the particular customer and (ii) responsive to completion of the particular FIX session, decreasing the load factor by the weighting factor; and

    assignment information indicative of a particular server of the plurality of servers to which one or more FIX sessions of a particular client have been assigned by a load balancer fronting the plurality of servers; and

    receiving, by a host central processing unit (CPU) of the load balancer, a FIX packet of a FIX session relating to a transaction;

    identifying, by the host CPU of the load balancer, a customer of the plurality of customers associated with the FIX session by evaluating a value of a SenderCompID field of the FIX packet;

    when the FIX packet represents a first packet of a transport protocol flow associated with the FIX session and the assignment information indicates the customer is not assigned to any of the plurality of servers, performing, by the host CPU of the load balancer, load balancing processing, including;

    determining a weighting factor of the customer with reference to the weighting factor information;

    assigning the customer to a server of the plurality of servers by identifying a server of the plurality of servers that can accommodate the weighting factor based on the load information; and

    accelerating the transport protocol flow by offloading the transport protocol flow to a specialized transport protocol accelerator in a form of a network processor (NP), representing a dedicated subsystem of the load balancer colocated with the host CPU that is implemented in a form of an Application Specific Integrated Circuit (ASIC), by causing the NP to establish two independent transport protocol connections for the transport protocol flow, including a first transport protocol connection with a client device associated with the customer and a second transport protocol connection with the assigned server;

    when the FIX packet represents a second or subsequent packet of the transport protocol flow or the assignment information indicates the customer is assigned to the assigned server;

    avoiding the load balancing processing, by forwarding, by the host CPU of the load balancer, the FIX packet to the NP for processing; and

    wherein the NP reduces buffering requirements of the assigned server and shields the assigned server from transmission delays between the NP and the client device, by locally acknowledging data received by the NP from the assigned server on behalf of the client device and buffering the data received until the data received has been acknowledged by the client device.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×