{
	"ID": "20210721112206-mhr9wxi",
	"Spec": "1",
	"Type": "NodeDocument",
	"Properties": {
		"id": "20210721112206-mhr9wxi",
		"title": "Data sync",
		"updated": "20221009104451"
	},
	"Children": [
		{
			"ID": "20210721112403-8no39l4",
			"Type": "NodeHeading",
			"HeadingLevel": 2,
			"Properties": {
				"id": "20210721112403-8no39l4",
				"updated": "20210721112403"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "Overview"
				}
			]
		},
		{
			"ID": "20210721112403-0ft3r91",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20210721112403-0ft3r91",
				"updated": "20210721113101"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "Data synchronization refers to keeping the "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "code",
					"TextMarkTextContent": "workspace/data/"
				},
				{
					"Type": "NodeText",
					"Data": " folder data consistent on multiple devices, including asset files, templates, widgets, and notebook data."
				}
			]
		},
		{
			"ID": "20210721112403-77frbcy",
			"Type": "NodeHeading",
			"HeadingLevel": 2,
			"Properties": {
				"id": "20210721112403-77frbcy",
				"updated": "20210721112403"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "How to use"
				}
			]
		},
		{
			"ID": "20220703231817-nbhxxb6",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20220703231817-nbhxxb6",
				"updated": "20220821170709"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "After "
				},
				{
					"Type": "NodeBlockRef",
					"Data": "span",
					"Children": [
						{
							"Type": "NodeOpenParen"
						},
						{
							"Type": "NodeOpenParen"
						},
						{
							"Type": "NodeBlockRefID",
							"Data": "20220615120602-iya2886"
						},
						{
							"Type": "NodeBlockRefSpace"
						},
						{
							"Type": "NodeBlockRefText",
							"Data": "initializing the data repo key"
						},
						{
							"Type": "NodeCloseParen"
						},
						{
							"Type": "NodeCloseParen"
						}
					]
				},
				{
					"Type": "NodeText",
					"Data": ", if all goes well, the synchronization is already configured. If you are not familiar with synchronization configuration, it is recommended to open the synchronization configuration wizard by clicking the synchronization button. It is easier to configure through the wizard."
				}
			]
		},
		{
			"ID": "20220708103812-eil2e26",
			"Type": "NodeList",
			"ListData": {},
			"Properties": {
				"id": "20220708103812-eil2e26",
				"updated": "20220708103847"
			},
			"Children": [
				{
					"ID": "20220708103814-dmdvs76",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20220708103814-dmdvs76",
						"updated": "20220708103814"
					},
					"Children": [
						{
							"ID": "20220708103814-8ogvbpz",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220708103814-8ogvbpz",
								"updated": "20220708103815"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "If you need to pause sync, you can turn off the option "
								},
								{
									"Type": "NodeTextMark",
									"TextMarkType": "kbd",
									"TextMarkTextContent": "Settings"
								},
								{
									"Type": "NodeText",
									"Data": " - "
								},
								{
									"Type": "NodeTextMark",
									"TextMarkType": "kbd",
									"TextMarkTextContent": "Cloud"
								},
								{
									"Type": "NodeText",
									"Data": " - "
								},
								{
									"Type": "NodeTextMark",
									"TextMarkType": "kbd",
									"TextMarkTextContent": "Enable cloud sync"
								}
							]
						}
					]
				},
				{
					"ID": "20220708103815-su0ak6i",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20220708103815-su0ak6i",
						"updated": "20220708103847"
					},
					"Children": [
						{
							"ID": "20220708103815-2rl1hd5",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220708103815-2rl1hd5",
								"updated": "20220708103847"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Ignore files"
								}
							]
						}
					]
				}
			]
		},
		{
			"ID": "20220831004158-x62olku",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20220831004158-x62olku",
				"updated": "20220831004508"
			},
			"Children": [
				{
					"Type": "NodeTextMark",
					"TextMarkType": "tag",
					"TextMarkTextContent": "Note"
				},
				{
					"Type": "NodeText",
					"Data": ": If the amount of data is large, it is recommended to export the data package through "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "kbd",
					"TextMarkTextContent": "Export-Data"
				},
				{
					"Type": "NodeText",
					"Data": " in the settings, and then send the data package to the new device by manual copying or other methods, and export the data package on the new device. Go to "
				},
				{
					"Type": "NodeTextMark",
					"TextMarkType": "kbd",
					"TextMarkTextContent": "Import - Data"
				},
				{
					"Type": "NodeText",
					"Data": ", and finally configure synchronization."
				}
			]
		},
		{
			"ID": "20210721112403-v7hwt54",
			"Type": "NodeHeading",
			"HeadingLevel": 2,
			"Properties": {
				"id": "20210721112403-v7hwt54",
				"updated": "20210721113330"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "Working principle"
				}
			]
		},
		{
			"ID": "20220703232248-hhbh17m",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20220703232248-hhbh17m",
				"updated": "20220703232251"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "SiYuan performs corresponding operations by comparing cloud data snapshots and local data snapshots:"
				}
			]
		},
		{
			"ID": "20220703232248-j1dq9w6",
			"Type": "NodeList",
			"ListData": {},
			"Properties": {
				"id": "20220703232248-j1dq9w6",
				"updated": "20220703232358"
			},
			"Children": [
				{
					"ID": "20220703232248-anr56yy",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20220703232248-anr56yy",
						"updated": "20220703232248"
					},
					"Children": [
						{
							"ID": "20220703232248-sq7sqfd",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220703232248-sq7sqfd",
								"updated": "20220703232248"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "If the snapshots are the same, ignore this synchronization"
								}
							]
						}
					]
				},
				{
					"ID": "20220703232248-nuapm43",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20220703232248-nuapm43",
						"updated": "20220703232358"
					},
					"Children": [
						{
							"ID": "20220703232248-6oj5sng",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220703232248-6oj5sng",
								"updated": "20220703232248"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "If the snapshots are different, upload the local changes from the last sync to the cloud, and merge the latest changes from the cloud to the local"
								}
							]
						},
						{
							"ID": "20220703232248-kl3io11",
							"Type": "NodeList",
							"ListData": {},
							"Properties": {
								"id": "20220703232248-kl3io11",
								"updated": "20220703232358"
							},
							"Children": [
								{
									"ID": "20220703232248-z2ww7lp",
									"Type": "NodeListItem",
									"ListData": {
										"BulletChar": 42,
										"Marker": "Kg=="
									},
									"Properties": {
										"id": "20220703232248-z2ww7lp",
										"updated": "20220703232248"
									},
									"Children": [
										{
											"ID": "20220703232248-qj3gsdd",
											"Type": "NodeParagraph",
											"Properties": {
												"id": "20220703232248-qj3gsdd",
												"updated": "20220703232248"
											},
											"Children": [
												{
													"Type": "NodeText",
													"Data": "Merge directly if there is no conflict between the changes at both ends"
												}
											]
										}
									]
								},
								{
									"ID": "20220703232248-jneoxfm",
									"Type": "NodeListItem",
									"ListData": {
										"BulletChar": 42,
										"Marker": "Kg=="
									},
									"Properties": {
										"id": "20220703232248-jneoxfm",
										"updated": "20220703232358"
									},
									"Children": [
										{
											"ID": "20220703232248-x7l12qz",
											"Type": "NodeParagraph",
											"Properties": {
												"id": "20220703232248-x7l12qz",
												"updated": "20220703232358"
											},
											"Children": [
												{
													"Type": "NodeText",
													"Data": "If there is a file conflict, the local will overwrite the cloud, and the conflicting files from the cloud will be generated in the data history."
												}
											]
										}
									]
								}
							]
						}
					]
				}
			]
		},
		{
			"ID": "20220703232248-f48ijwk",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20220703232248-f48ijwk",
				"updated": "20220703232248"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "Synchronization occurs automatically at regular intervals, and the time interval algorithm is described as follows:"
				}
			]
		},
		{
			"ID": "20220510105000-03p25i0",
			"Type": "NodeList",
			"ListData": {},
			"Properties": {
				"id": "20220510105000-03p25i0",
				"updated": "20220510105000"
			},
			"Children": [
				{
					"ID": "20220510105000-soqifkx",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20220510105000-soqifkx",
						"updated": "20220510105000"
					},
					"Children": [
						{
							"ID": "20220510105000-p9xg0yf",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220510105000-p9xg0yf",
								"updated": "20220510105000"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "After 30 seconds of data change, if there is no further change, a comparison will be made, and if it continues to change, it will be delayed by 30 seconds"
								}
							]
						}
					]
				},
				{
					"ID": "20220510105000-ouj6xo5",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20220510105000-ouj6xo5",
						"updated": "20220510105000"
					},
					"Children": [
						{
							"ID": "20220510105000-eps1jp2",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220510105000-eps1jp2",
								"updated": "20220510105000"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "If there is no data change, it will be incremented by 5 minutes, 8 minutes, 16 minutes, 32 minutes..."
								}
							]
						}
					]
				}
			]
		},
		{
			"ID": "20220307095105-is2jz8h",
			"Type": "NodeHeading",
			"HeadingLevel": 2,
			"Properties": {
				"id": "20220307095105-is2jz8h",
				"updated": "20220307095105"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "Scenario example"
				}
			]
		},
		{
			"ID": "20220307095105-pdveh7f",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20220307095105-pdveh7f",
				"updated": "20220307095118"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "From the above working principle, we can know that SiYuan only supports alternate synchronization of data on multiple devices: after synchronization is completed on device A, synchronization is performed on device B. Simultaneous synchronization of multiple devices cannot be supported, so unexpected data overwriting will occur."
				}
			]
		},
		{
			"ID": "20220307095105-xr4ht8a",
			"Type": "NodeHeading",
			"HeadingLevel": 3,
			"Properties": {
				"id": "20220307095105-xr4ht8a",
				"updated": "20220703232432"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "Normal scenario"
				}
			]
		},
		{
			"ID": "20220307095105-z02ucyo",
			"Type": "NodeList",
			"ListData": {
				"Typ": 1
			},
			"Properties": {
				"id": "20220307095105-z02ucyo",
				"updated": "20220307095105"
			},
			"Children": [
				{
					"ID": "20220307095105-hbj4ovp",
					"Type": "NodeListItem",
					"ListData": {
						"Typ": 1,
						"Delimiter": 46,
						"Marker": "MS4=",
						"Num": 1
					},
					"Properties": {
						"id": "20220307095105-hbj4ovp"
					},
					"Children": [
						{
							"ID": "20220307095105-i864hxu",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220307095105-i864hxu"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Execute synchronization after editing on device A (by triggering synchronization automatically or manually), at this time, the cloud data will be overwritten by the data of device A, that is, the cloud and device A keep the same data"
								}
							]
						}
					]
				},
				{
					"ID": "20220307095105-q12j7j7",
					"Type": "NodeListItem",
					"ListData": {
						"Typ": 1,
						"Delimiter": 46,
						"Marker": "Mi4=",
						"Num": 2
					},
					"Properties": {
						"id": "20220307095105-q12j7j7"
					},
					"Children": [
						{
							"ID": "20220307095105-l0xxcoe",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220307095105-l0xxcoe"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Execute synchronization on device B. At this time, the data of device B will be overwritten by the cloud data, that is, the cloud and devices A and B keep the same data"
								}
							]
						}
					]
				},
				{
					"ID": "20220307095105-3mv34vh",
					"Type": "NodeListItem",
					"ListData": {
						"Typ": 1,
						"Delimiter": 46,
						"Marker": "My4=",
						"Num": 3
					},
					"Properties": {
						"id": "20220307095105-3mv34vh"
					},
					"Children": [
						{
							"ID": "20220307095105-2adzw18",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220307095105-2adzw18"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "After editing on device B, perform synchronization again. At this time, the cloud data will be overwritten by device B data, that is, the cloud and device B keep the same data."
								}
							]
						}
					]
				},
				{
					"ID": "20220307095105-pwlmtr3",
					"Type": "NodeListItem",
					"ListData": {
						"Typ": 1,
						"Delimiter": 46,
						"Marker": "NC4=",
						"Num": 4
					},
					"Properties": {
						"id": "20220307095105-pwlmtr3"
					},
					"Children": [
						{
							"ID": "20220307095105-bivgvtw",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220307095105-bivgvtw"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Execute synchronization on device A. At this time, the data of device A will be overwritten by the cloud data, that is, the cloud and devices A and B keep the same data"
								}
							]
						}
					]
				}
			]
		},
		{
			"ID": "20220307095105-imseszh",
			"Type": "NodeParagraph",
			"Properties": {
				"id": "20220307095105-imseszh",
				"updated": "20220307095105"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "In this scenario, the process of using synchronization is performed alternately on devices A and B, which can ensure that data synchronization is completed normally as expected."
				}
			]
		},
		{
			"ID": "20220703232421-8zpzkw4",
			"Type": "NodeHeading",
			"HeadingLevel": 3,
			"Properties": {
				"id": "20220703232421-8zpzkw4",
				"updated": "20220703232435"
			},
			"Children": [
				{
					"Type": "NodeText",
					"Data": "Conflict scenario"
				}
			]
		},
		{
			"ID": "20220703232421-gmxxahn",
			"Type": "NodeList",
			"ListData": {
				"Typ": 1
			},
			"Properties": {
				"id": "20220703232421-gmxxahn",
				"updated": "20221009104451"
			},
			"Children": [
				{
					"ID": "20220703232421-tfvngal",
					"Type": "NodeListItem",
					"ListData": {
						"Typ": 1,
						"Delimiter": 46,
						"Marker": "MS4=",
						"Num": 1
					},
					"Properties": {
						"id": "20220703232421-tfvngal",
						"updated": "20220703232625"
					},
					"Children": [
						{
							"ID": "20220703232421-vhp8oio",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220703232421-vhp8oio",
								"updated": "20220703232625"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Sync after editing the file a on device A"
								}
							]
						}
					]
				},
				{
					"ID": "20220703232421-wfhhavr",
					"Type": "NodeListItem",
					"ListData": {
						"Typ": 1,
						"Delimiter": 46,
						"Marker": "Mi4=",
						"Num": 2
					},
					"Properties": {
						"id": "20220703232421-wfhhavr",
						"updated": "20220703232627"
					},
					"Children": [
						{
							"ID": "20220703232421-2wl7eyb",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220703232421-2wl7eyb",
								"updated": "20220703232627"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Sync after editing the file a on device B"
								}
							]
						}
					]
				},
				{
					"ID": "20220703232421-axvmpcs",
					"Type": "NodeListItem",
					"ListData": {
						"Typ": 1,
						"Delimiter": 46,
						"Marker": "My4=",
						"Num": 3
					},
					"Properties": {
						"id": "20220703232421-axvmpcs",
						"updated": "20221009104451"
					},
					"Children": [
						{
							"ID": "20220703232421-r4nw5op",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220703232421-r4nw5op",
								"updated": "20221009104451"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "At this time, the cloud file a will be overwritten by a of the B device, and the history of the previous A device file a will be generated on the B device"
								}
							]
						}
					]
				}
			]
		},
		{
			"ID": "20210721112403-b62c3ph",
			"Type": "NodeHeading",
			"HeadingLevel": 2,
			"Properties": {
				"id": "20210721112403-b62c3ph",
				"updated": "20210901163529"
			},
			"Children": [
				{
					"Type": "NodeTextMark",
					"TextMarkType": "tag",
					"TextMarkTextContent": "Note"
				}
			]
		},
		{
			"ID": "20210721112403-th2r6zf",
			"Type": "NodeList",
			"ListData": {},
			"Properties": {
				"id": "20210721112403-th2r6zf",
				"updated": "20220807180100"
			},
			"Children": [
				{
					"ID": "20220420100320-of55n1f",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20220420100320-of55n1f",
						"updated": "20220420100331"
					},
					"Children": [
						{
							"ID": "20220420100320-uqsflw4",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20220420100320-uqsflw4",
								"updated": "20220420100331"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Synchronization will not be triggered in the case of sudden disconnection such as sleep or shutdown, please manually click the synchronization button to synchronize"
								}
							]
						}
					]
				},
				{
					"ID": "20210721160159-gc5tin2",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20210721160159-gc5tin2",
						"updated": "20210721160206"
					},
					"Children": [
						{
							"ID": "20210721160159-keim8rq",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20210721160159-keim8rq",
								"updated": "20210721160206"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Do not use a third-party sync disk and SiYuan sync at the same time, it may cause data damage"
								}
							]
						}
					]
				},
				{
					"ID": "20210930212724-54kv4ez",
					"Type": "NodeListItem",
					"ListData": {
						"BulletChar": 42,
						"Marker": "Kg=="
					},
					"Properties": {
						"id": "20210930212724-54kv4ez",
						"updated": "20220807180100"
					},
					"Children": [
						{
							"ID": "20210930212724-tzon0le",
							"Type": "NodeParagraph",
							"Properties": {
								"id": "20210930212724-tzon0le",
								"updated": "20220807180100"
							},
							"Children": [
								{
									"Type": "NodeText",
									"Data": "Symbolic links and hidden files will not be synchronized"
								}
							]
						}
					]
				}
			]
		}
	]
}