<div dir="ltr">Hello,<div>i am GSoC Participant. i am interested in Synchronization Project. </div><div><br><div><div style="font-size:13px">what i understood is we have to build PHP Scripts which connect to Remote Machine and Synchronize data.</div><div style="font-size:13px">which means same database structure at both end and we are coping each end's new row's to another end. Right?</div><div style="font-size:13px"><br></div><div style="font-size:13px">i have started with my proposal. i wanted to ask what should be length of proposal? 7 or 8 page is okay or Do i have to make it short?</div><div style="font-size:13px"><br></div><div style="font-size:13px">Actually, i already did something like this in my past project.i can't disclose code because i signed Non-Disclosure Agreement of that company. it was two platform project. web-application(PHP) and Desktop application(C# WPF). data is stored at desktop database(SQLite) locally, so user can view, update, delete data offline. and when internet available, system will run script to synchronize data. </div><div style="font-size:13px"><br></div><div style="font-size:13px">I have faced many problems while solving the problem that i have listed below. can you send me your expected solution for those problem so that i can understand your expectations and project requirement.</div><div style="font-size:13px"><br></div><div style="font-size:13px">Problems:</div><div style="font-size:13px"><p class="MsoNormal"><b><u><span style="font-size:16pt;line-height:22.8266677856445px">Insert</span></u></b><b><span style="font-size:16pt;line-height:22.8266677856445px">:</span></b></p></div><div style="font-size:13px"><br></div><div style="font-size:13px"><p class="MsoNormal">Case 1: insert at DB1</p><table border="1" cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border:none;margin-left:6.75pt;margin-right:6.75pt"><tbody><tr><td width="301" valign="top" style="width:225.4pt;border:1pt solid windowtext;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB1</p></td><td width="301" valign="top" style="width:225.4pt;border-style:solid solid solid none;border-top-color:windowtext;border-right-color:windowtext;border-bottom-color:windowtext;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB2</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">Before Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step1: Two record with ID 1 & 2 in inserted</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows : null</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">After Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Two record with ID 1 & 2 in inserted</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2</p></td></tr></tbody></table><p class="MsoNormal"> </p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Case 2: insert at DB2</p><p class="MsoNormal"></p><table border="1" cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border:none;margin-left:6.75pt;margin-right:6.75pt"><tbody><tr><td width="301" valign="top" style="width:225.4pt;border:1pt solid windowtext;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB1</p></td><td width="301" valign="top" style="width:225.4pt;border-style:solid solid solid none;border-top-color:windowtext;border-right-color:windowtext;border-bottom-color:windowtext;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB2</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">Before Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step1: Two record with ID 3 & 4 in inserted</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">After Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Two record with ID 3 & 4 in inserted</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4</p></td></tr></tbody></table><p class="MsoNormal"><br></p></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><p class="MsoNormal" style="font-size:13px">Case 3: Insert at Both DB1&DB2</p><table border="1" cellspacing="0" cellpadding="0" align="left" style="font-size:13px;border-collapse:collapse;border:none;margin-left:6.75pt;margin-right:6.75pt"><tbody><tr><td width="301" valign="top" style="width:225.4pt;border:1pt solid windowtext;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB1</p></td><td width="301" valign="top" style="width:225.4pt;border-style:solid solid solid none;border-top-color:windowtext;border-right-color:windowtext;border-bottom-color:windowtext;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB2</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">Before Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step 1: one new record inserted with id 5</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4,5(of DB1)<b></b></p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4,5(of DB1)</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step 2: one new record inserted with id 5</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4,5(of DB2)</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">After Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"> </p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"> </p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"><font color="#ff0000">What should happen in this case? If we want to sync this we need some differentiate to identify both DB. </font><br><font color="#ff0000">In my past project I provided Device ID. Means PRIMARY KEY and DEVICE ID both will make Composite Key which make it unique to identify.</font></p><p class="MsoNormal" style="margin-bottom:0.0001pt"><span style="color:red">What is your preferred solution?</span></p></td></tr></tbody></table><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"> </div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><p class="MsoNormal"><b><u><span style="font-size:14pt;line-height:19.9733333587647px">Update</span></u></b><b><span style="font-size:14pt;line-height:19.9733333587647px">:  in this case we required updated row timestamp, I am assuming there is update_timestamp column in each table</span></b></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Case 1:  update at DB1</p><p class="MsoNormal"></p><table border="1" cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border:none;margin-left:6.75pt;margin-right:6.75pt"><tbody><tr><td width="301" valign="top" style="width:225.4pt;border:1pt solid windowtext;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB1</p></td><td width="301" valign="top" style="width:225.4pt;border-style:solid solid solid none;border-top-color:windowtext;border-right-color:windowtext;border-bottom-color:windowtext;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB2</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">Before Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step1: updating row with id 1</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1(updated),2,3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1(old),2,3,4</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">After Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1(updated),2,3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">update row with id 1</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1(updated),2,3,4</p></td></tr></tbody></table><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><p class="MsoNormal">Case 2:  update at DB2</p><table border="1" cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border:none;margin-left:6.75pt;margin-right:6.75pt"><tbody><tr><td width="301" valign="top" style="width:225.4pt;border:1pt solid windowtext;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB1</p></td><td width="301" valign="top" style="width:225.4pt;border-style:solid solid solid none;border-top-color:windowtext;border-right-color:windowtext;border-bottom-color:windowtext;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB2</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">Before Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1(updated),2(old),3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step1: updating row with id 2</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1(updated),2(updated),3,4</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">After Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">update row with id 2</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1(updated),2(updated),3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1(updated),2(updated),3,4</p></td></tr></tbody></table><p class="MsoNormal"> </p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Case 3: update at both side but different timestamp</p><table border="1" cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border:none;margin-left:6.75pt;margin-right:6.75pt"><tbody><tr><td width="301" valign="top" style="width:225.4pt;border:1pt solid windowtext;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB1</p></td><td width="301" valign="top" style="width:225.4pt;border-style:solid solid solid none;border-top-color:windowtext;border-right-color:windowtext;border-bottom-color:windowtext;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB2</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">Before Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step1: updating row with id 2</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2(updated),3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2(old),3,4</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2(updated),3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step1: updating row with id 2</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2(updated),3,4</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">After Synchronization (both update is different and timestamp is also different)</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"> </p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"> </p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"><span style="color:red">In this case both side update is different, what should be final record. I think I should be last one updated. Right?</span></p><p class="MsoNormal" style="margin-bottom:0.0001pt"><span style="color:red">What is preferred solution?</span></p></td></tr></tbody></table><p class="MsoNormal"></p><p class="MsoNormal"> </p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Case 4: update at both side but <span style="color:red">same</span> timestamp</p><p class="MsoNormal"></p><table border="1" cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border:none;margin-left:6.75pt;margin-right:6.75pt"><tbody><tr><td width="301" valign="top" style="width:225.4pt;border:1pt solid windowtext;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB1</p></td><td width="301" valign="top" style="width:225.4pt;border-style:solid solid solid none;border-top-color:windowtext;border-right-color:windowtext;border-bottom-color:windowtext;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB2</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">Before Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step1: updating row with id 2</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2(updated),3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step1: updating row with id 2</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2(updated),3,4</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">After Synchronization (both update is different but time stamp is same)</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"> </p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"> </p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"><span style="color:red">In this case both side update is different and time stamp is same!! So here again we need  DEVICE ID by which we can identify that both update is different.</span></p><p class="MsoNormal" style="margin-bottom:0.0001pt"><span style="color:red">And what should I store finally, because which one we have to finally store is depends on timestamp, which is SAME for BOTH DB!!! What is preferred solution?</span></p><p class="MsoNormal" style="margin-bottom:0.0001pt"><span style="color:red"> </span></p></td></tr></tbody></table><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><br></div><div style="font-size:13px"><p class="MsoNormal"><b><u><span style="font-size:16pt;line-height:22.8266677856445px">Delete</span></u></b><b><span style="font-size:16pt;line-height:22.8266677856445px">:</span></b></p><p class="MsoNormal">Case 1: deleted at DB1</p><table border="1" cellspacing="0" cellpadding="0" align="left" style="border-collapse:collapse;border:none;margin-left:6.75pt;margin-right:6.75pt"><tbody><tr><td width="301" valign="top" style="width:225.4pt;border:1pt solid windowtext;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB1</p></td><td width="301" valign="top" style="width:225.4pt;border-style:solid solid solid none;border-top-color:windowtext;border-right-color:windowtext;border-bottom-color:windowtext;border-top-width:1pt;border-right-width:1pt;border-bottom-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">DB2</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">Before Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Step1: row with id 3 is deleted.</p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4</p></td></tr><tr><td width="601" colspan="2" valign="top" style="width:450.8pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" align="center" style="margin-bottom:0.0001pt;text-align:center">After Synchronization</p></td></tr><tr><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid;border-right-color:windowtext;border-bottom-color:windowtext;border-left-color:windowtext;border-right-width:1pt;border-bottom-width:1pt;border-left-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt"><span style="color:red">In this case row with id 3 will be added at DB1 because for SYSTEM it’s newly added row at DB2.</span></p><p class="MsoNormal" style="margin-bottom:0.0001pt"><span style="color:red">To handle this problem in my past project I maintained Activity logs. Which stores that row with id 3 is deleted, so when synchronization take place, I fetch logs from activity log and first delete row with ID 3 in DB2.</span></p><p class="MsoNormal" style="margin-bottom:0.0001pt"><span style="color:red">What is your preferred Solution?</span></p><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4</p></td><td width="301" valign="top" style="width:225.4pt;border-style:none solid solid none;border-bottom-color:windowtext;border-bottom-width:1pt;border-right-color:windowtext;border-right-width:1pt;padding:0cm 5.4pt"><p class="MsoNormal" style="margin-bottom:0.0001pt">Current rows :1,2,3,4</p></td></tr></tbody></table><p class="MsoNormal"></p><p class="MsoNormal"> </p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal"><br></p><p class="MsoNormal">Regards,</p><p class="MsoNormal">Jay Jayswal</p></div></div></div></div>