A concurrent rule scheduling algorithm for active rules

Ying Jin, Susan D. Urban, Suzanne Dietrich

Research output: Contribution to journalArticlepeer-review

12 Scopus citations


The use of rules in a distributed environment creates new challenges for the development of active rule execution models. In particular, since a single event can trigger multiple rules that execute over distributed sources of data, it is important to make use of concurrent rule execution whenever possible. This paper presents the details of the integration rule scheduling (IRS) algorithm. Integration rules are active database rules that are used for component integration in a distributed environment. The IRS algorithm identifies rule conflicts for multiple rules triggered by the same event through static, compile-time analysis of the read and write sets of each rule. A unique aspect of the algorithm is that the conflict analysis includes the effects of nested rule execution that occurs as a result of using an execution model with an immediate coupling mode. The algorithm therefore identifies conflicts that may occur as a result of the concurrent execution of different rule triggering sequences. The rules are then formed into a priority graph before execution, defining the order in which rules triggered by the same event should be processed. Rules with the same priority can be executed concurrently. The IRS algorithm guarantees confluence in the final state of the rule execution. The IRS algorithm is applicable for rule scheduling in both distributed and centralized rule execution environments.

Original languageEnglish (US)
Pages (from-to)530-546
Number of pages17
JournalData and Knowledge Engineering
Issue number3
StatePublished - Mar 2007


  • Active rules
  • Concurrent rule execution
  • Confluence analysis
  • Rule scheduling algorithm

ASJC Scopus subject areas

  • Information Systems and Management


Dive into the research topics of 'A concurrent rule scheduling algorithm for active rules'. Together they form a unique fingerprint.

Cite this