question

Upvotes
Accepted
1.2k 23 31 44

RsslMap not sent as encoded

I encode a RsslMap in a particular order, e.g.

912810RN0=TWEB
912810RP5=TWEB
912810RQ3=TWEB
912810RS9=TWEB

I feed this into a value-add payload cache (rsslPayloadEntryApply) and extract (rsslPayloadEntryRetrieve) on each client request.

With RSSL tracing enabled though the ordering is different:

<mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="912810RS9=TWEB" >
</mapEntry>
<mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="912810RP5=TWEB" >
</mapEntry>
<mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="912810RQ3=TWEB" >
</mapEntry>
<mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="912810RN0=TWEB" >
</mapEntry>

Please explain? Is it possible to send out an ordered symbol list? This looks like walking through a red-black tree underlying a "map" implementation. Is should be possible to publish an ordered list say through an RsslVector instead of a RsslMap.

On Elektron, similarly the symbol list .AV.HK for example does not match the ordering of the chain .AV.HK, consuming after hours.

This implies the ordering is an artifact of the TREP payload cache and thus cannot be avoided.

elektronelektron-sdkrrteta-apielektron-transport-apicaching
avhk-chain.png (16.6 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Hi Steven,

I have run a quick test using rsslProvider example and it give a correct order.

What's your setup?

Do you connect to ADH with cache enable (cachelocation = ssl)?

Have you tried enable UPA tracing on your provider app and see if the order is correct?

UPA 8.0.0.L1 provider with Value-Add Cache and UPA tracing enabled on a client connection.

Upvotes
Accepted
4.4k 10 6 9

It is Value-Add cache that re-order the map content.

The data model for symbol lists and maps is already chosen and I believe it can’t be changed at this point. Besides, keeping these sorted denotes we effectively have to refresh the entire record everytime the ranking changes.

You should consider requesting to extend the exist symbol list map data model to allow for ranking such that client side APIs will be able to sort all symbol lists reliably.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
1.2k 23 31 44

A RsslVector is required for an ordered list, however the RDM guide mandates only use of RsslMap for the Symbol List domain.

Enhancement request posted to product management for feedback.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.