All of lore.kernel.org
 help / color / mirror / Atom feed
From: Loic Dachary <loic@dachary.org>
To: Adam Kupczyk <akupczyk@mirantis.com>,
	Ceph Development <ceph-devel@vger.kernel.org>
Subject: Re: Plugins unification
Date: Fri, 29 Jul 2016 15:42:27 +0200	[thread overview]
Message-ID: <579B5D43.3000208@dachary.org> (raw)
In-Reply-To: <CAHMeWhGepAWaeec1wLQoRgV5yAtJ0Jg8FXu65sR43RREtbcqFw@mail.gmail.com>

Hi Adam,

I believe https://github.com/ceph/ceph/pull/7661 is addressing part of your plan.

Cheers

On 29/07/2016 14:40, Adam Kupczyk wrote:
> Hi cephers,
> 
> I plan to unify ceph plugins.
> 
> Currently we have 2 plugin trees:
> 1) erasure-code/ErasureCodePluginRegistry
> type of plugin: class ErasureCodePlugin
> instances:      class ErasureCodePluginJerasure
>                 class ErasureCodePluginSelectJerasure
>                 class ErasureCodePluginLrc
>                 class ErasureCodePluginSelectShec
>                 class ErasureCodePluginShec
> 2) common/PluginRegistry
> type of plugin: class Plugin
> specialization: class CompressionPlugin
> instances:        class CompressionPluginSnappy
>                 class CompressionPluginZlib
> future:
> specialization: class CryptoPlugin
> instances:        class CryptoPluginISAL
> 
> The plan:
> 1) Get rid of EraseCodePluginRegistry.
> 2) Make EraseCodePlugin a specialization of class Plugin.
> 3) PluginRegistry will use ceph configuration for places to search for plugins.
> 4) PluginRegistry.load(...) will no longer get directory to search.
> 5) PluginRegistry will only return std::shared_ptr<Plugin> references.
> 6) PluginRegistry.remove(...) will only delete internal std::shared_ptr<Plugin>.
>    Actual dlclose() will be delayed until all references are deleted.
> 7) static EraseCodePlugin::factory(...), the replacement of
> EraseCodePluginRegistry::factory(...)
>    will return std::dynamic_pointer_cast<EraseCodePlugin>(located_plugin)
> 8) Extend class Plugin to force instances to provide "type" and "name".
> 
> 
> I would really enjoy comments if such unification is beneficial, and
> comments what should be done better.
> 
> Best Regards,
> Adam Kupczyk
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 
Loïc Dachary, Artisan Logiciel Libre
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2016-07-29 13:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-29 12:40 Plugins unification Adam Kupczyk
2016-07-29 13:42 ` Loic Dachary [this message]
2016-07-29 15:22 ` Ken Dreyer

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=579B5D43.3000208@dachary.org \
    --to=loic@dachary.org \
    --cc=akupczyk@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.