Kevin and Mike:
This comes back to the issue I was raising earlier this week regarding
parameterized dataTables. There are a number of cases where it would be
nice to be able to set some values for use by the backing bean when it
is invoked by the dataTable tag. In this case, being able to specify a
'start' and 'number of rows' value would make the ResultSet more manageable.
It seems to me that the current dataTable tag has the assumption that
the backing bean will hand it a complete result set and that is what is
to be displayed. This is OK as far as it goes (and from a pure object
perspective, makes sense) but there seems to be a disconnect between the
handling of large result sets and this model. The disconnect comes from
our desire not to consume so much system resource. The fact that there
is no way to limit the size of the result set other than in a static
manner - that is, the limits to the result sets are hard-coded in the
backing bean - severely restricts how dataTable may be used.
At a minimum, it would be nice to have parameters for start and number
of rows that could be set for the dataTable. In a larger sense, it would
be nice to be able to specify any set of name/value pairs that the
backing bean could then use as it saw fit. You could even have a new
dataTable type, say dynamicDataTable, to address this if it made more sense.
-david-
Kevin Galligan wrote:
"...value binding for the whole set of data". 10,000 rows, at a
maximum, or literally millions of rows? I guess I don't understand
what you're really looking for. If you want to keep the results in
session, yeah, they're in memory. Not millions of rows. Just
whatever your search results are. If you don't want to keep them in
memory you can try using the resultset datamodel implementation, which
I assume is not ripping through the whole result set and building a
version in memory or anything.
I don't know how resultset keeps its data. I probably should figure
that out considering my chosen profession.
If you're going to be working with huge results to link to data, this
might not be your best method. At results of that size, if this will
be a well traveled system, you might want to use something a little
more low level and link that into your faces code.
However, 10,000 row result reports is begging for a different design,
IMHO.
Dave wrote:
Normally we have filters to select a portion of data from database
table. But it can be very large too. For example, searching found
10,000 items. For the backend, ResultSet will have the 10,000
records. I am trying to understand how the ResultSet manages the
10,000 records. It would consume lots of memory if all of them in
memory. For dataTable scroller, I still need to provide value binding
for the whole set of data.
*/Kevin Galligan <[EMAIL PROTECTED]>/* wrote:
Out of curiosity, how are you planning to use the millions of
rows? I
would assume you'd want to filter them in some way rather than
attempt
to display them, right? That would kind of answer your question
(your
datatable would only have the filtered results. Not the full table).
Mike Kienenberger wrote:
> Data fetching would depend on your backing Collection.
>
> You can use t:dataScroller to limit the dataTable to accessing
only a
> subset of the data.
>
> I'd love to see a t:liveGridDataTable component like what's
available
> at this site, but I suspect it's currently outside of my
ability to
> implement.
>
> http://openrico.org/rico/livegrid.page
>
> On 9/8/05, Dave wrote:
>
>>For a large database table that has millions of records(rows),
how is the
>>memory managed from backend to ? all the millions of records
>>are in memory? That would crash the system. Is the collection(
returned from
>>database layer) actually not filled with data until they are
requested ?
>>Thanks. Dave
>>
>>__________________________________________________
>>Do You Yahoo!?
>>Tired of spam? Yahoo! Mail has the best spam protection around
>>http://mail.yahoo.com
------------------------------------------------------------------------
Click here to donate to the Hurricane Katrina relief effort.
<http://store.yahoo.com/redcross-donate3/>