Comments (3)
I think sending a singlechangset should never be async?
However for splitting into operations it should be fine...
from restier.
This is an interesting issue, because I think it highlights some delicate formulations in the OData spec. (I used the formal OData 4.0 spec to cross reference).
Firstly, requests within a batch have to be processed in order. Requests within a change-set MAY be executed in any order (but it's not mandatory).
However, within a change-set previously inserted entities CAN be referenced by a content-id:
This of course implies, as @MartinTopfstedtSinc noted, that any request on a relational database that has foreign key constraints enabled cannot be executed in parallel.
@robertmclaws I think this is something we have to fix. Now there are multiple ways to go about this:
- Disable parallelisation entirely. This of course is the slowest option.
- Disable parallelisation of the change-set whenever a dependency is detected. This enables parallelisation of change-sets whenever they contain no dependencies at all.
- Resolve the dependency graph. This requires building a dependency graph before processing and subsequently solving it before executing the change-set. The neatest, but also the most time-consuming solution.
Any thoughts?
from restier.
My plan was to detect if dependencies were involved and if so, disable parallelization.
from restier.
Related Issues (20)
- Update Documentation HOT 7
- Help needed to make a custom IQueryExpressionProcessor HOT 4
- Returning empty set?
- RESTIER odatametadata xml is different than ODataContoler / api explorer xml HOT 2
- [2.0] Treat Views as Entities? HOT 1
- Restier Swagger support for AspNetCore : PUT doesn't appears HOT 1
- Replace Non Standard IfMatch Header with Standard If-Match Header HOT 4
- Restier Swagger not applying route prefix HOT 2
- [2.0] Make Operations more magical
- [2.0] Make OData configuration more magical
- [2.0] Make Dependency Injection more magical HOT 1
- feature request: spectral ruleset
- Not support โIf-Matchโ header which is defined in Odata protocol HOT 1
- How to replace the .AddChainedService<T> Method HOT 1
- can pulblic method '' HOT 2
- Problems adding Entities / Related Entities
- Batchhandler results in an error when doing bulk updates.
- `DateOnly` property causes "A POST requires an object to be present in the request body." HOT 2
- UnboundOperation throws an exception HOT 10
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 restier.