EP3552101B1

Distributed and transactionally deterministic data processing architecture

Abstract

This record has no abstract on file.

EP3552101B1, drawing sheet 1
Sheet 1 of 4

Term

11.1 yearsleft in the term

Expires 24 October 2037.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

15 claims: 2 independent, 13 dependent

  1. 1
    A computer implemented method comprising:receiving, by a transaction receiver over a network, a plurality of electronic data transaction request messages from a first client computer over a first data path (520) characterized by a first length and from a second client computer over a second data path (522) characterized by a second length longer than the first length, the plurality of electronic data transaction requests characterized by a first data size which, in concert with the first length of the first data path (520) yields a first latency between the first client computer and the transaction receiver and in concert with the second length yields a second latency between the second client computer and the transaction receiver, the second latency being greater than the first latency;augmenting, by the transaction receiver, each received electronic data transaction request message with sequence data indicative of an order in which each received electronic data transaction request message was received by the transaction receiver;transmitting, by the transaction receiver, the augmented electronic data transaction request messages to a first transaction processor over a third data path (524) characterized by a third length and to a second transaction processor, identical to the first transaction processor over a fourth data path (542) characterized by a fourth length, the fourth length being longer than the third length wherein a third latency of the third data path (524) is less than a fourth latency of the fourth data path (542);processing, by the first and second transaction processors, the received augmented electronic data transaction request messages in an order defined by the corresponding sequence data;generating, by the first and second transaction processors, a plurality of electronic data transaction result messages responsive to the electronic data transaction request messages, the plurality of electronic data transaction result messages being characterized by a second data size larger than the first data size;determining, automatically, that the first transaction processor and a first results arbiter (512) are geographically or logically closest to the first client computer and that the second transaction processor and a second results arbiter (513) are geographically or logically closest to the second client computer;transmitting, based on the determining, by the first transaction processor, the plurality of electronic data transaction result messages to the first results arbiter (512);transmitting, based on the determining, by the second transaction processor, the plurality of electronic data transaction result messages to the second results arbiter (513);transmitting, based on the determining, at least some of the electronic data transaction result messages from the first result arbiter (512) to the first client computer over a fifth data path (528) characterized by a fifth length;and transmitting, based on the determining, at least some of the electronic data transaction result messages from the second results arbiter (513) to the second client computer over a sixth data path (546) characterized by a sixth length substantially equal to the fifth length, wherein the second data size, in concert with the fifth length of the fifth data path (528) yields a fifth latency between the first results arbiter (512) and the first client computer and in concert with the sixth length yields a sixth latency between the second results arbiter (513) and the second client computer, the fifth and sixth latencies being substantially equal;wherein the third and fourth length are defined, based on the determination, to minimize the fifth and sixth length such that the fifth and sixth latency negate at least a portion of a difference between the first and second latencies and between the third and fourth latencies.
  2. 15
    A computer system arranged to perform the method of any preceding claim, the computer system comprising:means for receiving a plurality of electronic data transaction request messages from a first client computer over a first data path characterized by a first length and from a second client computer over a second data path characterized by a second length longer than the first length, the plurality of electronic data transaction requests characterized by a first data size which, in concert with the first length of the first data path (520) yields a first latency between the first client computer and the transaction receiver and in concert with the second length yields a second latency between the second client computer and the transaction receiver, the second latency being greater than the first latency;means for augmenting each received electronic data transaction request message with sequence data indicative of an order in which each received electronic data transaction request message was received by the transaction receiver;means for transmitting the augmented electronic data transaction request messages to a first transaction processor over a third data path characterized by a third length and to a second transaction processor over a fourth data path (542) characterized by a fourth length, the fourth length being longer than the third length wherein a third latency of the third data path (524) is less than a fourth latency of the fourth data path (542);means for processing the received augmented electronic data transaction request messages in an order defined by the corresponding sequence data;means for generating a plurality of electronic data transaction result messages responsive to the electronic data transaction request messages, the plurality of electronic data transaction result messages being characterized by a second data size larger than the first data size;means for determining, automatically, that the first transaction processor and a first results arbiter are geographically or logically closest to the first client computer and that the second transaction processor and a second results arbiter are geographically or logically closest to the second client computer;means for transmitting, based on the determining, by the first transaction processor, the plurality of electronic data transaction result messages to the first results arbiter;means for transmitting, based on the determining, by the second transaction processor, the plurality of electronic data transaction result messages to the second results arbiter;means for transmitting, based on the determining, at least some of the electronic data transaction result messages from the first result arbiter to the first client computer over a fifth data path (528) characterized by a fifth length;and means for transmitting, based on the determining, at least some of the electronic data transaction result messages from the second transaction processor to the second client computer over a sixth data path (546) characterized by a sixth length substantially equal to the fifth length, wherein the second data size, in concert with the fifth length of the fifth data path (528) yields a fifth latency between the first results arbiter and the first client computer and in concert with the sixth length yields a sixth latency between the second results arbiter and the second client computer, the fifth and sixth latencies being substantially equal;wherein the third and fourth length are defined, based on the determination, to minimize the fifth and sixth length such that the fifth and sixth latency negate at least a portion of a difference between the first and second latencies and between the third and fourth latencies.