RETS Support Article

RETS Support Article

Title:

Rapattoni RETS Server Client Data Sync Algorithm

Submitted by:

Rapattoni RETS Support

Updated:

01/27/04

Version:

RETS 1.01

Issue:

Rapattoni Corporation cannot allow thousands of RETS clients to send very large search requests to its RETS servers concurrently because of simple hardware and bandwidth resource limitations (regardless of the time of day). Consequently, Rapattoni RETS servers have a governor on them that limits the download of records to 1000 records or less IF the number of fields in the search result file is greater than 6.

The following steps illustrate how the sync algorithm works:

1. The RETS client sends a request to the RETS server using PropertyDTChanged >= SomeDate SomeTime in the Query argument and selects only four columns: MLNumber,PropertyDTChanged,PictureDTChanged,Pictures.

Here is an example of this type of search:

 Class=RESI&SearchType=Property&Count=1&Limit=NONE&QueryType=DMQL&Format=COMPACT&Select=MLNumber,PropertyDTChanged,PictureDTChanged,Pictures&Query=(PropertyDTChanged=YYYY-MM-DDTHH:MM:SS+)

The RETS server will return an unlimited number of records to the RETS client containing these four columns that have changed since the PropertyDTChanged. Naturally, the first time the RETS client syncs it will not include PropertyDTChanged because it needs ALL the records for that Resource and Class.

2. The RETS client builds a DB table locally and compares this search result data to what it already has in its own database. If it detects changes were made to any of the MLNumbers in the search result file from Step 1, the RETS client knows it has to get updated records from the RETS server for those MLNumbers.

3. The RETS client sends a request to the RETS server using a string delimited list of 100 MLNumbers at a time and it will get back the full search result data for those records. The RETS client keeps sending these search requests to the RETS Server for 100 records at a time until it has all the records it needs.

Here is an example of this type of search:

 Class=RESI&SearchType=Property&Count=1&QueryType=DMQL&Format=COMPACT&Query=(MLNumber=1234,1235,1236,1237,1238,1239,…) 
       
4. The RETS client now has all the changed records and it is fully synchronized with the RETS server.

As a performance example, Rapattoni is able to sync ITEC's entire RETS database from scratch with our RETS test client in three hours (all property classes, all statuses, all agent and office data). Other RETS Clients have a similar logic and performance.


If you would like more explanation as to why Rapattoni uses this method or how the sync algorithm works, please contact Rapattoni RETS Support. They will be happy to assist you.

RETS Links
© 2008 Rapattoni Corporation. All rights reserved.