why a group member that has been successfully added/deleted cannot take effect immediately?

cancel
Showing results for 
Search instead for 
Did you mean: 
sunjian_xy
Member II

why a group member that has been successfully added/deleted cannot take effect immediately?

I was using the 'POST /groups/{groupId}/members' public API in ECM 5.2.g(201707-GA). I deleted a member from a group. When I query for its members immediately (less than 7~10 seconds), the deleted member was still in the query result. But after 7~10 seconds, I queried again, it was gone. The same elapse happens when adding a member.

I wonder if there is any approach to reduce the elapse? Please give some hint on this.Thanks in advance.

3 Replies
afaust
Master

Re: why a group member that has been successfully added/deleted cannot take effect immediately?

How did you query for the members? If you are doing an index-based query then this delay is somewhat by design. The index is "eventually consistent" meaning that there is a delay depending on the configured SOLR tracking CRON (default trigger every 15 seconds) between updates to the structure and updates to the index. That is why most operations that deal with authorities typically use database-bound (query) operations via the appropriate Java service APIs (or v1 ReST API), which offer guaranteed consistency.

sunjian_xy
Member II

Re: why a group member that has been successfully added/deleted cannot take effect immediately?

I queried for the members using the REST api, shown in the api-explorer. I attempted to find the implementation. which seemed to be webscript of the Respository container, implemented by JavaScript. But I was not able to go deeper enough to find out whether is based on solr or db. Thanks to your answer, I know why there is a delay.  

andy1
Senior Member

Re: why a group member that has been successfully added/deleted cannot take effect immediately?

Hi

With respect to permission enforcement the removal or addition of a person to a group takes effect immediately. The addition of a group to a group is done asynchronously but is typically sub second for millions of groups. It uses a two-part, in memory bridge table: user-group and group-group.There are APIs that walk the group tree but these do not scale for large number of groups. It could also

So did you remove a person from a group or a group from a group? 

What was the exact request used for the query?

Andy