Comment 0 for bug 531273

Revision history for this message
Roman Yepishev (rye) wrote : Local metadata rescan takes ages: 28 minutes for 1457 objects

Trunk.

I added my Documents folder with 1184 obejcts (files/folders) to ubuntuone via UDF, additionally to 273 objects in Ubuntu One.

It took 28 minutes for syncdaemon to perform local rescan, i.e. from u1sdtool --connect to IDLE state. I believe this means that there is a separate transaction for every query.

The log is filled with the records of such kind:

2010-03-03 12:01:00,128 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_META_QUEUE_WAITING, args:(), kw:{}
2010-03-03 12:01:00,130 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - (unrolled) query share:'c1ef0c4c-2442-4fdf-88c9-c8d963b7c718' node:'c9fde1df-4fc9-46f5-b9be-6958c1a64fb5' (unrolled) query(node="'c9fde1df-4fc9-46f5-b9be-6958c1a64fb5'", index='0', share="'c1ef0c4c-2442-4fdf-88c9-c8d963b7c718'", hash="''") starting
2010-03-03 12:01:00,135 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - (unrolled) query share:'c1ef0c4c-2442-4fdf-88c9-c8d963b7c718' node:'c9fde1df-4fc9-46f5-b9be-6958c1a64fb5' (unrolled) query(node="'c9fde1df-4fc9-46f5-b9be-6958c1a64fb5'", index='0', share="'c1ef0c4c-2442-4fdf-88c9-c8d963b7c718'", hash="''") running
2010-03-03 12:01:00,143 - ubuntuone.SyncDaemon.State - DEBUG - IDLE --[SYS_META_QUEUE_WAITING]--> START_WORKING_ON_METADATA
2010-03-03 12:01:00,144 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_STATE_CHANGED, args:(), kw:{'state': <WorkingSDState START_WORKING_ON_METADATA>}
2010-03-03 12:01:01,074 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - (unrolled) query share:'c1ef0c4c-2442-4fdf-88c9-c8d963b7c718' node:'c9fde1df-4fc9-46f5-b9be-6958c1a64fb5' (unrolled) query(node="'c9fde1df-4fc9-46f5-b9be-6958c1a64fb5'", index='0', share="'c1ef0c4c-2442-4fdf-88c9-c8d963b7c718'", hash="''") success
2010-03-03 12:01:01,077 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_META_QUEUE_DONE, args:(), kw:{}
2010-03-03 12:01:01,077 - ubuntuone.SyncDaemon.State - DEBUG - START_WORKING_ON_METADATA --[SYS_META_QUEUE_DONE]--> IDLE

I think this is a major issue. There is no reason why every object will be queried separately as this is extremely inefficient. There needs to be some way to make the local rescan download the 'snapshot' of the server side.

I can reproduce that every time I start syncdaemon and connect to the service.