Pattern matching eventi con struttura arbitraria

2

Il mio team ha implementato un sistema di broker di allerta. Il modo in cui funziona è questo:

  1. Le fonti di eventi generano eventi, con struttura prevalentemente arbitraria, e il broker li ascolta.
  2. Gli utenti visitano il broker e utilizzano un linguaggio di espressione per creare avvisi per gli eventi. Le espressioni possono fare riferimento ad attributi arbitrari degli eventi.
  3. Il broker invia gli avvisi di conseguenza. Ciò implica la ricerca degli abbonamenti agli eventi creati dagli utenti nel passaggio 2 precedente.

Vorrei un po 'di aiuto nella comprensione delle mie opzioni per la ricerca dell'abbonamento in quanto ho bisogno di ridimensionarlo.

In questo momento stiamo facendo solo ricerca lineare perché il numero di eventi e iscrizioni è basso. Questo non durerà a lungo.

Il piano per il prossimo passo consiste nell'utilizzare l'indicizzazione sul piccolo numero di campi noti nell'evento (ad esempio sourceId, type, name, ecc.). Una volta che potiamo lo spazio di ricerca in questo modo, potremmo fare una ricerca lineare. Questo dovrebbe portarci per un po ', e forse indefinitamente.

Ma se colpiamo un muro lì, quali sono gli approcci standard? So che RETE è bravo in questo genere di cose, ma sembra che le implementazioni di RETE compaiano nel contesto dei motori di regole e quelle implicano la risoluzione dei conflitti in una singola regola. Nel nostro caso ci sarebbero più abbonamenti (regole) che vogliamo abbinare, quindi non sembra funzionare solo un motore di regole lineari. Se ci sono implementazioni RETE standalone, non le ho viste.

Suppongo che la ricerca o l'implementazione di RETE standalone sia un'opzione.

Altre opzioni?

(Inoltre, per essere chiari, questo non è un caso di ottimizzazione prematura, non ho intenzione di implementare nulla di ottimizzato a meno che non sembri effettivamente necessario. Ma mi piacerebbe sapere che c'è qualche plausibile piano di gioco dovrebbe accadere.)

    
posta Willie Wheeler 10.09.2016 - 22:43
fonte

0 risposte

Leggi altre domande sui tag