ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Tupitsyn (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (IGNITE-1630) .Net: Create LINQ adapter for queries.
Date Fri, 04 Mar 2016 14:14:40 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-1630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15179821#comment-15179821
] 

Pavel Tupitsyn edited comment on IGNITE-1630 at 3/4/16 2:13 PM:
----------------------------------------------------------------

1) Fixed
2) I agree with you, it just happens that only configuration property setters call this method,
so for all cases we need a warning.
I have renamed the method to indicate the purpose better, and updated the warning text.
3) As I said, this concept is from Entity Framework, and is familiar to the users.
Non-compiled query (expression tree parse overhead on each run):
{code}
var qry = cache.AsCacheQueryable().Where(x=>x.Key > 10);
var result = qry.ToArray();
{code}
Compiled query (zero overhead):
{code}
Func<int> compiledQry = CompiledQuery.Compile((int k) => cache.AsCacheQueryable().Where(x
=> x.Key > k));
var result = compiledQry(10).ToArray();
{code}

New versions of Entity Framework, as well as NHibernate, provide automatic query plan caching
to minimize expression tree parsing overhead. But the problem is to generate proper cache
key from the expression tree, which takes some time.
We may try to do the same (subtask added). But CompiledQuery will always be the fastest way
to run LINQ queries. Users may want this.

4) Fixed.


was (Author: ptupitsyn):
1) Fixed
2) I agree with you, it just happens that only configuration property setters call this method,
so for all cases we need a warning.
I have renamed the method to indicate the purpose better, and updated the warning text.
3) As I said, this concept is from Entity Framework, and is familiar to the users.
Non-compiled query (expression tree parse overhead on each run):
{code}
var qry = cache.AsCacheQueryable().Where(x=>x.Key > 10);
var result = qry.ToArray();
{code}
Compiled query (zero overhead):
{code}
Func<int> compiledQry = CompiledQuery.Compile((int k) => cache.AsCacheQueryable().Where(x
=> x.Key > k));
var result = compiledQry(10).ToArray();
{code}

New versions of Entity Framework, as well as NHibernate, provide automatic query plan caching
to minimize expression tree parsing overhead. But the problem is to generate proper cache
key from the expression tree, which takes some time.
We may try to do the same as a separate task. But CompiledQuery will always be the fastest
way to run LINQ queries. Users may want this.

4) Fixed.

> .Net: Create LINQ adapter for queries.
> --------------------------------------
>
>                 Key: IGNITE-1630
>                 URL: https://issues.apache.org/jira/browse/IGNITE-1630
>             Project: Ignite
>          Issue Type: Task
>          Components: platforms
>    Affects Versions: ignite-1.4
>            Reporter: Vladimir Ozerov
>            Assignee: Pavel Tupitsyn
>            Priority: Critical
>             Fix For: 1.6
>
>
> SQL queries are one of the most frequently used features in data grids. And .Net comes
with a very nice LINQ concept. 
> * LINQ provider should come in a separate assembly
> * Make sure that assembly is included in binary distribution



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message