File Stream

Go To Product Page

In computing, a “file” is a fundamental Input/Output (IO) primitive offered by operating systems, representing an abstract device that supports standardized read and write operations. Beyond physical files on disk, this abstraction includes various IO endpoints such as named pipes (FIFOs in UNIX), windows mailslots, serial ports, device devices and other objects accessible via a filesystem names. The File Stream plugin facilitates direct interactions with these file-like objects.

Basic Setup

  1. In IO Ninja, click the “New Session” dropdown and select a new “File Stream” session

_images/file-stream-new-session.png
  1. Enter the name of your file, e.g. a pipe or mailslot into the “File:” field.

For example, for the a pipe called “my-pipe-server”, you would type \\.\pipe\my-pipe-server.

_images/file-stream-file.png
  1. Set the file access setting from the “Access:” dropdown menu.

Some devices are read-only, meaning they cannot be opened for writing. Mailslot files, for instance, can be opened in write-only mode because the server side of the mailslot is read-only. Similarly, if you want to simply dump data to a disk file, you must open it as write-only. Otherwise, IO Ninja will read the contents of the file and close it once the reading is complete.

_images/file-stream-access.png
  1. Press the “Open” button to the right of the “File:” and “Access:” fields.

_images/file-stream-open.png
  1. Communicate with the file as required using the Transmit pane.

_images/file-stream-transmit.png

Settings

_images/file-stream-settings.png

Setting

Description

Default

File name

Specify the file name to open.

Access mode

Access mode for the file, e.g., “Read/Write”, “Read-only”, and “Write-only”.

Read/Write

Read parallelism

Maximum number of read requests to submit to tdevmon at the same time. Having more than one pending read at a time helps prevent notification loss in IO-intensive scenarios (after filling one user buffer, tdevmon can immediately switch to the next one without any waiting). Increasing this number beyond 4 usually won’t yield any extra gains.

4

Read block size (B)

The size of each individual read block submitted to tdevmon.

4KB

RX buffer size (B)

The full size of the incoming data (RX) buffer. Affects read throughput.

16KB

TX buffer size (B)

The full size of the outbound data (TX) buffer. Affects write throughput.

16KB

Keep read block size

Don’t merge read blocks in RX buffer. Incoming data blocks coming in quick succession can be merged together so that IO Ninja writes them to log as a whole. When this option is set to True, blocks are written to the log without merging, i.e., exactly as they are received from the underlying transport..

False

Keep write block size

Don’t merge write blocks in TX buffer. Outbound data blocks sent in quick succession can be merged together before submission to the underlying transport. When this option is set to True, blocks are submitted to the transport without merging, i.e., exactly as they are sent by the Transmit or Script panes..

False

RX buffer full notifications

Toggle warnings in log about the incoming data (RX) buffer getting full.

False