Both Metadata.update() and container_update() should apply on all replicas, and 
metadata.update() will write xattrs, and container_update() will  write to 
sqlite db files. Surprisingly to see so long time to update both.

--ywang

发自我的 iPhone

在 2011-12-20,19:13,Rustam Aliyev <[email protected]> 写道:

> Hi Mike,
> 
> Thanks, I didn't know that PUT operation also includes updating replica 
> containers. That makes sense. I will check that.
> 
> In the mean time I've added debug checkpoints into PUT operation to measure 
> different steps. Modified code is here: http://paste.openstack.org/show/3899/ 
> (original: 
> https://github.com/openstack/swift/blob/master/swift/obj/server.py#L530). 
> Basically, I added some self.logger.debug() with timestamp in few places.
> 
> I'm not python dev and don't know swift internals, so it's quite possible 
> that I've got something wrong. In any case here are few sample results: 
> http://paste.openstack.org/show/3900/
> 
> Basically, there are 2 steps which take too long:
> write metadata (line #63 of the first paste, metadata.update()), this takes 
> 0.5-1.0 sec!
> update container (line #85, self.container_update()), this is second slowest, 
> also in the range of ~0.5-1.0 sec.
> I assume that self.container_update() includes replica updates. But why does 
> metadata.update() takes so long? Does it also imply replica updates?
> 
> Overall, I have to say that troubleshooting of swift is impossible.     
> There's almost no difference between log levels INFO and DEBUG. Would be nice 
> to have some more info in DEBUG and even TRACE level for this kinda problems.
> 
> --
> Rustam.
> 
> On 20/12/2011 04:41, Michael Barton wrote:
>> 
>> On Mon, Dec 19, 2011 at 6:21 AM, Rustam Aliyev <[email protected]> wrote:
>>> The only thing which looks suspicious to me are these errors:
>>> 
>>> Dec 18 04:01:28 ec01 object-server ERROR container update failed with
>>> 10.0.1.3:6001/d01 (saving for async update later): Timeout (3s) (txn:
>>> txdf95ad5a10844ee0b74d70d8a7638082)
>>> Dec 18 04:01:28 ec01 object-server ERROR container update failed with
>>> 10.0.1.2:6001/d01 (saving for async update later): Timeout (3s) (txn:
>>> txee2545ba4610430fa3a6a166ca50c574)
>>> Dec 18 04:01:28 ec01 object-server ERROR container update failed with
>>> 10.0.1.8:6001/d01 (saving for async update later): Timeout (3s) (txn:
>>> tx2546b29b15c643ec90a122a753dfddd3)
>> 
>> Yeah, that is likely to be the culprit.  Each write is taking at least
>> 3 seconds because it's timing out trying to update the container
>> servers.
>> 
>> So you need to debug connectivity from this object server to those IP
>> addresses on port 6001 -- that the IP addresses and port are correct,
>> everything's on the same network, there aren't any firewall rules
>> blocking those connections, that the container servers are running and
>> accepting connections, etc.  I'll read through your paste in a bit and
>> see if I notice anything.
>> 
>> -- Mike
>> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to