Results 1 to 2 of 2

Thread: Advice on best performance strategy

  1. #1
    Join Date
    Aug 2010
    Posts
    23

    Default Advice on best performance strategy

    I have a scenario where I have to match records within a table on a FIFO basis. The table structure looks like below -

    id, request_type, qty, crtd_ts
    10, buy, 15, 15:00
    12, buy, 6, 15:25
    15, sell, 5, 15:35
    16, sell, 6, 16:00
    18, buy, 15, 16:30
    19, sell, 20, 16:33
    20, sell, 4, 17:45
    22, sell, 1, 18:02

    Given the sample data above - the idea is to be able to match records by buy and sell request types, starting with the oldest, and jumping through records orderly if necessary. So, in this case -

    id(10), will match with id(s) 15, 16 and 19
    id(12), will match with id 19
    id(18), will match with id(s) 19, 20 and 22

    This table will have many records, and I am wondering what my best approach is.

    My original plan was to have a db reader and the writer will match accordingly. The challenge (given the FIFO requirement) is that this will be a single-process, single-threaded implementation, and it will be slow.

    Will a master-slave implementation work ? Any other recommendations ?

    Thanks for any tips!

  2. #2
    Join Date
    Jun 2005
    Posts
    4,230

    Default

    Presumably it is actually pretty fast to read the data and net off the trades (that's just arithmetic), and the slowness comes in the backend processing? Maybe it would make sense to have an ItemReader that creates items that are actually groups of trades that net off each other (precisely or with some carry, maybe), and then farm out the backend processing of that to parallel processors?

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •