Skip to content
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

Why do the remote methods doGetRemoteBuffers and doCreateRemoteBuffer include AddDependency and RemoveDependency, while the local methods do not? #2017

Open
fduxzbin opened this issue Nov 18, 2024 · 2 comments

Comments

@fduxzbin
Copy link

Why do the remote methods doGetRemoteBuffers and doCreateRemoteBuffer in vineyard include AddDependency and RemoveDependency? However, there are no related operations in the local methods doCreateBuffer and doCreateBuffers. There is only AddDependency but no RemoveDependency in doGetBuffers.
Please explain the specific role of Dependency in detail. If I perform AddDependency first and then RemoveDependency for all get and create operations, will there be any problems?

@fduxzbin fduxzbin changed the title Why do the remote methods doGetRemoteBuffers and doCreateRemoteBuffer in vineyard include AddDependency and RemoveDependency? However, there are no related operations in the local methods doCreateBuffer and doCreateBuffers. There is only AddDependency but no RemoveDependency in doGetBuffers. Please explain the specific role of Dependency in detail. If I perform AddDependency first and then RemoveDependency for all get and create operations, will there be any problems? Why do the remote methods doGetRemoteBuffers and doCreateRemoteBuffer include AddDependency and RemoveDependency, while the local methods do not? Nov 18, 2024
@dashanji
Copy link
Member

Hi @fduxzbin, thanks for reporting this issue. Could you please tell us what problem you have encountered?

@fduxzbin
Copy link
Author

Hi @fduxzbin, thanks for reporting this issue. Could you please tell us what problem you have encountered?

The reason why I raised this question is that I encountered a scenario where, when it was necessary to release memory, none of the objects were spilled because all objects had Dependency, resulting in a failure to release memory. I found that when you create and get remote objects, you add Dependency before create/get, and then remove Dependency after create/get, thereby achieving immediate release of the object and adding it to the LRU. When it needs to be spilled, it is spilled immediately. My question is, why is there no corresponding operation for local methods when the above operation on remote objects is reasonable. How to avoid the problem of not releasing locally created/get immediately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants