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
osd: bluestore: Add per-pool compression capability #10556
Conversation
@@ -77,9 +77,17 @@ const char *ceph_osd_alloc_hint_flag_name(int f) | |||
return "shortlived"; | |||
case CEPH_OSD_ALLOC_HINT_FLAG_LONGLIVED: | |||
return "longlived"; | |||
case CEPH_OSD_ALLOC_HINT_FLAG_COMPRESSIBLE: |
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.
Hmm, do we really want to remove the alloc_hint flags, or can they coexist? The nice thing about the existing ones is that they are persistent, so we have the [in]compressible information at any time (not just for a given write).
My original plan here, instead of adding something like write_params_t, was to add an ObjectStore method like collection_set_param(key, value) that would pass in semi-arbitrary options for a collection. Then the OSD could feed in these per-pool things for each PG collection from the PGPool update method in the OSD whenever the pool is changed, and we wouldn't need to add any new stuff to individual writes. Adding per-write flags like incompressible is probably useful, but I think we can use the existing flags field for that? |
…ompressor.h Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
…ints and implement them as standalone flags for write op Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
…on to be able to pass per-pool compression settings Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
…ession Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
…ssion was applied via statfs report Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
4282286
to
8b6acb6
Compare
Replaced with PR #11094 |
This PR enables per-pool compression for BlueStore.
Following parameters were added to pool settings:
compress_hint - determines if pool contains compressible / incompressible data
compress_algorithm - permits to specify different compression algorithm
compress_ratio - specifies maximum compression ratio
ObjectStore::Transaction::Op was extended to pass these parameters for any write request.
And corresponding handling was added to BlueStore to support per-write compression parameter specification.
Signed-off-by: Igor Fedotov ifedotov@mirantis.com