I have a use case where I would like to store a record that has some
QuerySqlField attributes but also a non-queriable list of child objects.
Something like this:
public class Portfolio {
@QuerySqlField(index = true)
private int portCode;
@QuerySqlField
private String fullName;
// Other query fields
private List<Position> positions;
}
The idea is that the cache can be queried for summary data using a
SqlFieldsQuery, or the whole object can be retrieved and processed by a
task.
I anticipated that performing a SqlFieldsQuery on indexed fields would
always be fast - as there is no need to deserialise the positions. However,
tests indicate that when the cache size exceeds 1M positions (say 1000
portfolios, 1000 positions), the queries become very slow - at least an
order of magnitude slower than would be the case with small numbers of
positions.
Is the above a valid usecase? Are we getting something wrong, or is it
necessary to split the Portfolio into two separate caches?
Thanks in advance,
Colin.
--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/