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.
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.
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:{} SyncDaemon. ActionQueue - DEBUG - (unrolled) query share:' c1ef0c4c- 2442-4fdf- 88c9-c8d963b7c7 18' node:'c9fde1df- 4fc9-46f5- b9be-6958c1a64f b5' (unrolled) query(node= "'c9fde1df- 4fc9-46f5- b9be-6958c1a64f b5'", index='0', share=" 'c1ef0c4c- 2442-4fdf- 88c9-c8d963b7c7 18'", hash="''") starting SyncDaemon. ActionQueue - DEBUG - (unrolled) query share:' c1ef0c4c- 2442-4fdf- 88c9-c8d963b7c7 18' node:'c9fde1df- 4fc9-46f5- b9be-6958c1a64f b5' (unrolled) query(node= "'c9fde1df- 4fc9-46f5- b9be-6958c1a64f b5'", index='0', share=" 'c1ef0c4c- 2442-4fdf- 88c9-c8d963b7c7 18'", hash="''") running SyncDaemon. State - DEBUG - IDLE --[SYS_ META_QUEUE_ WAITING] --> START_WORKING_ ON_METADATA SyncDaemon. EQ - DEBUG - push_event: SYS_STATE_CHANGED, args:(), kw:{'state': <WorkingSDState START_WORKING_ ON_METADATA> } SyncDaemon. ActionQueue - DEBUG - (unrolled) query share:' c1ef0c4c- 2442-4fdf- 88c9-c8d963b7c7 18' node:'c9fde1df- 4fc9-46f5- b9be-6958c1a64f b5' (unrolled) query(node= "'c9fde1df- 4fc9-46f5- b9be-6958c1a64f b5'", index='0', share=" 'c1ef0c4c- 2442-4fdf- 88c9-c8d963b7c7 18'", hash="''") success SyncDaemon. EQ - DEBUG - push_event: SYS_META_ QUEUE_DONE, args:(), kw:{} SyncDaemon. State - DEBUG - START_WORKING_ ON_METADATA --[SYS_ META_QUEUE_ DONE]-- > IDLE
2010-03-03 12:01:00,130 - ubuntuone.
2010-03-03 12:01:00,135 - ubuntuone.
2010-03-03 12:01:00,143 - ubuntuone.
2010-03-03 12:01:00,144 - ubuntuone.
2010-03-03 12:01:01,074 - ubuntuone.
2010-03-03 12:01:01,077 - ubuntuone.
2010-03-03 12:01:01,077 - ubuntuone.
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.