From: Igor Fedotov <ifedotov@mirantis.com>
To: ceph-devel <ceph-devel@vger.kernel.org>
Subject: Dev Meeting followup on compression
Date: Mon, 8 Feb 2016 19:34:07 +0300 [thread overview]
Message-ID: <56B8C37F.9050904@mirantis.com> (raw)
Guys,
let me summarize what we decided regarding compression support in Ceph
during the Dev Meeting last week.
Below are possible implementation options, their pros/cons and the
conclusion.
1) Add compression support to RGW.
Pros/Cons:
+ Simple
+ Reduced inter-component traffic
- Limited to specific clients
- Will conflict with partial read/writes if any appear
Alyona Kiseleva from Mirantis (akyseleva@mirantis.com) will start
implementing this promptly. You can ask additional questions to her via
e-mail or during daily RGW stendups she is planning to attend regularly.
2) Add basic compression support to BlueStore. Basic = "Append only"
functionality to be implemented. Specific "append only" hint/flag needs
to be introduced for object creation interface.
Pros/Cons:
+ Moderate complexity
+ Suits for any client/PG backend
+ Good isolation from other Ceph components
- Limited applicability
- additional 50-200% CPU load for the cluster since we compress each
replica/EC shard independently
- no inter-component traffic saving
- recovery procedure requires decompress/recompress sequence
Mirantis ( me specifically ) will start blueprint/POC creation for this
promptly. I'm planning to attend daily RBD syncup regularly to inform on
the progress.
3) Add full compression support at BlueStore. This includes 2) + support
for random object writes.
Pros/Cons:
+ Severe complexity
+ Suits for any client/PG backend
+ Good isolation from other Ceph components
- additional 50-200% CPU load for the cluster since we compress each
replica/EC shard independently
- no inter-component traffic saving
- recovery procedure requires decompress/recompress sequence
On-Hold for now. Will require insert/delete data range for the store.
4) Add basic ( append only ) compression support at OSD using interim
PGBackend.
Pros/Cons:
+ Moderate complexity
+ Suits for any client/PG backend
+ Data compressed before replication/"EC inflation"
+ inter-component traffic saving
+ recovery procedure don't need decompress/recompress sequence
- Too tight(danger) integration into Ceph internals
- Limited applicability
- Bad experience with "append only" notion for EC and desire to avoid
that for compression
Rejected ( Personally I'd prefer this option with subsequent mutation to
full RW support. The rationale is the reduced CPU load comparing to
options 2 & 3)
Any additional comments/suggestions are welcome.
Thanks,
Igor
next reply other threads:[~2016-02-08 16:34 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-08 16:34 Igor Fedotov [this message]
2016-02-08 19:23 ` Dev Meeting followup on compression Ilya Dryomov
2016-02-09 13:24 ` Igor Fedotov
2016-02-09 15:34 ` Samuel Just
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56B8C37F.9050904@mirantis.com \
--to=ifedotov@mirantis.com \
--cc=ceph-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.