-
Notifications
You must be signed in to change notification settings - Fork 381
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
Asynchronous Performance Speedups #58
Conversation
ce363ca
to
3a08ee0
Compare
3a08ee0
to
97e0538
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should only keep Relational
in Connection
, Command
etc which like ado.net classes.
The others don't need keep the Relational
.
QueryContext is included in LINQ, not ADO, so I think we should rename MySqlRelationalQueryContext
to MySqlQueryContext
@@ -1,4 +1,4 @@ | |||
# Pomelo.EntityFrameworkCore.MySql | |||
# Pomelo.EntityFrameworkCore.MySql |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the difference?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oops, probably file encoding. removed from the commit
// ReSharper disable once CheckNamespace | ||
namespace Microsoft.EntityFrameworkCore.Query | ||
{ | ||
public class MySqlRelationalQueryContext : RelationalQueryContext |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MySqlQueryContext. No MySqlRelationalQueryContext.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
{ | ||
public bool HasInclude = false; | ||
|
||
public MySqlRelationalQueryContext( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MySqlQueryContext
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
namespace Microsoft.EntityFrameworkCore.Query.Internal | ||
{ | ||
public class MySqlRelationalQueryContextFactory : RelationalQueryContextFactory | ||
{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MySqlQueryContextFactory
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixed
97e0538
to
eb1362e
Compare
Code review changes complete |
This PR focuses on achieving maximum Asynchronous method throughput. It implements the following speedups:
Include
are now wrapped in RepeatableRead transactions so that they get a consistent snapshot of the databaseWith this PR, Async behavior scales well without lock-ups. I am able to hit 500RPS in the performance tests and maintain under a 1s response time.