RsslConnectOptions params for a busy consumer app
for a very busy consumer application, what's suggested value for RsslConnectOptions.numInputBuffers and sysRecBufSize? Presume guaranteedOutputBuffers does not matter. Any other params do I need to change?
Best Answer
-
Much of this comes down to how efficiently the application is processing the content as well as the quality of the network connection. I will provide information about what these control and how they work together, but there is not really any magic bullet setting that works in every environment - you can use the ETA performance tools that are provided with the product to run up some high performance numbers in your environment and see what works best for you.
sysRecvBufSize controls the TCP SO_RCVBUF size, which determines the maximum amount of bytes that TCP/IP can take off of the network without the user reading any data. As the application uses the read operations to take data out of TCP's receive buffer, this frees up more space that allows it to read more from the network. This is a sliding window protocol (https://en.wikipedia.org/wiki/Sliding_window_protocol)
numInputBuffers controls the size of ETA's internal input buffer - when the user calls the rsslRead method, ETA attempts to read as many bytes as possible from TCPs receive buffer in a single socket read operation. These bytes are then put into the input buffer, allowing TCP to read as much as it can again while the user processes out of ETA's input buffer. The numInputBuffers value will basically be multiplied by the maxFragmentSize configuration of the server side of the connection to create one large continuous block of memory to read into. After reading from TCP, subsequent calls to rsslRead will go through ETA's input buffer and return pointers to the messages already read from TCP. When the end of the input buffer is hit, rsslRead will then use socket read to pull a large chunk of bytes from TCP again.
Having a numInputBuffers value that gives an input buffer that matches the SO_RCVBUF size can theoretically allow ETA to drain TCPs receive buffer with a single rsslRead operation, but this generally depends on how much data is currently available in TCP and again depends on network and application processing conditions.
Hope this helps,
Brian
3
Categories
- All Categories
- 6 AHS
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛