[Developers] Write grammar questions: question 4 -- when are links inserted?
Tim Kientzle
tim at metaweb.com
Tue Jun 3 20:33:35 UTC 2008
David,
The mwLastWriteTime cookie is an innovation that we've come up with to
try to balance the performance requirements of most read-only users
with the need for users who are making changes to see immediate
response to their changes. This is handled through a special cookie
that works transparently for most users but does occasionally confuse
developers:
* The mwLastWriteTime cookie is updated automatically by the
Freebase.com server whenever you write (including mqlwrite,
interactive client, blob upload, or otherwise). As long as you're
working with a single application that tracks cookies (either a
browser or another application), you will read the results of your own
writes.
* By default, we cache pretty aggressively. If you don't have a
suitable cookie, we'll provide cached results if we can. This gives
faster responses to the majority of users who are readers. Our cache
timeouts vary depending on the particular request, but about 1 hour is
typical.
* The only case where you'll see inconsistencies is if you have two
applications. For example, people see this when they do writes from a
script and then try to see the results in their browser (or vice
versa). The problem here is that the script will get an updated
cookie, but the browser has an old cookie.
* You can always get an up-to-date cookie from the "touch" service: /
api/service/touch. In the Freebase.com web GUI, press 'F8' to bring
up the developer toolbar and click 'Refresh cache' to update your
cookie.
* We use a cookie instead of an envelope parameter because the value
needs to be set by and visible to the server. Only cookies support
this style of usage.
* The contents of the cookie are determined by the server and are
subject to change. Please do not try to synthesize it yourself.
(Even today, the cookie actually has more information than just a
timestamp; if you just synthesize a timestamp, you risk getting some
very strangely inconsistent results.)
Let me know if this isn't clear enough.
Cheers,
Tim Kientzle
On Jun 3, 2008, at 12:44 PM, David Flanagan wrote:
> Will M: Could you clarify this for the rest of the list? I can't find
> much documentation for this cookie. What is the right thing to do
> with
> it when writing apps that are not browser-based? Should we always
> insert a synthetic cookie with the current time into our mqlread
> requests? Or will the absence of the cookie ensure that we get the
> lastest results?
>
> And why is this a cookie rather than an envelope parameter, anyway?
>
> David Flanagan
>
> Will Fitzgerald wrote:
>> Will Moffat said it was that the 'mwLastWriteTime' cookie wasn't
>> being
>> updated locally. He was right.
>>
>> Dr. Documentation, if you're reading this, -- can you put this on
>> your list of things to document?
>>
>> Will F.
>>
>> On 6/3/08, Will Fitzgerald <will.fitzgerald at pobox.com> wrote:
>>> Using my own Ruby code, I'm trying to insert type links, but I'm
>>> wondering what, if anything, I'm doing wrong.
>>>
>>> For example:
>>>
>>> http://pastie.caboo.se/207795
>>>
>>> It appears, although the link looks like its being updated, the link
>>> isn't yet live to the final query. If I do the same list of
>>> actions on
>>> the web-based MQL editor, there is no problem. Is there some
>>> difference with authenticating changes between the web-based editor
>>> and client software?
>>>
>>>
>>>
>>> --
>>> Will Fitzgerald
>>> weblog: <http://www.entish.org/willwhim>
>>> Stop US torture: <http://www.unsubscribe-me.org>
>>>
>>
>>
>
> _______________________________________________
> Developers mailing list
> Developers at freebase.com
> http://lists.freebase.com/mailman/listinfo/developers
More information about the Developers
mailing list