The following rate limits apply to executions within Open Data Tables:
| Item | Limit |
|---|---|
| Total Units of Execution | 50 million |
| Total Time for Execution | 30 seconds |
| Total Stack Depth | 100 levels |
| Total Number of Concurrent YQL Queries | 5 concurrent queries |
Total Number of Objects Created via new |
1 million objects |
| Total Number of Elements per E4X Object | 1 million elements per E4X object |
What is a unit of execution?
A unit can be any usage of memory or instruction. For example, if a specific operation is only used twice within an execute script, that would sum up to 2 units:
f(units) = f(operation1) + f(operation2)
The total number of units allowed per operation can be lower than the maximum allowed if the script contains other operations which count towards the total units.
The following unit costs apply toward execution rate limits:
| Unit | Cost |
|---|---|
y.query()
|
2000 units |
Methods of the y global object (such as y.log() and y.rest())
|
1000 units |
| String concatenation | Length of the string being concatenated (1 unit per character) |
Operation of an object created via new |
500 units per operation |
| Addition of an element | 50 units |
The following example calculates the number of units needed when adding two XML trees that each contain 10 elements:
(10 elements + 10 elements) * 50 unit cost per element = 1000 units.