-
Notifications
You must be signed in to change notification settings - Fork 57
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
Random store failures without any error reported #3
Comments
Yes, very short keys (1 to 6 bytes) are known to be buggy when using the disk datastore. Try the same test using large keys (8 bytes and more). Switch to vedis_exec ( ) instead of the raw datastore api which handle short keys well. |
Updating the code to use much longer keys (min 28 bytes) doesn't change anything.
|
How about vedis_exec ( ) instead of the raw datastore api: vedis_kv_fetch(), vebis_kv_store (), etc. |
Just tested with |
OK, we've experienced the same problem with unqlite which is another product we develop but it was quickly fixed about 8 months ago and since vedis disk kv layer is based on unqlite I think that this obscure bug is manifesting here. Anyway, I have to investigate this deeply. |
Just tried UnQLite. Issue is reproducible there too. |
Yes, apparently this shitty bug is manifesting here. You can help by requesting the source code to UnQLite to devel@symisc.net and investigating the problem with me. |
@symisc I need your help here. I tracked the issue down to hot-dirty pages handling. Specifically, So, if I guard Could you please clarify what "hot-dirty" means? What pages can be hot-dirty and what pages can't? |
The problem with UnQLite still seems to be present, at least in v1.1.6. |
Sometimes vedis fails to store key.
vedis_kv_store
returnsVEDIS_OK
, but the successivevedis_kv_fetch
returnsVEDIS_NOTFOUND
for the same key.It doesn't occur for in-memory store. Also I can't reproduce it without
vedis_kv_delete
calls.Here is the test case. Usually it fails within 1 minute with "Unable to fetch: -6".
The text was updated successfully, but these errors were encountered: