[Openstack] {Swift] On demand replication
Mark Kirkwood
mark.kirkwood at catalyst.net.nz
Mon Dec 5 20:39:24 UTC 2016
Thanks John - increasing the partition coverage is a great idea (I
hadn't considered doing that).
Now with respect to the lack of durability implication - I should have
said we are using a 2 region topology with (region) affinity set, so
altho the initial object placement will be generally durable, in the
case where someone was (perhaps overly) concerned about it living in
both regions we were looking at how to 'encourage' that to happen (ahead
of the steady process that the replicator is making).
regards
Mark
On 06/12/16 05:41, John Dickinson wrote:
> I'd suggest monitoring overall replications status with a combination of log monitoring and swift-dispersion-report. If you find something that is under-replicated, you can run the replicator process and give it a list of partitions to prioritize. http://docs.openstack.org/developer/swift/admin_guide.html#dispersion-report I'd recommend running dispersion report with 100% coverage.
>
> However, your question implies that when an object is created it is not durable in the system. That's not the case. Swift will not return with a success unless the data has been durably persisted in the cluster (a quorum of writes). Quorum is determined per storage policy; in a replicated policy, quorum is half + 1 for odd numbers of replicas and half for even numbers of replicas. This means that when a client gets a 201 response to an object PUT request, that object has been stored at least 2 times in a 3-replica storage policy (and it's extraordinarily likely it was stored a full 3 times).
>
> Let me know if you want more details about this.
>
> --John
>
>
>
>
> On 4 Dec 2016, at 14:56, Mark Kirkwood wrote:
>
>> Suppose you have a newly created object, and want to ensure it has replicated (i.e this object is 'special' in some way). If the replication process is taking a while, is it sensible to 'encourage' Swift replication via direct HTTP calls using the 'replicate' method (or is this dangerous)?
>>
>>
>> E.g:
>>
>> markir at obj4:/srv/node/vdb/objects/5$ ls 55e
>> ls: cannot access '55e': No such file or directory
>>
>> markir at obj1:~$ curl -v -X REPLICATE "http://obj4:6000/vdb/5/55e"
>>
>> markir at obj4:/srv/node/vdb/objects/5$ sleep 30;ls 55e
>> 5c38bfdd63f01a8e56260105fc68555e
>>
>>
>> regards
>>
>>
>> Mark
>>
>>
>>
>> _______________________________________________
>> Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>> Post to : openstack at lists.openstack.org
>> Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
More information about the Openstack
mailing list