I played with a few scenarios during my time on vacation, and events
storing purely DB information didn't work out well, or at least I
couldn't figure it out. Instead I came up with another approach that
seems to work ok so far.
ObjectStore now explicitly tracks all changes to "indirect"
relationships, just like we used to do for flattened relationships. For
the formal definition of indirect relationship (and a better term for
it) see new method:
ObjRelationship.isSourceIndependentFromTargetChange(). These changes
are included in the SnapshotEvent. Currently ObjectStore behavior is to
invalidate all indirect relationships of the target object. This is not
as bad as invalidating the object itself, but is still pretty crude.
Fortunately current design should allow to optimize it further in the
future without too much rewrite. I'll continue testing this feature...
Andrus
On Dec 23, 2003, at 7:35 PM, Andrus Adamchik wrote:
> Intuitively this sounds just right, though I am not quiet sure yet how
> to apply this to our case. Need to do more investigation when I get
> back from vacation.
>
> Andrus
>
> On Dec 22, 2003, at 6:37 AM, Andriy Shapochka wrote:
>> What would you say about passing the info "those and those
>> *DbRelationships*
>> changed." First, all our ObjRelationships are always based on
>> DbRelationships. Second, if a data row for a given DbEntity gets
>> modified
>> (deleted) we should always be able to track which DbRelationships get
>> affected by this modification, just like any relational database
>> engine can
>> instantly recognaze an FK->PK relationship is modified when a
>> participating
>> table is edited.
>
>
This archive was generated by hypermail 2.0.0 : Thu Jan 08 2004 - 01:34:57 EST