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.

image

image

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

Best Answer

  • 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.

Answers

  • 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.

  • 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.