Re: Large queries

"Tuna Toksöz" <[email protected]> Wed, 23 Jul 2008 14:26:31 +0300
Newsgroups gmane.comp.windows.dotnet.nhibernate.devel
Message-ID <[email protected]>
Hmm, not sure about that. Depends on current progress in NHCore. I don't
think it is available in trunk and not sure when it becomes available. But I
think this can be made optional and can be done with a modification to query
options& translator without so much pain.


On Wed, Jul 23, 2008 at 2:17 PM, Jan Oravec <[email protected]> wrote:

> Yep, something like ScrollableResult. I think LINQ provider should use
> it by default (there is no point in keeping any result lists for LINQ),
> like:
>
> foreach (Foo x in session.Linq<Foo> ().Where(...))
> {
>  ...
> }
>
> While thinking more about it, there could be a problem when code inside
> foreach perform other database operations and database driver doesn't
> support multiple queries. Your solution with keeping all IDs would solve
> that, but with huge number of records the amount of memory required can
> be still large. Also, processing must wait for initial query, so latency
> is not decreased.
>
>
> Jan
>
>
> On Wed, 2008-07-23 at 13:37 +0300, Tuna Toksöz wrote:
> > The feature in Hibernate is called "ScrollableResult". I think this is
> > what you need?
> >
> > On Wed, Jul 23, 2008 at 1:20 PM, Tuna Toksöz <[email protected]>
> > wrote:
> >         I think there was something similar to this in progress/in
> >         plans, but not sure. My idea would be to get all the ids for
> >         the database so that you'll have the required when you access
> >         them. Then user may specift chunk size, the data is retrieved
> >         depending on their ids when required. Data is stored as
> >         weakreference, so they can be collected by garbage collector
> >         when it runs out of memory. I think this is what db4o
> >         currently uses.
> >
> >         Regards,
> >
> >
> >         On Wed, Jul 23, 2008 at 12:38 PM, Jan Oravec
> >         <[email protected]> wrote:
> >
> >
> >                 Hi,
> >
> >
> >                 It would be interesting to decrease memory consumption
> >                 with very large
> >                 queries (i.e. millions to billions of returned
> >                 objects), especially when
> >                 returned data are processed one-by-one and thrown away
> >                 (and
> >                 CacheMode.Ignore is used).
> >
> >                 Currently, ICriteria.List() first loads results into
> >                 List, which is then
> >                 returned. First result is not usable by application
> >                 before all results
> >                 are loaded, increasing both latency and memory
> >                 consumption.
> >
> >                 I propose conversion of all internal code paths using
> >                 Lists to
> >                 IEnumerable (either explicitly defining enumerator, or
> >                 using 'yield
> >                 return ...').
> >
> >                 External APIs should be backward compatible (i.e.
> >                 ICriteria.Enumerable()
> >                 would return IEnumerable and ICriteria.List would
> >                 use .Enumerable() to
> >                 create List.
> >
> >                 I expect this change would greatly decrease memory
> >                 consumption and
> >                 latency (even for smaller queries), while very
> >                 slightly increasing
> >                 required CPU time. Overall single-thread throughput
> >                 should be also
> >                 improved, as application could process data while they
> >                 are still on the
> >                 way from database server.
> >
> >                 If this change is acceptable, I would be interested in
> >                 working on this.
> >
> >
> >                 Jan
> >
> >
> >
> >
> -------------------------------------------------------------------------
> >                 This SF.Net email is sponsored by the Moblin Your Move
> >                 Developer's challenge
> >                 Build the coolest Linux based applications with Moblin
> >                 SDK & win great prizes
> >                 Grand prize is a trip for two to an Open Source event
> >                 anywhere in the world
> >
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> >                 _______________________________________________
> >                 Nhibernate-development mailing list
> >                 [email protected]
> >
> https://lists.sourceforge.net/lists/listinfo/nhibernate-development
> >
> >
> >
> >
> >         --
> >         Tuna Toksöz
> >
> >         Typos included to enhance the reader's attention ...
> >
> >
> >
> > --
> > Tuna Toksöz
> >
> > Typos included to enhance the reader's attention ...
> > -------------------------------------------------------------------------
> > This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> > Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> > Grand prize is a trip for two to an Open Source event anywhere in the
> world
> > http://moblin-contest.org/redirect.php?banner_id=100&url=/
> > _______________________________________________ Nhibernate-development
> mailing list [email protected]
> https://lists.sourceforge.net/lists/listinfo/nhibernate-development
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> Nhibernate-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/nhibernate-development
>
>


-- 
Tuna Toksöz

Typos included to enhance the reader's attention ...

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

_______________________________________________
Nhibernate-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nhibernate-development