Optimizing data synchronization between mobile clients and database systems
View Patent ↗Mechanisms and methods are provided for optimizing data synchronization between clients and database systems. These mechanisms and methods provide optimizations for synchronization requests, by either breaking a synchronization request into multiple smaller requests, or by executing different code routines for differing client types, or by pre-caching data that a user is anticipated to want at a future point. Such optimization techniques can enable clients with varying capacities (e.g., mobile client vs. full desktop client) to optimally utilize their respective device capabilities.
1. A method of synchronizing user data based on client type, the method comprising:
receiving a client request to synchronize the client with updates from a database;
determining a client type based on the request;
selecting, based on the determined client type, a routine from a plurality of routines to retrieve data associated with the update from the database;
invoking the selected routine to retrieve the data from the database;
receiving data from the database via the invoked routine, the data corresponding to the requested updates; and
sending the received data to the client.
2. The method of claim 1 , wherein the invoked routine is selected from a plurality of routines by a component that receives the client request to synchronize.
3. The method of claim 1 , wherein the client type is a mobile client.
4. The method of claim 1 , wherein the invoked routine is a custom routine.
5. The method of claim 1 , wherein the received data is a subset of all the available data for the client.
6. The method of claim 1 , further comprising:
retrieving data from a cache based on the synchronization request; and
sending the data to the requesting user.
7. The method of claim 6 , wherein the synchronization request asks for a subset of synchronization data.
8. A system for synchronizing user data based on client type, the system comprising:
a processor-based application, which when executed on a computer, will cause the processor to:
receive a client request to synchronize the client with updates from a database;
determine a client type based on the request;
select, based on the determined client type, a routine from a plurality of routines to retrieve data associated with the update from the database;
invoke the selected routine to retrieve the data from the database;
receive data from the database via the invoked routine, the data corresponding to the requested updates; and
send the received data to the client.
9. The system of claim 8 , wherein the invoked routine is selected from a plurality of routines by a component that receives the client request to synchronize.
10. The system of claim 8 , wherein the client type is a mobile client.
11. The system of claim 8 , wherein the invoked routine is a custom routine.
12. The system of claim 8 , wherein the received data is a subset of all the available data for the client.
13. The system of claim 8 , wherein the processor-based application, when executed on a computer, will further cause the processor to:
retrieve data from a cache based on the synchronization request; and
send the data to the requesting user.
14. The system of claim 13 , wherein the synchronization request asks for a subset of synchronization data.
15. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:
receive a client request to synchronize the client with updates from a database;
determine a client type based on the request;
select, based on the determined client type, a routine from a plurality of routines to retrieve data associated with the update from the database;
invoke the selected routine to retrieve the data from the database;
receive data from the database via the invoked routine, the data corresponding to the requested updates; and
send the received data to the client.
16. The computer program product of claim 15 , wherein the invoked routine is selected from a plurality of routines by a component that receives the client request to synchronize.
17. The computer program product of claim 15 , wherein the client type is a mobile client.
18. The computer program product of claim 15 , wherein the invoked routine is a custom routine.
19. The computer program product of claim 15 , wherein the received data is a subset of all the available data for the client.
20. The computer program product of claim 15 , wherein the program code includes further instructions to:
retrieve data from a cache based on the synchronization request; and
send the data to the requesting user.
21. The computer program product of claim 20 , wherein the synchronization request asks for a subset of synchronization data.