Rapattoni RETS Server Client Data Sync Algorithm

Title:

Rapattoni RETS Server Client Data Sync Algorithm

Submitted by:

Rapattoni RETS Support

Updated:

03/21/2011

Version:

RETS 1.7.2

Issue:

Rapattoni Corporation cannot allow thousands of RETS clients to request large amounts of data concurrently because of hardware and bandwidth resource limitations (regardless of the time of day). Consequently, Rapattoni RETS servers enforce search limits based on the amount of data to be returned and the time of the request. These limits are per Search transaction only and will not affect the total amount of data a RETS Client can pull in a given time period. (Note: For more information on Rapattoni's RETS 1.7.2 Server search limits see the RETS 1.7.2 Server - Product Release Notice.)

The following steps illustrate how the sync algorithm works:

  1. The RETS client sends a request to the RETS server usingLastModifiedDateTime >= SomeDate SomeTime in the Query argument and selects four or less columns, such as ListingRid, LastModifiedDateTime, PictureModifiedDateTime, and PictureCount.

    Here is an example of this type of search:

Class=RESI&SearchType=Property&Count=1&Limit=NONE&QueryType=DMQL2&
Format=COMPACT&Select= ListingRid,LastModifiedDateTime,PictureModifiedDateTime,PictureCount&Query=(ListingRid=1+),(LastModifiedDateTime=YYYY-MM-DDTHH:MM:SS+)


The RETS server will return an unlimited number of records to the RETS client that have changed since the LastModifiedDateTime value that was provided.

  1. The RETS client builds a DB table locally and compares this search result data to what it already has in its own database. The RETS Client can now determine when changes were made to any of the search result records from Step 1 and can subsequently update its own records from the RETS server for those ListingRidvalues.
  2. The RETS client sends a request to the RETS server using a delimited list ofListingRid values in the Query argument and omits the Select argument. The response will contain a complete data set for those records that were requested. If necessary, the RETS client sends additional search requests to the RETS Server, batching through the ListingRid values, until it has all the records.

    Here is an example of this type of search:

Class=RESI&SearchType=Property&Count=1&Limit=NONE&QueryType=DMQL2&
Format=COMPACT&Query=(ListingRid=1234,1235,1236,1237,1238,1239)

  1. The RETS client now has all the changed records and is fully synchronized with the RETS server.

If you would like a further explanation as to why Rapattoni suggests this method or how the sync algorithm works, please feel free to contact Rapattoni RETS Support. We will be happy to assist you.