yep, I see 1-2min difference, my test box (desktop PC) is not updating time via NTP regularly though. So, maybe I should not worry about these small differences the. If I turn on NTP the difference should disappear, in theory, right? Thanks
On Mon, Sep 12, 2011 at 1:27 AM, Alain Vongsouvanh <[email protected]> wrote: > Hello Alexey, > Our servers use NTP to sync their date and time. However, not sure which > source they are using, but any should work. > About contact not being updated, I don't think this should be an issue if no > data has been updated in our servers. > Best, > Alain > > On Thu, Sep 8, 2011 at 9:14 PM, Alexey Panteleev <[email protected]> wrote: >> >> We're doing synchronization between more than one system (not just >> google) and so the same contact may have been updated at timeA (as >> reported by systemA), at timeB (as reported by systemB), ... I don't >> want to compare timeA to timeB directly when deciding which update has >> happened later so I am trying to figure out the approximate server >> time difference to use as an error threshold. Under the threshold I >> can't really say which server updated later, but over the threshold I >> can. So I want to be able to tell the current time differences between >> our server and serverA, our server and serverB, our server and serverC >> and so on ... >> >> When saving the update time reported by serverA,B,C,... in our local >> db I'd like to adjust the reported time by the servers time difference >> to always save it in accordance to our server's time. >> >> Let me know if this makes sense to you. >> >> On Thu, Sep 8, 2011 at 9:50 AM, Alain Vongsouvanh <[email protected]> >> wrote: >> > Hello Alexey, >> > I am sorry but I assumed you were updating the same contact twice as it >> > shows up in the log you provided: >> > 2011/08/08 19:35:01:282 PDT [WARN] ImapConnection - GMail ~ updated1: >> > 2011-08-09T02:29:25.787Z, value: 1312856965787, etag: >> > "RHkzfzVSLit7I2A9WhdRGEgMTgI." >> > 2011/08/08 19:35:01:553 PDT [WARN] ImapConnection - GMail ~ updated2: >> > 2011-08-09T02:33:10.382Z, value: 1312857190382, etag: >> > "QX0zejVSLit7I2A9WhdRGEgNRg0." >> > Time diff (min): 1 >> > 2011/08/08 19:35:11:198 PDT [WARN] ImapConnection - GMail ~ updated1: >> > 2011-08-09T02:29:25.787Z, value: 1312856965787, etag: >> > "RHkzfzVSLit7I2A9WhdRGEgMTgI." >> > 2011/08/08 19:35:11:499 PDT [WARN] ImapConnection - GMail ~ updated2: >> > 2011-08-09T02:29:25.787Z, value: 1312856965787, etag: >> > "RHkzfzVSLit7I2A9WhdRGEgMTgI." >> > Time diff (min): 5 >> > Can you explain why you would need the time difference between Google's >> > servers and your environment? If this is for subsequent GET requests >> > using >> > the "updated-min" query parameter, I would advise you to use the latest >> > <updated> element in the result feed instead of storing the time in your >> > environment. >> > Doing that will ensure that you are using Google's data and not your >> > environment's which can be out of sync and will also prevent race >> > condition >> > (somebody updated a contact between your query and the line that stores >> > the >> > current time). >> > Best, >> > Alain >> > >> > On Wed, Sep 7, 2011 at 11:10 AM, Alexey Panteleev <[email protected]> >> > wrote: >> >> >> >> No, I am not updating it twice, only once. I print the etag before the >> >> update and after (so you see those two lines). >> >> But what I see is that for other contacts the update is happening even >> >> though I am updating a record that has not changed. >> >> >> >> What I am trying to do is to figure out the approximate time difference >> >> between our and google servers. >> >> Is there a better way to find out the current server time? >> >> >> >> >> >> On 9/7/11 8:38 AM, "Alain Vongsouvanh" <[email protected]> wrote: >> >> >> >> Hello Alexey, >> >> >> >> Unfortunately, the Contacts API won't generate a new Etag or new >> >> updated >> >> date if nothing has been updated. However, I am still wondering why >> >> your >> >> application isn't getting any 412 exceptions as you are trying to >> >> modify the >> >> same contact twice with the same etag: >> >> 1. First update works as you get a new Etag and new updated date. >> >> 2. Second update should fail with a 412 Precondition Failed exception >> >> since you are trying to update a contact with an old Etag. >> >> >> >> Best, >> >> Alain >> >> >> >> On Tue, Sep 6, 2011 at 5:58 PM, Alexey Panteleev <[email protected]> >> >> wrote: >> >> >> >> The problem here seems that >> >> >> >> entry = myService.update(new URL(entry.getEditLink().getHref()), >> >> entry); >> >> >> >> simply does not do anything for some records. Is there any way to force >> >> the update? >> >> >> >> before update: 2011-09-07T00:34:47.503Z, value: 1315355687503, etag: >> >> "Rns7ezVSLyt7I2A9WhdWE0gPQQw." >> >> after update: 2011-09-07T00:34:47.503Z, value: 1315355687503, etag: >> >> "Rns7ezVSLyt7I2A9WhdWE0gPQQw." >> >> >> >> On 8/9/11 9:22 AM, "Alain Vongsouvanh" <[email protected] >> >> <http://[email protected]> > wrote: >> >> >> >> Hello Alexey, >> >> >> >> Please see my comment inline: >> >> >> >> On Mon, Aug 8, 2011 at 7:38 PM, Alexey Panteleev <[email protected] >> >> <http://[email protected]> > wrote: >> >> >> >> Our app reads from the feed upon user’s request and as a test executes >> >> this: >> >> >> >> entry = myService.update(new URL(entry.getEditLink().getHref()), >> >> entry); >> >> >> >> It seems this update command does not always update the record and so I >> >> compute the time diff based on some old update time. >> >> >> >> 2011/08/08 19:34:42:814 PDT [WARN] ImapConnection - GMail ~ updated1: >> >> 2011-08-09T02:29:27.253Z, value: 1312856967253, etag: >> >> "Rnw-ezVSLit7I2A9WhdRGEgMTgI." >> >> 2011/08/08 19:34:43:117 PDT [WARN] ImapConnection - GMail ~ updated2: >> >> 2011-08-09T02:32:51.932Z, value: 1312857171932, etag: >> >> "QHc4ejVSLit7I2A9WhdRGEgNRgM." >> >> Time diff (min): 1 >> >> 2011/08/08 19:35:01:282 PDT [WARN] ImapConnection - GMail ~ updated1: >> >> 2011-08-09T02:29:25.787Z, value: 1312856965787, etag: >> >> "RHkzfzVSLit7I2A9WhdRGEgMTgI." >> >> 2011/08/08 19:35:01:553 PDT [WARN] ImapConnection - GMail ~ updated2: >> >> 2011-08-09T02:33:10.382Z, value: 1312857190382, etag: >> >> "QX0zejVSLit7I2A9WhdRGEgNRg0." >> >> Time diff (min): 1 >> >> 2011/08/08 19:35:11:198 PDT [WARN] ImapConnection - GMail ~ updated1: >> >> 2011-08-09T02:29:25.787Z, value: 1312856965787, etag: >> >> "RHkzfzVSLit7I2A9WhdRGEgMTgI." >> >> 2011/08/08 19:35:11:499 PDT [WARN] ImapConnection - GMail ~ updated2: >> >> 2011-08-09T02:29:25.787Z, value: 1312856965787, etag: >> >> "RHkzfzVSLit7I2A9WhdRGEgMTgI." >> >> Time diff (min): 5 >> >> >> >> >> >> The last 6 lines seem to indicate that you tried to update the same >> >> entry >> >> (in bold) twice (with etag "RHkzfzVSLit7I2A9WhdRGEgMTgI"), the second >> >> update >> >> should have failed and the API should have thrown a 412 Precondition >> >> Failed >> >> error since the etag was outdated. >> >> This can happen if a user tries to update a contact twice in a row and >> >> your app didn't have the time to save the contact returned by the API >> >> in >> >> your local storage. >> >> >> >> To avoid this kind of race condition, your application should always >> >> try >> >> to retrieve the contact from the API before every update. >> >> >> >> Best, >> >> Alain >> >> >> >> >> >> On 8/8/11 11:31 AM, "Alain Vongsouvanh" <[email protected] >> >> <http://[email protected]> <http://[email protected]> > wrote: >> >> >> >> Hello Alexey, >> >> >> >> Are you using batch requests to update your contact? Can you make sure >> >> that the contact has indeed been updated? >> >> It might be hard to test but one thing you could try is printing the >> >> value >> >> of updated before and after the update to make sure that it changes. >> >> Another thing is to make sure that the contact's etag changed as well. >> >> >> >> Best, >> >> Alain >> >> >> >> On Sun, Aug 7, 2011 at 1:26 PM, Alexey Panteleev <[email protected] >> >> <http://[email protected]> <http://[email protected]> > wrote: >> >> >> >> Hi Alain, >> >> >> >> I read recently updated contacts from the feed and execute the update >> >> for >> >> each to measure the timestamp difference. >> >> What I see is that for some contacts the difference is abnormal (I >> >> printed >> >> out the entry.getUpdated() this time also): >> >> >> >> 2011/08/07 13:20:30:956 PDT [WARN] GMail ~ Time diff (min): 1, str: >> >> 2011-08-07T20:18:15.362Z >> >> 2011/08/07 13:20:39:099 PDT [WARN] GMail ~ Time diff (min): 1, str: >> >> 2011-08-07T20:18:43.648Z >> >> 2011/08/07 13:20:49:630 PDT [WARN] GMail ~ Time diff (min): 62, str: >> >> 2011-08-07T19:17:54.834Z <---- 62min? >> >> ... >> >> >> >> >> >> I am using the following versions in my maven setup: >> >> >> >> <properties> >> >> <gdataVersion>1.41.5</gdataVersion> >> >> </properties> >> >> >> >> <dependency> >> >> <groupId>com.google.gdata</groupId> >> >> <artifactId>gdata-contacts-3.0</artifactId> >> >> <version>${gdataVersion}</version> >> >> </dependency> >> >> ... >> >> <dependency> >> >> <groupId>com.google.gdata</groupId> >> >> <artifactId>gdata-client-1.0</artifactId> >> >> <version>${gdataVersion}</version> >> >> </dependency> >> >> <dependency> >> >> <groupId>com.google.gdata</groupId> >> >> <artifactId>gdata-core-1.0</artifactId> >> >> <version>${gdataVersion}</version> >> >> </dependency> >> >> <dependency> >> >> <groupId>com.google.collections</groupId> >> >> <artifactId>google-collections</artifactId> >> >> <version>1.0</version> >> >> </dependency> >> >> >> >> >> >> On 8/5/11 9:47 AM, "Alain Vongsouvanh" <[email protected] >> >> <http://[email protected]> <http://[email protected]> >> >> <http://[email protected]> > wrote: >> >> >> >> Hello Alexey, >> >> >> >> Sorry about the delay in getting back to you! I just tried updating and >> >> checking the difference between my computer timestamp and the updated >> >> value >> >> timestamp and the difference was within 1 or 2 seconds, not hours. >> >> >> >> Can you try printing the value of "entry.getUpdated() >> >> " to check if the string representation makes sense. Also, what version >> >> of >> >> the client library are you using? >> >> >> >> Best, >> >> Alain >> >> >> >> >> >> On Tue, Aug 2, 2011 at 1:02 PM, Alexey Panteleev <[email protected] >> >> <http://[email protected]> <http://[email protected]> >> >> <http://[email protected]> > wrote: >> >> >> >> Hello, >> >> >> >> >> >> >> >> I've been running some experiments monitoring the Updated timestamp on >> >> contact records: >> >> >> >> >> >> >> >> long t1 = System.currentTimeMillis(); >> >> >> >> entry = myService.update(new URL(entry.getEditLink().getHref()), >> >> entry); >> >> >> >> long updateTimeDiff = t1 - entry.getUpdated().getValue(); >> >> >> >> >> >> >> >> What I see is that the time difference between the update time and my >> >> local time varies drastically from one call to another, >> >> >> >> one time I see 1min difference another time it is 50min difference, >> >> which >> >> really means that the google servers record very different utc >> >> timestamps >> >> for events that actually happen next to each other. >> >> >> >> >> >> >> >> Can you please explain this and also tell me how I could rely on these >> >> timestamps during synch >> >> >> >> -- >> >> You received this message because you are subscribed to the Google >> >> Groups "Google Contacts, Shared Contacts and User Profiles APIs" group. >> >> To post to this group, send email to >> >> [email protected] >> >> To unsubscribe from this group, send email to >> >> [email protected] >> >> For more options, visit this group at >> >> http://code.google.com/apis/contacts/community/forum.html >> > >> > >> > >> > -- >> > Alain Vongsouvanh >> > >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups "Google Contacts, Shared Contacts and User Profiles APIs" group. >> > To post to this group, send email to >> > [email protected] >> > To unsubscribe from this group, send email to >> > [email protected] >> > For more options, visit this group at >> > http://code.google.com/apis/contacts/community/forum.html >> > >> >> >> >> -- >> Founder / Project Lead >> Yoxel Systems >> >> Skype ID: yoxel.com >> Twitter: @yoxeldotcom >> Telephone: +1 415 230 0189 >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Google Contacts, Shared Contacts and User Profiles APIs" group. >> To post to this group, send email to >> [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> For more options, visit this group at >> http://code.google.com/apis/contacts/community/forum.html > > > > -- > Alain Vongsouvanh | Developer Programs Engineer > > -- > You received this message because you are subscribed to the Google > Groups "Google Contacts, Shared Contacts and User Profiles APIs" group. > To post to this group, send email to > [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://code.google.com/apis/contacts/community/forum.html > -- Founder / Project Lead Yoxel Systems Skype ID: yoxel.com Twitter: @yoxeldotcom Telephone: +1 415 230 0189 -- You received this message because you are subscribed to the Google Groups "Google Contacts, Shared Contacts and User Profiles APIs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://code.google.com/apis/contacts/community/forum.html
