[DO-NOT-MERGE] Request for comments#3808
[DO-NOT-MERGE] Request for comments#3808redknightlois wants to merge 4 commits intoTechEmpower:masterfrom
Conversation
…igurations. Docker image for database server running on Windows. Still missing: - Setting up the docker instances for RavenDB on Linux (toolset directory) - Run TechEmpower in verify mode. cc @aviviadi @ayende @gregolsky
|
I do not see the Dockerfile for the database server mentioned in the original post. What am I missing? |
|
Hi Mike, For now only running on windows: |
|
AHHHH, thank you. I am just blind as a bat >_< |
| public MultipleQueriesController() | ||
| { } | ||
|
|
||
| public MultipleQueriesController(RavenDb provider) |
There was a problem hiding this comment.
Can't you implement IDb and use the same pattern as the other calls?
There was a problem hiding this comment.
Tried, but the model has to be different. RavenDB does not support integer keys among other small different things. We can build a dedicated controller if you are worried about the impact that extra instance variable may have on the other controllers.
There was a problem hiding this comment.
Right, that would be better. Also I can measure the impact it has on other scenarios (it can't have any) and get preliminary results with our infrastructure so you can iterate more quickly, based on your branches.
| public FortunesController() | ||
| { } | ||
|
|
||
| public FortunesController(RavenDb provider) |
There was a problem hiding this comment.
Shouldn't this be used via HttpContext.RequestServices.GetRequiredService, like the others?
There was a problem hiding this comment.
Not really, unless we want to introduce a scope factory. That instead of creating the DocumentStore they would just OpenSession.
| for (var i = 0; i < 10001; i++) | ||
| _identifiers[i] = $"{_random.Next(1, 10001)}"; | ||
|
|
||
| // We need to use different databases because we id's are integer and RavenDB does not have tables, it has collections |
|
|
||
| // TODO: We need to have an static index and stream it completely. | ||
| var query = session.Advanced | ||
| .AsyncRawQuery<FortuneRaven>("from Fortune order by Id"); |
There was a problem hiding this comment.
I think you can drop the order by Id here, this is the natural sort order when querying by collection only.
There was a problem hiding this comment.
I was under the impression that it would be lexicographic instead. Gonna check that.
There was a problem hiding this comment.
Yes, you are right there... I may be able to simplify it further
| { | ||
| var count = MiddlewareHelpers.GetMultipleQueriesQueryCount(httpContext); | ||
|
|
||
| var rows = await _db.LoadMultipleUpdatesRows(count); |
There was a problem hiding this comment.
Is there specific format required? We can use the streaming option to pass the raw results directly to the client, bypassing any work on the server side.
There was a problem hiding this comment.
Yes, format is specified. There are even ordering issues AFAIK for streaming. Multiple updates is actually a Bulk Insert, haven't code it like that yet, so no streaming.
There was a problem hiding this comment.
Might be better to see if we can do that directly via a query and stream it, yen.
| { | ||
| var row = await _db.LoadSingleQueryRow(); | ||
|
|
||
| var result = JsonConvert.SerializeObject(row, _jsonSettings); |
There was a problem hiding this comment.
Same here, we can skip this cost by piping the results directly
|
Hi guys, anything that we should know about this? |
|
@redknightlois Sorry, we've been distracted trying to get Round 16 wrapped up. We'll try to follow up soon! |
|
Could you provide a database server image that runs on Linux? |
|
@sebastienros Done. Last commit would give you a linux dockerfile |
|
@redknightlois What's the state of this PR from your perspective? Are you looking for guidance from TechEmpower to get the toolset actually using the new database? I have an open PR where I added a new database implementation (SQL Server on linux) to the toolset, where a framework is using the new database and passing tests. See: #3807 See especially the changes I had to make in the I also had to change our main root You could rebuild the |
We are setting the groundwork to make it part of the TechEmpower framework. What I am looking for is guidance on both how to integrate everything and also on the benchmark specifically to know for sure if we are not tripping on something that could either give us an unfair advantage or disadvantage against the rest. I will look into #3807 to replicate the changes that we would need for it. If I have any question I will ask here. |
|
@michaelhixson Does this require a patch from us? I am a bit confused on the status of this pull request. |
|
@msmith-techempower I didn't continue it yet. I expect to have what I need to change from #3807, in any way if you prefer, you can close the Request for comments PR and I will create a new one when we continue with this. |
Implementation of the full test suite on both MVC and Middleware configurations.
Docker image for a database server running on Windows with an embedded developer license (supports up to 9 cores with 36Gb of memory).
cc @bhauer
Still missing:
cc @aviviadi @ayende @gregolsky