-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
[rados] Development of RADOS binding of Ceph FS #670
Conversation
@@ -93,6 +93,8 @@ LICENSE file. | |||
<tarantool.version>1.6.5</tarantool.version> | |||
<aerospike.version>3.1.2</aerospike.version> | |||
<solr.version>5.4.0</solr.version> | |||
<rados.version>0.3.0-SNAPSHOT</rados.version> | |||
<json.version>20160212</json.version> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should just be set in the pom for the rados client, since it needn't be shared across different datastore bindings..
The travis failure is because you need to add the new module to the list of dependencies for the distribution module. |
I fixed all code you mentioned, and an additional error. |
</dependencies> | ||
|
||
<properties> | ||
<rados.version>0.3.0-SNAPSHOT</rados.version> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't rely on SNAPSHOT versions in our releases. Can we rely on a prior version? If not, when is 0.3.0 expected to come out?
I changed the version to 0.2.0 and merged from YCSB master for updating to 0.9.0-SNAPSHOT. |
pool = POOL_DEFAULT; | ||
} | ||
|
||
rados = new Rados(id); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to be protected by a lock, sine rados is static and we instantiate a client for each thread.
Presuming the rados and ioctx objects are themselves threadsafe, then you should synchronize and use a threadcount to decide when it's safe to do shutdown in the cleanup
method.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did you mean these to change Static Strings? The three value will be different depend on user setting.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I mean the member variables rados
and ioctx
are static. We instantiate a RadosClient per worker thread in the client, so access to initializing and cleaning up these static members must be protected by a lock.
If the member classes themselves aren't threadsafe, then you'll need to either guard all uses with a lock or switch to making them non-static.
does rados provide any kind of testing utility jar that could be used to include a test? |
I switched |
Does Ceph have some kind of artifact for making a local test instance that we could make use of? (see the |
I was not able to find the test instance for Ceph, so I updated to skip the test using |
Development of RADOS binding of Ceph File System
Even though Ceph FS is not NoSQL database, RADOS, Ceph utility, supports object-based storage.
For Ceph benchmark for cloud services. I implemented RADOS binding using rados-java library expect the scan() function.