-
Notifications
You must be signed in to change notification settings - Fork 4
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
tests: describe and implement tests suite #7
Comments
I'd like to have at least a full integration test, looking a bit like this:
The above should be able to test all essential features already, and reasonably isolated (i.e if there is an issue, we should easily be able to identify what is not working based on which part of the test fails). For data, about 50GiB should be suffcient to already get a good idea of performance and stability. It would also be interesting to see if the solution can handle different scenarios, such as:
For writing, we know there is a potential issue in the current flow, in that 0-stor can be called multiple times concurrently which might lead to index corruption. We should test both slow writing (therefore removing this issue), and fast writing (so we can see the actual real impact of this issue). The above should already provide a large amount of data regarding stability and performance, and if this manages to work bug free we have a solid foundation / first alpha version I'd say |
In this workflow, do you expect to start the filesystem on a fresh 0-db then restore 0-db content from backup ? |
Yeah, although the reverse (restore index with monitor first) should also work right? Need to identify which one is best. And indeed, start filesystem on completely fresh 0-db |
I'm doing some local test following scenarios, and first impression I get out:
In comparaison, disabling hooks, to keep everything locally without any zstor usage:
Settings:
Bugs: |
I've done quite a bit of non systematic testing of storing data, removing the zdb data files, and comparing checksums when the files are restored. My method for simulating node failure, in case it's helpful, is adding an
Then remove it when done with From what I've seen, zstor reliably rebuilds data files with only two of three of the used backend nodes available, using default redundancy settings. I've played a bit with tweaking the redundancy settings and results are as expected. I also noticed in the latest version that zstor no longer waits on a timeout when a node it's trying to retrieve from is unreachable 🙂 |
To get stabilization and reliability, we need tests.
Better is to automate that with actions here.
The text was updated successfully, but these errors were encountered: