Data synchronization

Ruslan Zasukhin sunshine at public.kherson.ua
Mon Sep 3 04:40:34 CDT 2007


On 3/9/07 12:16 PM, "Thorsten Hohage" <thohage at objectmanufactur.com> wrote:

Hi Thorsten, 

>> And here main question we have:
>> 
>> Does laptops should have
>>     a) the whole snapshoot of server db ?
> 
> sometimes yes - it seems that especially germans tend to carry the
> whole 10GB DB with them, but ...
> 
>>     b) or its part?
> 
> yes - THIS is in most cases (system I build) used. But part often
> means depend on context i.e. a query what should be replicated (where
> staff_district = 'Hamburg') and it depends on the table, too. So
> articles complete, customers only from the district, help desk-tables
> none.

Right, each client should have set of own FILTERs. And as Bart point this
also help with security (e.g. Employers should not see what Managers can).
 

> Additional one further remark
> 
>>> Changes are synced when network is available.
> 
> perhaps not only when network is available. There are still
> situations where syncing should be done by media transfer, i.e. USB-
> Stick, CD, ... i.e. imagine a expedition where the entered data must
> be synced and NO or better NO cheap enough network is enable


-----------------
> And I want to add two more and really important topics! There must be
> a solution for generating unique-keys, too - something like satellite-
> id + table-unique-id to be able to sync data - enter new data on each
> system - re-sync - enter other new data ... could be tricky, really
> tricky.

Right. 

In MS SQL they use GUID for this.
Ivan like this solution the most as I see :-)
So our first step then should be adding this field type into Valentina.


> We used a system with a central serial table with pre-generated
> serials and an id for what satellite this id is. These serials are
> replicated, too and so every system gets its set of serials. Using
> triggers to request a serial when a record is generated. But of
> course there are several more concept on how to handle serials in a
> distributed system

Yes, pre-generated serials also used often. Although agree, this require
some special job on both computers to prepare them for replications.
Annoying. 

> The same problem is regarding deletion of data. Satellite_1 and
> Satellite_2 get some contacts in the same time. Now Satellite_1
> deletes a contact and Satellite_2 changes this contact later in time,
> then Satellite_1 deletes it. Satellite_1 syncs his data to server,
> later Satellite_2 syncs too and the contact is back. Next time
> Satellite_1 syncs with the server he gets the deleted contact back.
> 
> Other scenario: Satellite_1 and Satellite_2 gets both contact data,
> but Satellite_2 get the invoices, too. Satellite_1 doesn't see any
> invoices and deletes the contact, what happened with the joined data
> that are still on Satellite_2.
> 
> Of course some of these issues must be handled by application (better
> system) logic, but there must be propitiate options in the database
> to configure these rules.

These are "CONFLICTS". In the most hard cases human manual task required,
like when we have conflicts workings with CVS.

-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the Valentina mailing list