gateaRecorder Change Log  Build 20
 All Files Pages
gateaRecorder Change Log

Gatea Record / Playback Platform

In the high-speed world of Market Data, being able to capture, playback and transform data has become a crucial part of today's application and business development.

Developers and systems managers can now leverage these capabilities using the Gatea Record / Playback Platform to ensure functionality as well baseline application thresholds and scaling necessities. The platform helps you answer the "what if" scenarios before they impact your production environment and business.

Using the platform you may:

gateaRecorder

The gateaRecorder records real-time market data from any service on the TREP or Gatea MD-Direct platform and writes to a proprietary tape. The tape is then read by the gateaReplay server and played back into either platform using any of the following parameters:

Change Log

Build 20 - 22-06-14

  1. MDD BDS
  2. Clean shutdown on WIN32
    • CgateaRecorderDlg.Stop() : No ExitProcess()
  3. Hook SubChannel::OnDead() and record it
  4. Check max name length:
    • Reject in IGLrecChan.AddRecord() if too long
  5. TapeLocker : ::int64_t _spinMtx
  6. ---------------— NEW LIBMDDWIRE ---------------—
    • Consume Unpacked Field List

Build 19 - 21-12-16

  1. GLrecControl._GetTicker():
    • Allow Ticker or Name : _rec_pAttrTkr / _rec_pAttrName
  2. GLxmlElem.getXxxValue_c()

Build 18 - 20-06-18

  1. libUPA : Reactor 5-min TTL:
    • RSSL_RC_CET_FD_CHANGE : Do nothing ...
    • Reactor.cpp : _empty
  2. GFC2
  3. Control on a per-channel basis:
    • _rec_pAttrChan
    • ModParams._chan
    • GLvecIrecChan &GLrecControl._iChans

Build 17 - 20-03-22

  1. ETA, not UPA
    • TREP.Auth.xxx -> GLrecSubDef._trepAuthXxx
    • Reactor, etc.
  2. pwrite() :
    • Pwrite *GLrecTape._pwrite
    • GLrecChanDef._bPwrite -> Sentinel._bPwrite
  3. Cloud :
    • auth ...
  4. GLthread.SetName()

Build 16 - 19-04-02

  1. <Chain name="0#AAPL*.U">
    • Nested Chain class in GLrecMDDChan / GLrecUPAChan
    • IGLrecChan.AddChain()
  2. core at 00:05 next day:
    • Multi-BDS adding unsynchronized
    • IGLrecChan.AddRecordBDS()
    • IGLrecChan._bdsAdd

Build 15 - 18-12-13

  1. unsynchronized LockedInsert() w/ 2+ threads
    • GLrecTape._nThr, not _dlg.thrRt().size() : DUH!!
  2. VS2017

Build 14 - 18-10-29

  1. core at startup - libUPA:
    • Mutex-protect Service._pending in OpenPending(), AddStream(), etc.

Build 13 - 18-09-13

  1. GLTime.parse() bug fix : Tape.EOD
  2. core at rollover:
    • GLrecTape._Insert() : Update TapeRecAndIdx._idx if rollover

Build 12 - 18-07-13

  1. License
  2. BDS
    • GLrecUPAChan.OnSymbol()
    • GLrecUPAChan.OnWorkerThread()
    • TREP.BDS = ( Service,Ticker ) = GLrecSubDef.TrepBDS()

Build 11 - 18-03-11

  1. Multi-day index bug:
    • GLrecTape.CheckFile() : Reset all _curIdx

Build 10 - 18-03-05

  1. EOD stuff:
    • GLrecTape.RollEOD()
    • CgateaRecorderDawg
    • GLrecChanDef._tEOD
    • GLrecTape.CheckFile() : Bool
  2. CheckFile() from consumer channel(s):
    • OnIdle() / SetIdleCallback()
  3. Multi-day:
    • TapeRecAndIdx
    • Sentinel
    • GLrecDailyHdr
  4. Bug : Log CPU regardless of latency logging in TapeDawg - DUH!!

-$ core : Bringing down GLrecRtThread:

Build 9 - 18-02-06

  1. Disconnect :
    • TREP.Bias -> GLrecSubDef._bias -> GLrecUPAChan.SetBias()
    • upaLogTy_PING
    • TREP.PingThread

Build 8 - 18-01-09

  1. Not opening all items:
    • SubChannel.GetStats()
  2. > 600K tickers in tape:
    • u_int64_t GLrecTape._RecSiz()
  3. _spinMtx fuck up:
    • Lock : ATOMIC_CMP_EXCH( &_spinMtx, 0, 1 )
    • Unlock : ATOMIC_CMP_EXCH( &_spinMtx, 1, 0 )

Build 7 - 17-12-15

  1. libMDDplatform : #ifdef UPA
  2. Multiple consumer channels:
    • GLrecTapeRec._channelID
    • GLrecTape.LockedInsert() if > 1 channel; Else Insert()
    • GLrecSubDef
    • GLvecRtThread
    • Tape.SpinLock - GLrecTape._spinMtx
  3. Performance:
    • Subscriber : SocketBufSizK
    • Subscriber : ParseFieldList
    • Tape.LockWindow
    • Tape.EnableRecIdx
    • Tape.HugePages
  4. No htonl() and friends
    • REC_SIG_005

-$ libUPA : Connect channel in libUPA library thread

2 channel performance : 334K msg/sec

Build 6 - 16-12-15

  1. Load tickers from <Ticker name="xxx"> or
  2. RTEDGE::SubChannel::SetUserStreamID()

Build 5 - 16-10-03

  1. Native GLrecTapeMsg struct:
    • pack (push,1 )
    • uint32_t GLrecTapeMsg._xxx : No htonl

Build 4 - 16-09-27

  1. gateaRecorder:
    • IGLrecChan
    • GLrecTapeHdr._type : UPA | MDDirect
    • IGLrecChan.Modify()
    • IGLrecChan._LoadDictFromFile()
    • GLrecTape.Insert( mddBuf, bImg )

Build 3 - 16-07-11

  1. EOD handling:
    • GLrecTapeHdr._tCreate
    • GLrecTapeHdr._tEOD
    • GLrecTape.CheckFile()
    • GLrecTape.NewFile()
    • GLrecTape.CloseFile()

Build 2 - 16-05-22

  1. Modify values:
    • GLrecControl::_OnModify
  2. SDS:
    • GLrecTapeRec._tDly
    • XML loader w/ delay interval
  3. GLrecTapeHdr._curTime

Build 1 - 16-05-12

  1. Created