Hi Douglas,

I've been using Web Services (SOAP) for quite some time with our 
Synchronization module.
I only pack the fields that have changed (or all if new record)
Send an array of field numbers, and text array of string(values)
Pack it all into a blob.
Send 1 record per web service call.
Seems fast enough for our purposes.  5-10+ records per second, depending upon 
record size and network.
Just gotta make sure the client "syncs" often.

Randy Engle
XC2 Software LLC

-----Original Message-----
From: 4D_Tech [mailto:[email protected]] On Behalf Of Douglas von 
Roeder via 4D_Tech
Sent: Monday, April 24, 2017 6:26 PM
To: 4D iNug Technical <[email protected]>
Cc: Douglas von Roeder <[email protected]>
Subject: Experience with FTSY Sync Code//Speed up Sync Code

Anyone here have experience with Brad Weber's "FTSY Sync" code?

The code in question was written almost 20 years ago to synchronize records 
between standalones and a client server system, and I know that is was used by 
a couple of companies inclduing Husqvarna in North Carolina.

One aspect of the code that's challenging is that the V11+ code (the "new"
code) could no longer use 4D Open so the design was changed to pack field data 
into BLOB's. The BLOB's contain metadata for every field including the field 
number, the field type, the data length, etc.

When the synch records are unpacked, the metadata is used to move sequentially 
through the BLOB, converting each byte range back to its native 4D type using 
BLOB to text, BLOB to real, BLOB to longint, etc.

My suspicion is that this method of encoding/decoding is contributing to poor 
performance* for updating records and I'm hoping that someone has resolved this 
issue.



The underlying question is how much faster/slower would it be to encode/decode 
data using an alternative method?

A much more simple alternative is to use a "field ID" (String(Table 
number;"000")+ the ID (a string)" as the tag/property name and use OB 
Get/Set(property;data;field type) to deal with the data.

This approach would eliminate a significant amount of code, no question, but 
what would be the impact on performance?

Comments, thoughts, and questions appreciated.


*this is a V13 system so I can't use Pause index



**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ:  http://lists.4d.com/faqnug.html
Archive:  http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:[email protected]
**********************************************************************

Reply via email to