WO2018186517A1 - Procédé et système de synchronisation de données multi-dispositif sur la base d'un type de données - Google Patents
Procédé et système de synchronisation de données multi-dispositif sur la base d'un type de données Download PDFInfo
- Publication number
- WO2018186517A1 WO2018186517A1 PCT/KR2017/004652 KR2017004652W WO2018186517A1 WO 2018186517 A1 WO2018186517 A1 WO 2018186517A1 KR 2017004652 W KR2017004652 W KR 2017004652W WO 2018186517 A1 WO2018186517 A1 WO 2018186517A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- client
- server
- data
- data synchronization
- data type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/128—Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
Definitions
- the description below relates to a technique for data synchronization of multiple devices.
- Korean Patent No. 10-1140603 (Registration Date April 20, 2012) discloses a technique for performing data synchronization between a database of a client and a database of a server.
- the server fails to read every time a change is made, it is difficult to synchronize as desired because it does not consider all the changes made by multiple clients or because it does not know what operations the client has performed.
- a data synchronization method in a computer-implemented server comprising: performing data synchronization for a plurality of clients sharing a data type in a multi-device environment by using a data type synchronized with an operation
- the data synchronization method of claim 1 wherein the performing of the data synchronization comprises: pushing data of the data type between the server and the client to perform data synchronization.
- a push-pull operation for an operation of the data type occurs as the client attaches the data type, and the client detaches the data type as the data type is detached. There is no push-pull action for the operation.
- the performing of data synchronization may include receiving operations of the data type from the client in a generation order; And filtering a duplicate operation among the received operations.
- the step of performing data synchronization includes a client sequence updated each time the client generates an operation of the data type, and each time the server receives an operation of the data type from the client. Identifying the operation of the data type using the updated server sequence.
- the step of performing data synchronization is a push operation for an operation of the data type, the server sequence most recently received from the server by the client from the client and the client most recently updated at the client.
- the client may transmit the missing operation to the server along with the next operation based on the checkpoint received from the server.
- the performing of data synchronization may further include filtering a duplicate operation among operations received from the client by comparing check points exchanged between the server and the client.
- the performing of the data synchronization may include transmitting a snapshot of the data type to the client for data synchronization at the request of the client.
- the performing of the data synchronization may include managing the operation of the data type by reflecting the physical time together with the logical time according to the operation generation.
- the physical time may be increased if at least one of a condition in which a predetermined number of operations are newly received for each data type and a condition in which a certain time is physically passed.
- the performing of the data synchronization may further include determining the priority of the operation by considering the physical time before the logical time for the operation of the data type.
- a data synchronization system of a computer-implemented server comprising: at least one processor configured to execute computer-readable instructions, the at least one processor to a plurality of clients sharing data types in a multi-device environment. For example, a process of performing data synchronization using a data type synchronized with an operation may be performed, and the process of performing data synchronization may include performing data synchronization by pushing-pull an operation of the data type between the server and the client. It provides a data synchronization system, characterized in that.
- the nature of a consistent data type synchronized with an operation allows the client to synchronize the replicated data type with the operation, ensuring high availability and ultimate consistency and back- end)
- a server implemented as a service can effectively exchange many data type operations with large clients.
- FIG. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
- FIG. 2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention.
- FIG. 3 illustrates an example of a client architecture for data type based data synchronization according to an embodiment of the present invention.
- FIG. 4 illustrates an example of a server architecture for data type based data synchronization according to an embodiment of the present invention.
- 5 through 6 illustrate examples of push-pull operations that follow a push rule and a pull rule in an embodiment of the present invention.
- Embodiments of the present invention relate to techniques for data synchronization of multiple devices.
- Embodiments may implement a data type based data synchronization technology to facilitate the creation of an application or a service requiring data synchronization in a multi-device, thereby providing usability and convenience. Significant advantages are achieved in terms of accuracy, efficiency, and cost savings.
- FIG. 1 is a diagram illustrating an example of a network environment according to an embodiment of the present invention.
- the network environment of FIG. 1 illustrates an example including a plurality of electronic devices 110, 120, 130, and 140, a plurality of servers 150 and 160, and a network 170.
- 1 is an example for describing the present invention, and the number of electronic devices or the number of servers is not limited as shown in FIG. 1.
- the plurality of electronic devices 110, 120, 130, and 140 may be fixed terminals or mobile terminals implemented as computer devices. Examples of the plurality of electronic devices 110, 120, 130, and 140 include smart phones, mobile phones, tablet PCs, navigation systems, computers, notebook computers, digital broadcasting terminals, personal digital assistants (PDAs), and PMPs ( Portable Multimedia Player).
- PDAs personal digital assistants
- PMPs Portable Multimedia Player
- the first electronic device 110 may communicate with other electronic devices 120, 130, 140 and / or the server 150, 160 through the network 170 using a wireless or wired communication scheme.
- the communication method is not limited, and may include not only a communication method using a communication network (for example, a mobile communication network, a wired internet, a wireless internet, a broadcasting network) that the network 170 may include, but also a short range wireless communication between devices.
- the network 170 may include a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), and a broadband network (BBN). And one or more of networks such as the Internet.
- the network 170 may also include any one or more of network topologies, including bus networks, star networks, ring networks, mesh networks, star-bus networks, trees, or hierarchical networks, but It is not limited.
- Each of the servers 150 and 160 communicates with the plurality of electronic devices 110, 120, 130, and 140 through the network 170 to provide a command, code, file, content, service, or the like. It may be implemented in devices.
- the server 160 may provide a file for installing an application to the first electronic device 110 connected through the network 170.
- the first electronic device 110 may install an application using a file provided from the server 160.
- the server 150 is provided by accessing the server 150 under the control of an operating system (OS) included in the first electronic device 110 or at least one program (for example, a browser or the installed application). Can be provided with services or content.
- OS operating system
- the server 150 sends a code corresponding to the service request message to the first.
- the electronic device 110 may transmit the content to the electronic device 110, and the first electronic device 110 may provide content to the user by configuring and displaying a screen according to a code according to the control of the application.
- 2 is a block diagram illustrating an internal configuration of an electronic device and a server according to an embodiment of the present invention. 2 illustrates an internal configuration of the first electronic device 110 as an example of one electronic device and the server 150 as an example of one server. Other electronic devices 120, 130, 140 or server 160 may also have the same or similar internal configuration.
- the first electronic device 110 and the server 150 may include memories 211 and 221, processors 212 and 222, communication modules 213 and 223, and input / output interfaces 214 and 224.
- the memories 211 and 221 are computer-readable recording media, and may include non-volatile permanent storage devices such as random access memory (RAM), read only memory (ROM), and disk drives.
- the memory 211 and 221 may store an operating system or at least one program code (for example, a code for an application installed in the first electronic device 110 and driven). These software components may be loaded from a computer readable recording medium separate from the memories 211 and 221.
- Such a separate computer-readable recording medium may include a computer-readable recording medium such as a floppy drive, a disk, a tape, a DVD / CD-ROM drive, a memory card, and the like.
- software components may be loaded into the memory 211, 221 through the communication module 213, 223 rather than a computer readable recording medium.
- the at least one program is a program installed by files provided by the file distribution system (for example, the server 160 described above) through the network 170 for distributing installation files of developers or applications (for example, It can be loaded into the memory (211, 221) based on the above-described application).
- Processors 212 and 222 may be configured to process instructions of a computer program by performing basic arithmetic, logic, and input / output operations. Instructions may be provided to the processors 212, 222 by the memory 211, 221 or the communication modules 213, 223. For example, the processors 212 and 222 may be configured to execute a command received according to a program code stored in a recording device such as the memory 211 and 221.
- the communication modules 213 and 223 may provide a function for the first electronic device 110 and the server 150 to communicate with each other through the network 170.
- the other electronic device eg, the second electronic device 120
- other server eg, server 160
- a request eg, a search request
- a request generated by the processor 212 of the first electronic device 110 according to a program code stored in a recording device such as the memory 211 may be controlled according to the control of the communication module 213. It may be delivered to the server 150 through 170.
- control signals, commands, contents, files, and the like provided according to the control of the processor 222 of the server 150 are transmitted to the communication module of the first electronic device 110 via the communication module 223 and the network 170.
- a control signal or command of the server 150 received through the communication module 213 may be transmitted to the processor 212 or the memory 211, and the content or file may be transmitted to the first electronic device 110. May be stored as a storage medium that may further include.
- the input / output interface 214 may be a means for interfacing with the input / output device 215.
- the input device may include a device such as a keyboard or mouse
- the output device may include a device such as a display for displaying a communication session of an application.
- the input / output interface 214 may be a means for interfacing with a device in which functions for input and output are integrated into one, such as a touch screen.
- the processor 212 of the first electronic device 110 uses data provided by the server 150 or the second electronic device 120 in processing a command of a computer program loaded in the memory 211.
- the service screen or contents configured to be displayed on the display may be displayed through the input / output interface 214.
- the input / output interface 224 may output information configured using data provided by the server 150 when the processor 222 of the server 150 processes a command of a computer program loaded in the memory 221. have.
- the first electronic device 110 and the server 150 may include more components than those of FIG. 2. However, it is not necessary to clearly show most of the prior art components.
- the first electronic device 110 may be implemented to include at least a part of the above-described input / output device 215 or may be other such as a transceiver, a Global Positioning System (GPS) module, a camera, various sensors, a database, or the like. It may further include components.
- GPS Global Positioning System
- an acceleration sensor when the first electronic device 110 is a smartphone, an acceleration sensor, a gyro sensor, a camera, various physical buttons, a button using a touch panel, an input / output port, and vibration for a smartphone generally include It can be appreciated that various components such as a vibrator may be implemented to be further included in the first electronic device 110.
- the data synchronization system is implemented in a multi-device environment, and may include a plurality of clients and servers 150 implemented in the electronic devices 110, 120, 130, and 140 as a multi-device.
- the server 150 allows multiple clients of multiple devices to synchronize different types of data. Clients can replicate data types locally and read only their own replicas. If some local operation modifies the data type, the data type is executed immediately and pushed to the server 150. On the other hand, if some remote operation is released from the server 150, the data type is executed as soon as possible. Replicated data types from multiple clients must execute the same set of operations, but they do not have to be executed in the same order unless the causal relationship is violated during the operation. In order to maintain consistency for mismatched operation sequences, data types may be implemented according to the theory of Conflict-free Replicated Data Type (CRDT), which will be described below.
- CRDT Conflict-free Replicated Data Type
- Persistent repositories such as databases follow the CRUD model, which provides four basic functions: create, read, update, and delete. These functions are defined between a single client and server and tend to move from the client to the server where the original data is located.
- an APPD (attach, push-pull, detach) model is introduced and applied to data type sharing, and this model facilitates dual transmission of operations for efficient multi-device synchronization of replicated data.
- a client In the data synchronization system according to the present invention, a client must attach a data type in order to create new data or share a data type stored in the server 150. Attaching a data type means that all operations on the data type are subsequently pushed-pull. Push-pull no longer occurs when a client detaches an attached data type. Comparing the CRUD model, the APPD model does not provide a read function to the server 150 because the client always reads the locally attached replica. In addition, in the present invention, the post-attachment generation operation is pushed to perform the 'creation' function, and the push operation is performed to replace the 'delete' function with detaching.
- the client may be designed to maintain high availability with low latency
- the server 150 may be designed to have high scalability. Due to the nature of the CRDT, clients can access the attached (cloned) data type offline, which can naturally result in low latency. The client is stateful, while the server is stateless to support scale out to handle huge push-pull of clients.
- the data synchronization system may implement a CRDT.
- CRDTs can maintain eventual consistency without intervention to resolve conflict issues even if the replicated data types execute operations in different orders.
- CRDTs can be divided into operation-based and state-based CRDTs.
- CRDT can guarantee high availability and low latency, and the same set of operations can be consistent as a result.
- various multi-device data synchronization implementations can be improved. For example, when a user adds a bookmark to a browser of a specific device, the bookmark should be displayed in all user browsers of another device. Browser developers can accomplish this by using code that applies some operations to data types that manage bookmarks, which pushes or pulls operations related to adding bookmarks.
- RMAs replicated fixed-size arrays
- RHTs replicated hash tables
- RZAs replicated growable arrays
- RTAs replicated growable arrays
- snapshots can be used to allow intermittent (or periodic) synchronization as well as real time. If synchronization of data types is very frequent or lasts a long time, a large amount of operations can accumulate. If all synchronization is done only with accumulated operations, it is inefficient, so you can use a snapshot of the data type to reduce this inefficiency.
- the logical time itself sometimes distorts the intermittent synchronization so that the logical time can be corrected to the physical time called epoch.
- epochs can be used for garbage-collect of RHTs for deleted elements and tombstones required for RGAs.
- FIG. 3 illustrates an example of a client architecture for data type based data synchronization according to an embodiment of the present invention.
- the server 150 or 160 may provide a client software development kit (SDK) that can be used to implement various applications that share data types in multiple devices.
- SDK software development kit
- a number of data types 310 are attached to the client 300, and the client 300 may store local or remote operations of the data type 310 in the local storage 302. Store them in and synchronize them with the server 150.
- the client 300 may include one sync agent 301 and a local repository 302 that are shared by multiple data types 310.
- data type 310 When data type 310 creates a local operation via the operation APIs, it is converted into an operation instance with the parameters required for execution. All operations separately define the behavior of local and remote execution based on the characteristics of the CRDT.
- the locally created operation instance may be executed by an operation executor of data type 310 and then stored in a limited size local operation buffer and also stored in local storage 302 of client 300. .
- the local store 302 keeps the client state for data synchronization, which means that the client 300 has offline capabilities. Since a snapshot of all data types 310 is stored at a specific point and subsequent operations are also stored in local storage 302, client 300 can restore the last state of data type 310 without synchronization with server 150. Can be.
- the sink agent 301 is responsible for synchronizing with the server 150.
- the newly created operation of data type 310 attached to client 300 is compressed into single push data, which is collected in local operation buffer or local storage 302 of that data type 310.
- pulled data for the attached data type 310 is received in response. This may deliver the remote operation to the corresponding data type 310 which executes the remote operation in order.
- the sink agent 301 executes all remote operations pulled from the server 150 and then informs all registered handlers of the event and stores it in the local repository 302.
- the client 300 may provide the sink agent 301 of the passive type and the real time type, and may selectively apply one of the two types.
- the client 300 having the passive type sink agent 301 performs the push-pull operation of the above process every time a sync function is called.
- the real-time type sink agent 301 may perform a push-pull operation as soon as some local operations are newly generated.
- push-pull operation is invoked whenever the real-time type of sink agent 301 receives a notification that some remote operation is pushed out of the server 150.
- FIG. 4 illustrates an example of a server architecture for data type based data synchronization according to an embodiment of the present invention.
- the server 150 is a data synchronization system for data synchronization of multiple devices, and is designed to handle a huge amount of push-pull operations.
- the server 150 may be implemented stateless to achieve horizontal scalability, that is, scale-out.
- the server 150 must respond to the pull data as output for the push by reading and storing the state in the scalable database 401.
- an aggregator thread of the corresponding server node 410 is push data of various data types. Are separated into push data of separate data types, and each thread can be processed in parallel. In each push operation, the operation is stored in the database 401 and some operations taken from the database 401 are compressed into pull data. The compressed pool data is then aggregated and sent to the client 300.
- a network switch eg, L4
- the server 150 can process in one push-pull operation in parallel belonging to different data types. However, since push operations generated concurrently for the same data type can affect each other in pulling the operation, the present invention handles serializing push data for the same data type using a distributed lock. can do.
- Server 150 should keep snapshots of all data types as current as possible. Accordingly, each server node 410 may periodically update a snapshot of the data type that receives the new operation.
- the client 300 may determine an operation to be push-pulled according to the state. Accordingly, the server 150 should track the push-pull state with respect to the data type attached by the client 300. That is, the server 150 must record information about which client attaches which data type and the number of operations pushed or pulled from the client. Based on this, the push-pull mechanism must meet the following two conditions.
- the server 150 and the client 300 must receive all the operations generated by all the clients in order.
- each data type of every client must maintain a client sequence (cseq), and the server 150 must maintain a server sequence (sseq) for each data type.
- client sequence cseq
- server sequence sseq
- the client sequence (cseq) is incremented by 1 each time the data type of the client 300 generates a local operation, and the server sequence (sseq) is incremented by 1 each time the server 150 receives an operation on the data type. do.
- a check point which is a pair of client sequences (cseq) and server sequence (sseq) (cseq, sseq)
- server 150 and client 300 may maintain a CP server and a CP client indicating a push-pull state as follows: CP server [sseq] indicates that server 150 is a client. The most recent sequence sent to (300), CP server [cseq] is the most recent sequence that server 150 received from client 300, CP client [sseq] is the most recent client 300 received from server 150 The latest sequence, CP client [cseq] means the most recent sequence that the server 150 confirms receipt.
- each push and pull action loads some operations and pushes a push checkpoint (CP PUSH) as shown below. ) And the full check point (CP PULL ).
- Push operation loads operations from CP client [cseq] +1 to cseq.
- the check point (CP PUSH ) for cseq of the most recent operation is (CP client [sseq], cseq).
- the pull operation loads the remote operation for client 300 from cpu PUSH [sseq] +1 to cseq.
- the check point CP PULL for the sseq of the server 150 immediately after the corresponding push operation is (sseq, CP server [cseq]).
- FIG. 5 illustrates an example of a push-pull operation that follows a push rule and a pull rule according to an embodiment of the present invention.
- the server 150 when the server 150 receives an operation for the data type from the client 300, the server 150 updates the server sequence (sseq + 1) and checkpoint (CP PULL # 1 :() for the corresponding server sequence (sseq + 1). 1) and 1)) to respond to the pull for the push of the client 300 by passing it to the client 300.
- redundant operation transmission may be considered.
- the server 150 receives the PUSH # 5
- CRDTs operate according to operation and logic time, but are not always reasonably efficient in a real service. Accordingly, the present invention proposes two concepts, a snapshot and an epoch.
- the server 150 may manage operations cut-off in chronological order.
- an operation older than the one stored in the server history as shown in FIG. '+1 ⁇ n) may be required.
- the server 150 returns the latest snapshot (SNAP # 1 ) to CP PULL # 1 and the client 300 receives the data type with the snapshot (SNAP # 1 ) received from the server 150. Can be replaced. The client 300 must then reproduce the local operation from the pushed.
- epoch physical time unit
- k More than a certain number (k) operations are pushed anew and (2) A fixed time (h hour) This physically increases the epoch.
- all of the PUSH is in the epoch of the client 300, but the corresponding PULL returns the epoch of the server 150 updating the client 300.
- the epoch may be considered in advance to determine the operation priority before comparing the logical time stamps of the operations.
- the server 150 rejects the operation of the epoch that is smaller than the current server epoch (ep) minus the fixed integer (E) (ep-E). Instead, as shown in PUSH # 2 -PULL # 2 shown in FIG. 6, the server 150 may return PULL to the latest snapshot and reset the snapshot of the client 300.
- the policy of rejecting old epoch operations can be used for garbage collect tombstones of tombstones.
- future to-be-operated operations can no longer reference tombstones so that the tombstones can be safely collected.
- the data synchronization system may be configured as a back-end server to efficiently support the synchronization of a large client operating in multiple devices. Moreover, according to embodiments of the present invention, it is possible to provide a reliable operation transport mechanism by pushing-pull operations without omission and redundancy for large data types in the server-client model. In addition, according to embodiments of the present invention, by adding a physical time concept (epoch) to the logical time, it is possible to solve the conflict problem between operations occurring during synchronization and to eliminate unnecessary metadata of the data type.
- epoch physical time concept
- the apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components.
- the devices and components described in the embodiments may include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), a programmable PLU (programmable). It can be implemented using one or more general purpose or special purpose computers, such as logic units, microprocessors, or any other device capable of executing and responding to instructions.
- the processing device may execute an operating system (OS) and one or more software applications running on the operating system.
- the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
- OS operating system
- the processing device may also access, store, manipulate, process, and generate data in response to the execution of the software.
- processing device includes a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that it may include.
- the processing device may include a plurality of processors or one processor and one controller.
- other processing configurations are possible, such as parallel processors.
- the software may include a computer program, code, instructions, or a combination of one or more of the above, and configure the processing device to operate as desired, or process it independently or collectively. You can command the device.
- the software and / or data may be embodied in any type of machine, component, physical device, computer storage medium or device in order to be interpreted by or provided to the processing device or to provide instructions or data. have.
- the software may be distributed over networked computer systems so that they may be stored or executed in a distributed manner. Software and data may be stored on one or more computer readable recording media.
- the method according to the embodiment may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium.
- the medium may be to continuously store a program executable by the computer, or to temporarily store for execution or download.
- the medium may be a variety of recording means or storage means in the form of a single or several hardware combined, not limited to a medium directly connected to any computer system, it may be distributed on the network. Examples of the medium include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, And ROM, RAM, flash memory, and the like, configured to store program instructions.
- examples of another medium may include a recording medium or a storage medium managed by an app store that distributes an application, a site that supplies or distributes various software, a server, or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
L'invention concerne un procédé et un système de synchronisation de données multi-dispositif sur la base d'un type de données. L'invention concerne également un procédé de synchronisation de données dans un serveur mis en oeuvre par un ordinateur comprend une étape de synchronisation de données, pour une pluralité de clients qui partagent un type de données dans un environnement multi-dispositif, en utilisant un type de données qui est synchronisé avec une opération, dans lequel, dans l'étape de synchronisation de données, des données sont synchronisées par poussée et traction, entre le serveur et les clients, du fonctionnement du type de données.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2017-0045153 | 2017-04-07 | ||
| KR1020170045153A KR101929948B1 (ko) | 2017-04-07 | 2017-04-07 | 데이터 타입 기반의 멀티 디바이스 데이터 동기화를 위한 방법 및 시스템 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018186517A1 true WO2018186517A1 (fr) | 2018-10-11 |
Family
ID=63712471
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2017/004652 Ceased WO2018186517A1 (fr) | 2017-04-07 | 2017-05-02 | Procédé et système de synchronisation de données multi-dispositif sur la base d'un type de données |
Country Status (2)
| Country | Link |
|---|---|
| KR (1) | KR101929948B1 (fr) |
| WO (1) | WO2018186517A1 (fr) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20060047709A (ko) * | 2004-05-03 | 2006-05-18 | 마이크로소프트 코포레이션 | 피어 투 피어 룰 기반의 풀 자율 동기화 시스템의 구현을위한 시스템 및 방법 |
| JP2009503625A (ja) * | 2005-04-04 | 2009-01-29 | ユナイト,インコーポレイテッド | 個人属性に対する分散管理フレームワーク |
| US20090083441A1 (en) * | 2007-09-24 | 2009-03-26 | Microsoft Corporation | Synchronization of web service endpoints in a multi-master synchronization environment |
| US8442943B2 (en) * | 2000-01-26 | 2013-05-14 | Synchronoss Technologies, Inc. | Data transfer and synchronization between mobile systems using change log |
| KR20150102115A (ko) * | 2013-02-27 | 2015-09-04 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 데이터 동기화 |
-
2017
- 2017-04-07 KR KR1020170045153A patent/KR101929948B1/ko active Active
- 2017-05-02 WO PCT/KR2017/004652 patent/WO2018186517A1/fr not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8442943B2 (en) * | 2000-01-26 | 2013-05-14 | Synchronoss Technologies, Inc. | Data transfer and synchronization between mobile systems using change log |
| KR20060047709A (ko) * | 2004-05-03 | 2006-05-18 | 마이크로소프트 코포레이션 | 피어 투 피어 룰 기반의 풀 자율 동기화 시스템의 구현을위한 시스템 및 방법 |
| JP2009503625A (ja) * | 2005-04-04 | 2009-01-29 | ユナイト,インコーポレイテッド | 個人属性に対する分散管理フレームワーク |
| US20090083441A1 (en) * | 2007-09-24 | 2009-03-26 | Microsoft Corporation | Synchronization of web service endpoints in a multi-master synchronization environment |
| KR20150102115A (ko) * | 2013-02-27 | 2015-09-04 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 데이터 동기화 |
Non-Patent Citations (1)
| Title |
|---|
| NOH, HYEON GEOL: "Kaleido Begins: World First Back-end as a Service for Data Type-based Synchronization", DEVIEW 2016, 25 October 2016 (2016-10-25), Retrieved from the Internet <URL:https://www.slideshare.net/deview/243kaleido> * |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101929948B1 (ko) | 2018-12-18 |
| KR20180113724A (ko) | 2018-10-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113220693B (zh) | 计算存储分离系统及其数据访问方法、介质和电子设备 | |
| US20230412375A1 (en) | Hierarchical key management for cross-region replication | |
| CN111143382B (zh) | 数据处理方法、系统和计算机可读存储介质 | |
| EP2988220B1 (fr) | Système informatique, procédé de gestion de système informatique et programme | |
| US10235382B2 (en) | Transferring objects between different storage devices based on timestamps | |
| CN105119913A (zh) | 一种基于Docker的Web服务器架构及各模块之间的交互方法 | |
| CN115668141A (zh) | 使用时间戳对网络中的事务进行分布式处理 | |
| US11360866B2 (en) | Updating stateful system in server cluster | |
| CN111639061A (zh) | Redis集群中数据管理方法、装置、介质及电子设备 | |
| US12147394B2 (en) | Techniques for resource utilization in replication pipeline processing | |
| EP4339774A1 (fr) | Génération automatique d'images de conteneur | |
| JP6583975B1 (ja) | データ処理装置、データ処理方法及びプログラム | |
| US11200255B2 (en) | Robust data synchronization solution between databases | |
| CN115878269A (zh) | 集群迁移方法、相关装置及存储介质 | |
| US12117976B2 (en) | Schema based data buffering and processing on a client device | |
| CN115189931A (zh) | 一种分布式密钥管理方法、装置、设备、存储介质 | |
| KR102133925B1 (ko) | 데이터 동기화 트래픽을 최소화하기 위한 방법 및 시스템 | |
| WO2018186517A1 (fr) | Procédé et système de synchronisation de données multi-dispositif sur la base d'un type de données | |
| KR102084014B1 (ko) | 데이터 타입 기반의 멀티 디바이스 데이터 동기화를 위한 방법 및 시스템 | |
| CN113051108B (zh) | 一种数据备份方法及系统 | |
| CN120281770B (zh) | 基于云边协同系统的数据传输方法、装置及云边协同系统 | |
| JP6036690B2 (ja) | 分散実行システム及び分散プログラム実行方法 | |
| CN119557117B (zh) | 基于云原生的极速交易系统、方法、设备、介质及产品 | |
| Liarokapis | Event-driven architectures using Apache Kafka | |
| CN118690068A (zh) | 数据库操作方法和装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17904912 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 17904912 Country of ref document: EP Kind code of ref document: A1 |