Jaka jest algorytmiczna złożoność czasowa stosowania selektorów JMS podczas pobierania wiadomości z kolejki, w odniesieniu do głębokości kolejki n? W szczególności czy jest liniowy (O (n)) na odczyt? Czy jest zależny od wdrożenia (od dostawcy JMS) i czy zależy od tego, które pola są wymagane?W jaki sposób selektory JMS skalują się z głębokością kolejki?
(jeśli zależy od implementacji, szczególnie interesuje mnie zachowanie Websphere MQ i Solace, ale z przyjemnością przyjmuję odpowiedzi dotyczące konkretnego dostawcy JMS, szczególnie jeśli masz linki do dokumentacji opisującej złożoność!).
Motywacja: każda wiadomość ma dwie właściwości: invocationID
i batchName
. Partia składa się z kilku inwokacji. Klienci chcą konsumować wiadomości na jeden z dwóch sposobów; albo przez invocationID
lub przez batchName
. W momencie, w którym powstają wiadomości, nie wiem, jaką metodą zostaną one wykorzystane.
ten może być realizowany przez selektorów:
invocationID=42
Or
batchName="reconciliation"
... i mogę przyspieszyć jeden z nich się za pomocą identyfikatora korelacji zamiast właściwości niestandardowej, ale jestem zaniepokojony, że drugi pozostanie powolny.
Świetne pytanie! Podejrzewam, że bardzo trudno jest uzyskać dobrą odpowiedź, ale oczywiście ma fundamentalne znaczenie dla podejmowania pewnych decyzji architektonicznych. –
Dzięki @TomAnderson! – bacar