[openstack-dev] [Swift] erasure codes, digging deeper

John Dickinson me at not.mn
Thu Jul 18 18:37:38 UTC 2013


Yes, and I'd imagine that the normal default would be for replicated data.

Moving the granularity from a container to account-based, as Chmouel and Chuck said, is interesting too.

--John

On Jul 18, 2013, at 11:32 AM, Christian Schwede <info at cschwede.de> wrote:

> A solution to this might be to set the default policy as a configuration
> setting in the proxy. If you want a replicated swift cluster just allow
> this policy in the proxy and set it to default. The same for EC cluster,
> just set the allowed policy to EC. If you want both (and let your users
> decide which policy to use) simply configure a list of allowed policies
> with the first one in the list as the default policy in case they don't
> set a policy during container creation.
> 
> Am 18.07.13 20:15, schrieb Chuck Thier:
>> I think you are missing the point.  What I'm talking about is who
>> chooses what data is EC and what is not.  The point that I am trying to
>> make is that the operators of swift clusters should decide what data is
>> EC, not the clients/users.  How the data is stored should be totally
>> transparent to the user.
>> 
>> Now if we want to down the road offer user defined classes of storage
>> (like how S3 does reduced redundancy), I'm cool with that, just that it
>> should be orthogonal to the implementation of EC.
>> 
>> --
>> Chuck
>> 
>> 
>> On Thu, Jul 18, 2013 at 12:57 PM, John Dickinson <me at not.mn
>> <mailto:me at not.mn>> wrote:
>> 
>>    Are you talking about the parameters for EC or the fact that
>>    something is erasure coded vs replicated?
>> 
>>    For the first, that's exactly what we're thinking: a deployer sets
>>    up one (or more) policies and calls them Alice, Bob, or whatever,
>>    and then the API client can set that on a particular container.
>> 
>>    This allows users who know what they are doing (ie those who know
>>    the tradeoffs and their data characteristics) to make good choices.
>>    It also allows deployers who want to have an automatic policy to set
>>    one up to migrate data.
>> 
>>    For example, a deployer may choose to run a migrator process that
>>    moved certain data from replicated to EC containers over time (and
>>    drops a manifest file in the replicated tier to point to the EC data
>>    so that the URL still works).
>> 
>>    Like existing features in Swift (eg large objects), this gives users
>>    the ability to flexibly store their data with a nice interface yet
>>    still have the ability to get at some of the pokey bits underneath.
>> 
>>    --John
>> 
>> 
>> 
>>    On Jul 18, 2013, at 10:31 AM, Chuck Thier <cthier at gmail.com
>>    <mailto:cthier at gmail.com>> wrote:
>> 
>>> I'm with Chmouel though.  It seems to me that EC policy should be
>>    chosen by the provider and not the client.  For public storage
>>    clouds, I don't think you can make the assumption that all
>>    users/clients will understand the storage/latency tradeoffs and
>>    benefits.
>>> 
>>> 
>>> On Thu, Jul 18, 2013 at 8:11 AM, John Dickinson <me at not.mn
>>    <mailto:me at not.mn>> wrote:
>>> Check out the slides I linked. The plan is to enable an EC policy
>>    that is then set on a container. A cluster may have a replication
>>    policy and one or more EC policies. Then the user will be able to
>>    choose the policy for a particular container.
>>> 
>>> --John
>>> 
>>> 
>>> 
>>> 
>>> On Jul 18, 2013, at 2:50 AM, Chmouel Boudjnah
>>    <chmouel at enovance.com <mailto:chmouel at enovance.com>> wrote:
>>> 
>>>> On Thu, Jul 18, 2013 at 12:42 AM, John Dickinson <me at not.mn
>>    <mailto:me at not.mn>> wrote:
>>>>>   * Erasure codes (vs replicas) will be set on a per-container
>>    basis
>>>> 
>>>> I was wondering if there was any reasons why it couldn't be as
>>>> per-account basis as this would allow an operator to have different
>>>> type of an account and different pricing (i.e: tiered storage).
>>>> 
>>>> Chmouel.
>>> 
>>> 
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev at lists.openstack.org
>>    <mailto:OpenStack-dev at lists.openstack.org>
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>> 
>>> 
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev at lists.openstack.org
>>    <mailto:OpenStack-dev at lists.openstack.org>
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> 
>>    _______________________________________________
>>    OpenStack-dev mailing list
>>    OpenStack-dev at lists.openstack.org
>>    <mailto:OpenStack-dev at lists.openstack.org>
>>    http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> 
>> 
>> 
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4082 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130718/25a6bf78/attachment.bin>


More information about the OpenStack-dev mailing list