Comments (6)
More generally, how does AskQL and AskVM plan to handle cases like this?
If there's a limit to "steps" (beta reductions if this is a lambda calculus evaluator) or something similar, and the code written in the front end is O(n) where n is, say, the number of entries in a table, then a working query may suddenly start failing, and the only change is that a new entry was added to the table. That seems like a lot of hassle for the front end developer -- you have to anticipate your query failing for reasons that are outside of your control.
If it's a time limit, then you have the same issue, except now it's even more non-deterministic, since server load will effect whether a query times out. It seems like that would be a testing nightmare.
from askql.
Thanks @DavidSampson for posting this! You have definitely spotted a bug and we're going to send a PR that solves it soon.
Speaking of this issue more broadly, every server indeed has different set of limited resources that it can devote to running a query (regardless of the query language). I agree that in case of AskQL this gets tricker, because more operations are possible - including endless loops, stack overflows, heap overflows - just to name a few. We're going to address it by a) adding more different kinds of limits you can set for the VM b) allowing programs to query the information about their current limits at runtime so that they have an option to check the limits and adapt their behaviour.
These limits will include the number of operations, stack size, time allotted, and heap size. They are deterministic, yet their respective behaviour may vary by the server - especially the time limit which is subject to other workload. We'll make sure that if AskVM returns an error, it will include all details possible on what limit has caused it, why, and what are the recommended steps for the developer. If there are other measures to help with development experience, we'll look into these as well.
Please treat this as introductory input in this important discussion, more will follow. Thanks again, @DavidSampson, for your participation and creating this issue!
from askql.
Thank you, David, for your contribution! We will definitely look into it. We'll keep you posted :)
from askql.
@mhagmajer , what's the update on this ticket?
from askql.
Marking this as a release blocker to support running playground safely
from askql.
@DavidSampson , thank you a million for posting this issue.
We created a PR which resolves it and would be thrilled if you could comment on our solution: #220
from askql.
Related Issues (20)
- Enable string property names HOT 1
- A DB example
- `npm run build` fails on Windows (`mv` command is unknown)
- Syntax for using a resource can be simplified
- Refactor let HOT 3
- Command line CLI should allow (but not require) wrapping code in ask {} HOT 1
- Allow sharing of playground
- Refactor: extract common logic, checking if a reserved keyword is used, from let, const and assign resources to avoid code duplication. HOT 1
- Frontend-driven database access aka. "The Ultimate Endpoint" HOT 7
- Add JsonPath support HOT 3
- Add Lambda/serverless function as the resources HOT 2
- Add namespacing/modules HOT 6
- Let developers to call JS methods on limited JS objects HOT 9
- Add Secrets management feature HOT 2
- Access control and session management HOT 1
- Add stored procedures/persited/hash queries HOT 1
- Add HTTP GET variables access to AskScript
- TypeScript SDK HOT 1
- Add React Context and/or hooks for querying AskQL endpoints
- Unable to call object properties that are functions HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from askql.