http://bugzilla.moblin.org/show_bug.cgi?id=7134
--- Comment #3 from yongsheng zhu <[email protected]> 2009-10-25 23:29:30 --- I collected PEV events and time data for different kinds of sync modes and many usage scenarios and got below conclusions: 1) The highest time cost is network transport. In all of these scenarios, they take about 70~90% of total time based on my network conditions. It may varies under different environments. But it should be the highest one, not sync modes. 2) Based on the 1st truth, all of them could be partitioned into 3 big steps: session init, data preparation, send and receive, session end. In a widely common usage scenario(such as two-way sync without errors, others sync mode are the same), each step contains one send/receive of syncML message. Another reason to adopt this partition is that each step has a decided started/ended PEV command so we can easy to track. 3) Here are detailed descriptions for 3 steps: Session init step: clients prepares auth info and device info, set up connection and send them to server and server returns auth result and its device info. Data preparation, send and receive: client prepares its backend data(if has) and sends them to server. Server receives them and sends status and its own data items to client(if has and needed). Session end: client parses server's data items and stores them in backend and send a message to end the session. 4) The temporal distribution is not equal for 3 steps statically. And also step 1 and step2 don't know what percent they will take. Reasons could be summarized as: each step may not have only one send/receive messages 5) Major possible reasons to affect progress: sync errors and the number of network transport. 6) Possible time factors in each step: Session init step: transport connection setup, authencation(zyb could make us send 3 times authencation info) Data preparation, send and receive: the number of data items, which could increase the number of message sending and receiving; reading data from backend Session end: data writing to backend 7) Based on the above description, my proposal is that progress calculation should be based on 3 big steps and networks transports since there are the most important. Though in step1 and step2, we can't know what extractly progress we are, but I'd like to change percentages dynamically according to current step information. For example, in the step2, if we find many data items to be sent in many messages, we'd increase percentage of step2 and reduce percentages of step3 dynamically. -- Configure bugmail: http://bugzilla.moblin.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching someone on the CC list of the bug. _______________________________________________ Syncevolution-issues mailing list [email protected] http://lists.syncevolution.org/listinfo/syncevolution-issues
