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] **********************************************************************

