Large Groups
The subscription data model supports groups that contain both subscriptions and subgroups. To handle large groups consisting of 100 subscriptions or more, the SubMan APIs act on subscriptions and groups in configured sizes or chunks.
SubMan APIs
QuerySize
parameter specifies the chunk size in the
following APIs:
- MtxRequestSubscriberQuery
- MtxRequestGroupQuery
- MtxRequestUserQuery
- MtxRequestSubscriptionQuery
- MtxRequestSubscriberQueryMembership
- MtxRequestGroupQueryMembership
- MtxRequestUserQueryMembership
The default
QuerySize
is 100 and the maximum
QuerySize
is 250. If you specify a
QuerySize
greater than 250, the
MATRIXX Engine
returns an error.
During a SubMan API query, a
QueryCursor
value, similar to a SQL database cursor,
is returned for
QuerySize=N
. Subsequent queries should specify the
returned
QueryCursor
value to return additional results. When
there are no more entities to return,
MATRIXX Engine
returns a
QueryCursor
value of
0
.
QuerySize
parameter, the query returns a maximum of
100 results. If more than 100 entities match the query, only the first 100
results are returned with an error. If the number of entities that match the
query is less than or equal to 100, the query successfully returns the
requested information.
The QueryCursor
does not expire, and
member additions or deletions that occur during a query are usually captured in the
query results. However, due to the dynamic nature of subscription and group
membership, as the QueryCursor
ages, query results may be less
accurate (for example, if there are concurrent out-of-order commits during active
queries). Also, the QueryCursor
is query-specific. For example, if
you use the QueryCursor
returned for an MtxRequestSubscriberQuery
with an MtxRequestGroupQuery, the query does not return any result.
Configuration
MemberJoin
UserGroupJoin
UserSubscriptionJoin
These parameters must be proportionate to the number of
possible relationships between groups and subscriptions. For example, if a group has
1,000 members, there must be 1,000 MemberJoin
objects. If there are
10 groups, each with 1,000 members, there must be 10,000 (10 * 1,000)
MemberJoin
objects. To ensure that there are enough
MemberJoin
objects for all possible relationships, you should
double the MemberJoin
parameter value. For example, if there are 10
groups, each with 1,000 members, you should configure the
MemberJoin
parameter value to be 20,000 (10 * 1,000 * 2).
You can also specify the number of groups that you want to create: How many groups do you want to support?
The default number of groups is 1000.