[Sugar-devel] On datastore object IDs

Eben Eliason eben at laptop.org
Thu Jul 2 15:07:33 EDT 2009


On Thu, Jul 2, 2009 at 2:53 PM, Benjamin M.
Schwartz<bmschwar at fas.harvard.edu> wrote:
> Eben Eliason wrote:
>> I agree
>> we send off the object without the history and action associations,
>> and basically lives as the root of a new tree (new tree_id), and
>> associated with an "Received [object] from [friend]" action. It's
>> unclear to me that the person who sent this should also create a new
>> object with a new tree_id. I think not, actually.
>
> I didn't mean to imply otherwise.  My point is merely that the unique
> identifier (tree_id, version_id) is not a global identifier.  It will not
> work for Walter's problem of maintaining inter-object references while
> transferring objects over the network, because the tree_id will be
> different on the other side.

Oh! Right, of course. Sorry for the confusion.

Anyway, the subtler point here, just for the sake of stating it
outright, is that sending an object to someone and sharing that
activity with them are (as they should be) quite different actions. In
the former case, they just get the object, and can use it as the
starting point for their own modifications, with their own history. In
the latter case, they will wind up with an object with the same
tree_id (and even version_id, for that matter) as the person who
shared it.

>>> It sounds like you want case 3:
>>>>> If back-references aren't stored in the Document's metadata, then either
>>
>> The hypothetical in case 3 is that we don't store the info in the
>> metadata. I'm suggesting that we still store it in metadata, but that
>> the activity itself isn't the one in charge of handling it.
>
> Ok.  Maybe we need some new vocabulary like "read/write metadata" vs.
> "read-only metadata".  Action<->Document references would have to live in
> "read-only" metadata, managed by the Datastore.

That seems like a reasonable split, but I'm not sure it falls on the
same line as versioned/un-versioned.

The document references make sense in read-only/un-versioned, but I
feel like tags and titles make sense in read-write/un-versioned. Only
activity "state" makes sense to me in read-write/versioned.

Eben


More information about the Sugar-devel mailing list