Can SyncFx be used to sync Graphs (Vertices and Edges)? RRS feed

  • Question

  • Hello:

    PREAMBLE: It appears that my last post got never got posted for some reason: apologies if it pops back up somwhere and this ends up being a double-post. That out of the way, I'd love some advice on the following:

    The 101 samples of a Custom Standard Provider demonstrate synching a single List/Table of data, and I havn't been able to determine from them how best to scale that up to a more complex problem -- such as performing a Filtered sync of a Graph containing Vertices/Cities, and Routes/Edges (eg: for a travel agent offering package weekend excursions).

    As an example, if 1000 Vertices/cities have been added to the server lately, and I want to sync to a PocketPC all the Cities/Vertices that have a Rating=3 stars, I will then have to also sync all the Routes/Edges leading out from these cities, as well as all the towns/cities that these edges/routes terminate at, whether they are rated as 3star cities, or not. All of these parts --origin vertices, edges, destination edges -- have to be synced as one unit of work (edges pointing to none existent vertices would be rather useless).

    I didn't see anything like a Transaction unit, so I'm a little confused as to how to proceed.

    Nor did I see a way of taking the values from the first sync step (the id's of the vertices) to use as a filter for the second step (finding the Edges touching these edges)..and then using the data from the second step to find the final edges...

    Alternately, I'm wondering if I have to think of it not as a transacted sync of various providers, but as as syncing one single object, containing Vertex+EdgeArray....
    I'm hoping this is not the case, as that would be problematic, as I omitted to mention that there are other tables involved (eg: VertexAttributes, EdgeAttributes, etc. as well as other tables containing brochure info, etc.) at which point the object would get quite Huge, and probably contain redudent/resent info ...)

    Any and all advice on how to break this problem down into logical steps would be greatly appreciated.


    Saturday, March 13, 2010 3:07 AM


  • It looks like you might have different item types in your schema. How items qualify to be in or out of the filter is left for the provider to calculate/decide, so you can certainly implement this using the Sync framework.

    Are you planning to use the database providers or simple providers?
    Monday, March 15, 2010 5:59 PM