New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Max results #637
Comments
For my perspective, this sounds like an interesting feature to have :D |
This would be a very nice feature. However, there is a problem with relation-dependencies. The only way to make it work is that relations that are not used in other relations, could have this feature. I could envisage a qualifier in the language declaration such as,
For dependent relations, this is a very difficult feature to implement. Say, if we have two relations A and B, and B depends on the totality of A - especially in case of negation. The only way to implement this effectively is to switch the underlying evaluation from semi-naive evaluation to a stream-oriented evaluation. Lyndon is going to work on this as soon as he will commence his studies at USYD. Note that a stream-oriented approach for evaluation reduces the latency of results for relations; however, the throughput of evaluation might not be so perfect. How do you feel about this? |
Yes, I certainly see the problem, especially with respect to negation. All the relations that we want this for are not used in other relations, so that restriction is fine by me! The stream-based evaluator sounds neat, but if we could get some hack together to just stop at a certain number in the meantime that would be ideal. |
I will discuss with Martin. |
Thinking about this more, what if I have
This is the kind of situation we'd use the feature for. Is there an easy, hacky way to get what I'm hoping for here without full streaming support? |
For an example like that, you could probably create an intermediate relation that uses the
|
One feature that would be great would be to be able to stop souffle once a certain number of results were obtained for each output relation. For example, in our use case we typically have a single output relation, and only care about, say, the first 10 results, when hundreds of thousands are ultimately generated. I'd love a way to tell Souffle to stop so I could respond to our user requests faster.
The text was updated successfully, but these errors were encountered: