[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