libmdf 1.0.20 installer for Windows

Millistream is proud to announce the release of version 1.0.20 of our open source Millistream Data Feed API for Microsoft Windows.

Starting with v1.0.20 we provide libmdf via a installer for Windows that can be downloaded from https://packages.millistream.com/Windows/libmdf-1.0.20.exe. The installer contains three components of which two are optional:

  1. The libmdf core library file, needed for all applications that use libmdf. Installs to C:\Windows\System32 (mandatory)
  2. The libmdf development files, needed for developers who write C/C++ applications using libmdf. Installs to C:\Program Files\Millistream\libmdf (optional)
  3. The libmdf Java and JNI bindings, needed for applications written in Java and/or for developers who write Java applications using libmdf. Installs to C:\Windows\System32 (the JNI library) and C:\Program Files\Millistream\libmdf (the JAR file) (optional)

Minimum requirements for the optional Java files are Java 8 (Spider). If you need support for older versions then please contact Millistream Tech support.

The full source code for libmdf can be downloaded from https://packages.millistream.com/source/libmdf-1.0.20-2.tar.gz and the source code for the Java and JNI bindings can be downloaded from ftp://ftp.millistream.com/sources/libmdf-java-1.0.20.tar.gz.

Example code for both C/C++ and Java can be downloaded from https://packages.millistream.com/source/mdf_examples.zip, and full documentation can be found at ftp://ftp.millistream.com/documents/.

 

libmdf 1.0.20 installer for macOS

Millistream is proud to announce the release of version 1.0.20 of our open source Millistream Data Feed API for macOS.

Starting with v1.0.20 we provide libmdf via a signed pkg installer for macOS that can be downloaded from https://packages.millistream.com/macOS/libmdf-1.0.20.pkg. The installer contains three components of which two are optional:

  1. The libmdf core library file, needed for all applications that use libmdf. Installs to /usr/local/lib (mandatory)
  2. The libmdf development files, needed for developers who write C/C++ applications using libmdf. Installs to /usr/local/lib and /usr/local/include (optional)
  3. The libmdf Java and JNI bindings, needed for applications written in Java and/or for developers who write Java applications using libmdf. Installs to /Library/Java/Extensions (optional)

Minimum requirements for the installer is macOS Sierra (10.12) and Java 8 (Spider) for the optional Java files. If you need support for older versions of either then please contact Millistream Tech support.

The full source code for libmdf can be downloaded from https://packages.millistream.com/source/libmdf-1.0.20-2.tar.gz and the source code for the Java and JNI bindings can be downloaded from ftp://ftp.millistream.com/sources/libmdf-java-1.0.20.tar.gz.

Example code for both C/C++ and Java can be downloaded from https://packages.millistream.com/source/mdf_examples.zip, and full documentation can be found at ftp://ftp.millistream.com/documents/.

 

libmdf added to the FreeBSD® Ports and Packages Collection

Millistream is proud to announce that our Market Data API C/C++ library libmdf, have just been added to the FreeBSD® Ports and Packages Collection.

Details about the package can be found at the FreshPorts site: https://www.freshports.org/net/libmdf/

FreeBSD is a registered trademark of The FreeBSD Foundation

Millistream Database Application (MDA) version 0.9.40 released

The Millistream MDA project team is pleased to announce the release of version 0.9.40 of our open source application for updating SQL servers with data from the Millistream Data Feed.

  • Fixed an error on PostgreSQL where escaped string containing forward slash “\” characters would be sent wrongly to the SQL server if “standard_conforming_strings” is enabled on the server (which it is per default in newer versions of PostgreSQL).
  • Support “connectionstring” setting in mda.config for the Microsoft SQL Server and PostreSQL servers for power users that want to set more options for the connection to the SQL server than the available settings in mda.config allow. When “connectionstring” is used then the other settings such as “username”, “password”, “dbname”, “server” and “port” are ignored by the MDA.
  • On Microsoft SQL Server and PostgreSQL a “mda –check-types” could erroneously report errors for “numeric” columns with a length between (10,0) and (19,0).
  • When connecting with MySQL/MariaDB, MDA will now read options from the “mda” group in the “my.cnf” file if such a group exists.
  • The SSL settings added in v0.9.39 for MySQL/MariaDB will now also work for PostgreSQL (even though they are perhaps best set there using the “connectionstring” setting anyway).
  • Added man pages for “mda” and “mda.config” on Linux.

As earlier announced, as of v0.9.33 the database schema is developed independently of the MDA and the latest schema including upgrade scripts is available on our ftp server under the documents section (MDA_schemas_[version].zip). As of this writing the latest database schema is v89 and thus the file is available from ftp://ftp.millistream.com/documents/MDA_schema_89.zip.

Do note however that the latest schemas are only needed if you need the new columns/tables, they are not mandatory to operate the MDA!

We consider MDA 0.9.40 to be the best version of MDA available and we recommend that users of older versions upgrade as soon as possible.

MDA 0.9.40 is available for download from the following locations:

Windows users upgrade by running the installer for the new version. Linux users who have added our apt or yum repositories can upgrade by simply issuing:

  • Debian/Ubuntu: “apt update && apt upgrade
  • Red Hat/CentOS/Amazon Linux AMI: “yum upgrade

Information on how to add these repositories are available at ftp://ftp.millistream.com/binaries/linux/.

And as usual, if you have any questions what so ever regarding this release or other things, don’t hesitate to contact us at tech@millistream.com.

Extended News Coding Latency Decreased to below 100microseconds

Since day one, extended news coding for news messages in the Millistream Market Data Feed (MDF) have been handled asynchronously in order to keep the latency of the news contents low. The initial News Headline message contains the coding supplied by the source and the asynchronous process uses this initial coding in order to find extended coding (i.e more ISIN codes connected with the companies in the text message and/or possible company insref:s).

Over time this process have been slightly slower and slower to process each new News Headline message as it worked with a single queue and used a SQL server as the database for lookups. However during the weekend we have put a new process into production that uses an internal in-memory database with a O(1) guarantee for lookups which have lowered the latency down to below 100µs.

Added support for Debian 9 “Stretch”

Even though the release date of Debian 9 “Stretch” is yet unknown, it went into full freeze at 2017-02-05 and consequently we have updated our DEB repository with builds of all our software products for Debian 9.

For fresh installs all you have to do is to add our repository and our signing key:

sudo wget "https://packages.millistream.com/apt/sources.list.d/stretch.list" -O /etc/apt/sources.list.d/millistream.list
wget -q "https://packages.millistream.com/D2FCCE35.gpg" -O- | sudo apt-key add -
sudo apt update

Or if you are upgrading from a previous version of Debian you can simply open /etc/apt/sources.list.d/millistream.list in a text editor of your choice and change the distribution name to “stretch” so that it matches this content:

deb https://packages.millistream.com/apt stretch main
deb-src https://packages.millistream.com/apt stretch main

After which you can fetch the new binaries with:

sudo apt update
sudo apt upgrade

Millistream Data Feed API (MDF) version 1.0.20 released

Millistream is pleased to announce the release of version 1.0.20 of our open source Data Feed API.

  • updated mdf_fields.h to the latest version (7 new fields)
  • support for new HMAC digest algorithms: RIPMD160, SHA512 and Whirlpool
  • support OpenSSL v1.1.0+
  • new function mdf_message_move()
  • new function mdf_message_serialize()
  • new function mdf_message_deserialize()

As usual this version of MDF is binary compatible with previous versions, so there is no need to recompile client applications, so users (including users of the Java JNI wrapper) can simply upgrade by replacing the libmdf file itself.

MDF 1.0.20 is available for download from the following locations:

Linux users who have added our apt or yum repositories can upgrade by simply issuing:

  • Debian/Ubuntu: “apt-get update && apt-get upgrade
  • Red Hat/CentOS/Amazon Linux AMI: “yum upgrade

Information on how to add these repositories are available at
ftp://ftp.millistream.com/binaries/linux/

And as usual, if you have any questions what so ever regarding this release or other things, don’t hesitate to contact us at tech@millistream.com.

Added support for Ubuntu 17.04

Preparing for the upcoming release of Ubuntu 17.04 (Zesty Zapus) due to release on 2017-04-13 we have updated our DEB repository with compatible versions of all our software products.

For fresh installs all you have to do is to add our repository and our signing key:

sudo wget "https://packages.millistream.com/apt/sources.list.d/zesty.list" -O /etc/apt/sources.list.d/millistream.list
wget -q "https://packages.millistream.com/D2FCCE35.gpg" -O- | sudo apt-key add -
sudo apt update

Or if you are upgrading from a previous version of Ubuntu you can simply re-enable the repository (the upgrade process in Ubuntu/Debian disables all external repositories) and fetch the new binaries:

sudo wget "https://packages.millistream.com/apt/sources.list.d/zesty.list" -O /etc/apt/sources.list.d/millistream.list
sudo apt update
sudo apt upgrade

Millistream Database Application (MDA) version 0.9.39 released

The Millistream MDA project team is pleased to announce the release of
version 0.9.39 of our open source application for updating SQL servers
with data from the Millistream Data Feed.

* The maximum value reported in the “instrument-hash-size” in the output of “mda –status”
used the configured value and not the actual value (the configured value is scaled to the
next power of two for performance reasons).

* Rows from corporateactions could not be removed if the message did not contain “source”
(and “source” as a field for this table will be deprecated in the future).

* If the calculated change factor when updating a corporate action with a new adjustment factor
is “1” then the MDA will no longer adjust the prices in the “adjustedpricehistory” table.

* Added error logging for adjustments from a corporate action event.

* On Unix/Linux, write human readable errors to the error log instead of just the errno value.

* Notify systemd on status and main pid of MDA on systemd supported systems.

* Support the systemd watchdog (at the moment only the status and feed received thread are
covered).

* Changed the maximum timeout value for the queue semaphores to 5 minutes from INFINITY

* Updated the AppArmor profile to be compatible with changes introduced in Ubuntu 16.04LTS

As earlier announced, as of v0.9.33 the database schema is developed independently of
the MDA and the latest schema including upgrade scripts is available on our ftp server
under the documents section (MDA_schemas_[version].zip). As of this writing the latest
database schema is v85 and thus the file is available from:
ftp://ftp.millistream.com/documents/MDA_schema_88.zip

Do note however that the latest schemas are only needed if you need the new columns/tables,
they are not mandatory to operate the MDA!

We consider MDA 0.9.39 to be the best version of MDA available and we
recommend that users of older versions upgrade as soon as possible.

MDA 0.9.39 is available for download from the following locations:

Windows installer: ftp://ftp.millistream.com/binaries/windows/
Red Hat / CentOS: https://packages.millistream.com/rpm/
Debian / Ubuntu: https://packages.millistream.com/apt/
Source code: ftp://ftp.millistream.com/sources/
Documentation: ftp://ftp.millistream.com/documents/mda.pdf

Windows users upgrade by running the installer for the new version.

Linux users who have added our apt or yum repositories can upgrade by simply
issuing “apt-get update && apt-get upgrade” (Debian/Ubuntu) or
“yum upgrade” (Red Hat/CentOS).

Information on how to add these repositories are available at
ftp://ftp.millistream.com/binaries/linux/
And as usual, if you have any questions what so ever regarding this release
or other things, don’t hesitate to contact us at tech@millistream.com

Millistream to reduce latency by 94% from FIX/FAST sources during 2017

During 2017, Millistream will put our new proprietary FIX/FAST engine into production, replacing our 6 year old ageing FIX/FAST engine. With this new version comes a massive increase in message throughput (+1606%) and decrease in per message decoding latency (-94%). Changes in how data is presented to the application makes for less complex feed-handlers yielding further performance improvements as well as shorter time to market for future FIX/FAST sources.

Performance numbers (measured on a i5-4670K @ 3.4Ghz):

  • decodes 8+ million messages per second per CPU core
  • decoding latency per message 115ns

Affected marketplaces/sources:

  • Nordic Growth Market (marketplace #29929)
  • Nordic Derivatives Exchange (marketplace #29933)
  • Nordic MTF (marketplace #29930)
  • Oslo Børs – Fixed Income (marketplace #39890)
  • Oslo ABM (marketplace #33668)
  • Oslo Børs – Indexes (marketplace #39890)
  • Oslo Axess – Indexes (marketplace #33187)
  • Oslo Børs – News (newsref #8199)

Due to structural differences the new engine is not a drop-in replacement for the old engine so all our FIX/FAST feed-handlers have to be rewritten which is the reason why the new version will not be put into production until some time next year.