-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Request to implement pagination for request forwarding. #4149
Comments
Thank you for your suggestions for Context Shard Manager.
I understand that it is quite difficult to resolve all pending issues. After narrowing down the correction points as shown below, it may be possible to minimize the amount of correction by making corrections on the Orion.
|
Please provide your response on it. Thanks |
@Anjali-NEC so if I have understand correctly your proposal is not to work in the line described by @mapedraza at #4149 (comment) but focus only in the CPr pagination issue. Is my understanding correct? In that case, I'd like to clarify what are you exactly proposing, please. Examples may help. Thus, taking into account your picture: Let's name CPrs A, B and C (from left to right). Let's assume we have the following situation in a given moment:
Which entities (order matters) the following queries will return?
|
Yes your understanding is correct.
It will return all the entities of CB, CPra A, CPra B, CPra C based on the registration order of ContextProvider in CB and the registration order of Entities in CP. If you register in CP in the order of CPra A, CPra B, CPra C. It will return the response in the following order: {E1, E2, E3, EA1, EA2, EA3, EB1, EB2, EB3, EC1, EC2, EC3}
This time, only offset, limit, option=count is modifying target, so orderBy does not work and returns the same result as GET /v2/entities. {E1, E2, E3, EA1, EA2, EA3, EB1, EB2, EB3, EC1, EC2, EC3} However, when supporting orderBy in the future, the responses of CB, CPra A, CPra B, CPra C will be sorted by the orderBy condition and returned. The order of CPra A, CPra B, CPra C is guaranteed on the CP side, so CB just performs a mergesort.
The pagination parameters will apply on the basis of the order of CPrs. the limit and offset to be passed to ContextProvider while taking into account the order of ContextProvider registration. {E3, EA1, EA2}
If orderBy is not implemented, it will return below output: {E3, EA1, EA2} It will be {EB1, EC1, E2} in the orderBy implementation.
This will return below data: {EA3, EB1, EB2, EB3}
If orderBy is not implemented, it will return below output: {EA3, EB1, EB2, EB3} It will be {EB2, EA2, EC2, E3} in the orderBy implementation. |
We have done some investigation on how the pagination feature laid out in case of request forwarding and how it will be implemented. we have classified some function on the basis of sequence diagram flow and the details of the function which need to be modified for the implementation of pagination in case of request forwarding are given below. Please find below my solution approach and please let us know if you have any suggestion. As per my analysis below is the updated sequence diagram regarding the implementation of pagination in request forwarding: Note: Reference of above image is taken from below link: Note: Reference of above image is taken from below link: Function list in which changes required As per the current understanding of code and sequence diagram, below table contains the details of modification corresponding to the target functions to implementing the pagination feature in case of request forwarding
|
We have started working on implementing this feature with the shared implementation approach. please let us know if you have any query or concern. |
@fgalan @mapedraza Gentle Reminder!! Please let us know the feedback on the shared approach to fix this issue. |
I'm sorry we don't have time to provide feedback on #4149 in a timely manner taking into account the urgency it has for you and that it is not part of the roadmap. Issues that are in the roadmap are the ones in which focus our feedback and review effort. Thus, go ahead with the implementation of #4149 without waiting for our feedback and we will see the PR when it comes. At that moment we have another feedback point. |
Gentle Reminder... |
I have done a first round or review. Please find my comments in the PR itself. |
I'd suggest to wait to close this issues until PR #4341 gets merged. |
Yes, that issues (along with #1647) will be closed. However, I have discovered that this other issue, which is related with pagination and CPrs is not solved: #1025 (comment). Please, have a look. |
We know that the community has the following deprecated and to be discontinued the opinion regarding request forwarding (and pagination at the time of request forwarding) using the registrations/context providers functionality.
#3108 (comment)
#3263 (comment)
However, we would like to realize it with Orion as a contact point for information that each company and local government (context provider) has.
We think that using the request forwarding function is effective for the following reasons.
Orion community has considered two ways to deal with it in the past.
We would like to consider and implement in the direction of the second plan.
#847 (comment)
We devised a way to use no creDate based on the above second plan. please check the diagram below.
If this can be implemented, the context consumer will be able to get all the data of the context providers.
Please consider the implementation.
The text was updated successfully, but these errors were encountered: