Session variables are not very Diamond-like, since they break the assumptions that objects are independent, servers are independent, and object evaluation is idempotent. Due to timing variations, especially due to caching of results from prerequisite filters, results can vary between searches. The anomaly-detection filter (which actually uses the session variables) must therefore receive a random value as an argument to defeat result caching.
Find a better way to do this. Ideally, the server would run the prerequisite filters and return all objects to the client, which would then handle anomaly detection itself.
Session variables are not very Diamond-like, since they break the assumptions that objects are independent, servers are independent, and object evaluation is idempotent. Due to timing variations, especially due to caching of results from prerequisite filters, results can vary between searches. The anomaly-detection filter (which actually uses the session variables) must therefore receive a random value as an argument to defeat result caching.
Find a better way to do this. Ideally, the server would run the prerequisite filters and return all objects to the client, which would then handle anomaly detection itself.