Is there any guidelines to choose List vs. Large List?


#1

Postby peter » Fri Jun 27, 2014 11:07 am

A List is best used to store a smaller number of elements that are all used at the same time. Like a Java ArrayList or anything that implements the List interface.

When a List is requested from the Client, the whole list is returned to the Client and placed in a language specific List. A List is stored “in-line” in a record, therefore the number of elements in a List is limited by how many can fit into the size of a record.

A Large List is best used to store a large number of elements (thousands to millions) and it has no size limit, each element is a “sub record”.

A Client can request 1, a range, or all elements from a Large List, the client controls the size of the request. Retrieving elements from a List List can also be filtered (predicate filter) similar to a “where” clause. Large List is an ordered list. by default elements are stored in the order they are added, but an “ordering” can be defined by using a UDF on creation of the Large List.


#2

Postby bbulkow » Thu Jul 31, 2014 2:25 pm

One correction: a List can be retrieved entirely by client, or, using UDFs, part of the list can be returned.

If you have a UDF registered, it can examine the list, the return partial components.

As stated, Large Lists are unlimited in size. In cases where Flash is used as storage, this will generate several storage IOs, unlike a standard List. Lists are more predictable, but less flexible in size.