Custom fact-type-fn causes degradation of performance in rulesets with many facts
Closed this issue · 1 comments
When we have a custom fact-type-fn [1] we have to make an isa? call that uses Clojure's custom hierarchies for every fact that is inserted [2]. This turns out to have some pretty significant impacts on performance. Distinguishing between system fact types and user-provided fact types is necessary for functional correctness since a user-provided function might otherwise disrupt the functioning of internally created rules. Currently our only use case for internally created rules is the fix for #149. We may also use them to solve #218. However, we'll need to find something more performant. Using the JVMs type system directly rather than Clojure's hierarchies is a likely candidate.
This was resolved by #244 ; thanks, @EthanEChristian
Closing.