All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.