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

Optimization of op-env's Write Operations #193

Open
lurenpluto opened this issue Apr 11, 2023 · 0 comments
Open

Optimization of op-env's Write Operations #193

lurenpluto opened this issue Apr 11, 2023 · 0 comments
Labels
Any Idea Any problem/ideas/suggestions cyfs-base Functions and components in cyfs-base project cyfs-lib Functions and components in cyfs-lib project feature New feature Performance about performance issues

Comments

@lurenpluto
Copy link
Member

The current cache hierarchy structure of op-env is as follows:

op-env-cache层级结构图

Each op-env has its memory cache for caching all modified object-map objects. As described in #159, all write operations in op-env currently use the copy-on-write strategy, resulting in a large number of temporary object-map intermediate objects during consecutive writes. These objects are stored in the op-env-cache.

Upon closer examination, is the copy-on-write strategy necessary for a op-env? Since the cache is exclusive for each op-env, an object-map that needs modification will be loaded in the order of noc -> object-map-root-cache -> op-env-cache. Once it reaches the op-env-cache, it becomes exclusive to the current op-env, so it can be directly modified in a mutable form on the object-map.

If this optimization is implemented, it would significantly improve the performance of a large number of write operations for a single op-env.

@lurenpluto lurenpluto added feature New feature Any Idea Any problem/ideas/suggestions Performance about performance issues cyfs-base Functions and components in cyfs-base project cyfs-lib Functions and components in cyfs-lib project labels Apr 11, 2023
@lurenpluto lurenpluto moved this to 💬To Discuss in CYFS-Stack & Services Apr 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Any Idea Any problem/ideas/suggestions cyfs-base Functions and components in cyfs-base project cyfs-lib Functions and components in cyfs-lib project feature New feature Performance about performance issues
Projects
Status: 💬To Discuss
Development

No branches or pull requests

1 participant