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

Revise PUT load registry storage #68

Open
carpawell opened this issue Oct 4, 2023 · 3 comments
Open

Revise PUT load registry storage #68

carpawell opened this issue Oct 4, 2023 · 3 comments
Labels
bug Something isn't working I4 No visible changes S2 Regular significance U3 Regular

Comments

@carpawell
Copy link
Member

Expected Behavior

PUTing an object to NeoFS should do put an object to NeoFS not something else:

iteration_duration.......: avg=2.01s min=277.33µs med=1.76s max=18.59s p(90)=2.85s p(95)=3.51s
...
neofs_obj_put_duration...: avg=1.97s min=641.68ms med=1.72s max=18.52s p(90)=2.8s  p(95)=3.43s

Current Behavior

Sometimes it is possible to get such results:

iteration_duration.......: avg=6.94s min=270.07µs med=6.32s    max=27.76s p(90)=11.46s p(95)=13.61s
...
neofs_obj_put_duration...: avg=1.38s min=608.86ms med=948.46ms max=18.71s p(90)=2.07s  p(95)=3.44s

An average iteration exceeds NeoFS network part more than 4 times.

Possible Solution

Do not write objects to a local registry. See also how good an object generation is.

Steps to Reproduce (for bugs)

Just repeat and repeat and repeat load with a registry turned on and wait until iteration_duration and neofs_obj_put_duration differs enough not to make results believable.

Context

Sometimes PUT load may have extremely low speed and it does not seem like a NeoFS error: xk6 just does not provide a satisfying load.
NOTE: could be fixed in #67. Should be rechecked.

@carpawell carpawell added bug Something isn't working research labels Oct 4, 2023
@carpawell
Copy link
Member Author

Maybe add some metrics that say what time registry operations take.

@roman-khimov
Copy link
Member

Do not write objects to a local registry

I have not looked at its internals, but it seems to me we need this registry for subsequent object fetching. But does it need to be stored anywhere or in-mem map will suffice is an open question to me.

@carpawell
Copy link
Member Author

carpawell commented Oct 4, 2023

I have not looked at its internals, but it seems to me we need this registry for subsequent object fetching.

Yes, it is needed only if we are PUTting and GETting objects at the same time. So we are testing a storage and using another storage for it with undefined (by default) i/o latency (from an object iteration point of view). So in-mem may look better, yes.

@roman-khimov roman-khimov added U3 Regular S2 Regular significance I4 No visible changes and removed research labels Dec 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working I4 No visible changes S2 Regular significance U3 Regular
Projects
None yet
Development

No branches or pull requests

2 participants