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
Keyvaluestore enhance #1282
Keyvaluestore enhance #1282
Commits on Feb 22, 2014
-
Fix deadlock caused by hold collection obj
Collection is a special object in KeyValueStore, if exists collection modify, this object will be hold. When exists check collection, it will be dead lock to try to access this object. Now lookup transaction cache first to ensure no collection object exists already. Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Move perf counter and add op queue reserve throttle
The perf counter of FileStore can shared with other ObjectStore backend, so move it to ObjectStore and adjust position to let other KeyValueStore refer to. Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Add get_*_with_header to StripObjectHeader
In some situations, we need to ensure header is held and try to read, so read interfaces need to accept header argument to allow. Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Use rename operation to make colection_move atomic
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Adjust some interfaces to optimize caller codes
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Add read/write operation to store_test.cc
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Return 0 when the offset of read exceed the length of object
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Fix incorrect read and truncate
If the first chunk of object is not read entirely, the current implementation will contain it entirely which make wrong. Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Unify object level lock in GenericObjectMap
Before we copy lock implementation from DBObjectMap which provide with two locks for header. Here just unify it to make ease. Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Optimize write call add enhance error detect
A single write call may need several keys in the backend kv store. Let get these keys one time. Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Remove unnecessary "check_coll" check
The goal of "check_coll" is aimed to ensure the collection is exists. But the create and delete of collection already ensured by OSD, just remove check. Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Implement collection_rename interface in KeyValueStore
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Make SequencePosition sync by each transaction
Each object modify will increase SequencePosition and sync it to disk Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
KeyValueStore use kv backend to detect errors and nearly can't know the actual reason for error. Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Add backend check option to KeyValueStore
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Add config tracker to KeyValueStore
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Remove eio inject codes in KeyValueStore
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Add KeyValueStore op thread options
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
Rename keyvaluestore_check_backend to keyvaluestore_debug_check_backend
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>