CTI Design Pattern for Multiple Streams
hi all
i have 3 streams. 2 reference (edge) , 1 fast (point). fast stream starts streaming reference streams take 1-2 mins populate
should issue infinite cti enqueuecti(datetime.maxvalue) on fast stream , after reference streams populate issue on each of them enqueuecti(datetime.maxvalue.addticks(-1))
thanks
[summarizing offline conversation between allan , myself:]
upon further investigation, turned out not cti problem. application using wall clock time assign timestamps events. due uncontrollable scheduling, the "fast" sales point event created before slow streams , hence gets timestamp before slow events' timestamps, inhibits join happen. remedy, one need issue slow events earlier timestamp guarantee reference data securely overlaps real time data.
in particular case i call slow streams "static" streams, because enqueue unique rows remain there eternity. if stream included infrequent updates, @ least @ point fast stream have chance join something, though didn't see join @ beginning.
you work around problem setting start timestamp of reference events before fast events, run cti violation when use import mechanism. on other hand, if never new event in static stream, enqueue infinite cti there after pushed rows (hence commit events good) , not import ctis fast stream. once again, works if don't anticipate further on stream. enqueueing infinite cti can done through advance time settings api.
regards,
roman
ms streaminsight team
disclaimer: posting provided "as is" no warranties, , confers no rights.
SQL Server > Microsoft StreamInsight
Comments
Post a Comment