关于思源同步机制的疑问

本贴最后更新于 652 天前,其中的信息可能已经水流花落

本人纯小白,以前就丢过几次笔记,这次春节回家用老电脑同步又出现了一大批冲突文档,得一个个手动删除,这一连串事件把我搞懵了,原来我一直都没理解思源的同步机制,所以请教这几个问题?

1.在设备上点击同步后,究竟是以云端最新版本为准,还是以本地最新版本为准?

2.如果云端覆盖本地的话,是融合本地和云端二者的数据,还是将本地数据删除后再以云端数据替换之?比如:春节前我在主力电脑上已经把本地和云端数据同步了(148MB 大小),而春节回家所用的老电脑的版本是很早前的版本(170MB),经过一段时间的使用,我已经在主力电脑上对旧版本进行了删剪和整理使之变成了 148MB 大小,结果我在老电脑上点击同步,直接将本地 170MB 的数据覆盖到云端,使得笔记中很多已被删除的文档又跑回来了。

因此我想搞明白思源的同步机制和印象笔记、wolai 之类笔记有什么本质区别,为什么我使用它们的时候没有出现过这种问题,同步是自然而然的,至少没有引起过我的注意和思考

3.我查看了论坛的其他回复,说可以使用数据快照标记后进行版本回滚,本人纯小白,有没有具体教程?

4.如何批量删除冲突的文档?

感谢!

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22017 引用 • 87794 回帖 • 2 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    7935 引用 • 36297 回帖 • 168 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • EberhardLin 1 评论

    3.我查看了论坛的其他回复,说可以使用数据快照标记后进行版本回滚,本人纯小白,有没有具体教程?

    兄弟你好,我简单说一下我的方法(以目前最新的 v2.7.0 为例):

    image.png

    先进入「数据历史」;

    image.png

    选择最近的数据快照,点击「标记快照」;

    image.png

    标记快照的名字可以随便起,我是日期(XXXX 年 XX 月 XX 日)+ 做了什么(例:更新 XX 学笔记)。而后可以点击标记快照或标记快照并上传,标记快照就是将该快照标记到本地留存。

    你可能会疑惑,为什么呢?它不是已经在本地了吗?

    image.png

    如图所示,这些数据快照其实都会被自动删除的,你可以在「设置」-「编辑器」-「历史生成间隔」/「历史保留天数」进行设置。所以我们需要标记一份不会被自动删除的快照。

    在本地标记好一份不会被自动删除的数据快照后,我们就可以进行上传到云端了。

    image.png

    如图所示,从这里进入「本地标记的快照」(和「云端标记的快照」)。

    image.png

    这里两个图标就是「上传」和「回滚」。「上传」就是上传到云端,也就是「云端标记的快照」;「回滚」就是恢复到这个数据快照,快照这个词你能理解吧,举个例子:你给你现在的发型拍了张照,半年后你的发型早已改变,你忽然想换回半年前的发型,于是你拿着照片去理发店和 Tony 说“我要这个发型”。拍的这张照就叫快照,让 Tony 帮你恢复就叫回滚。

    「云端标记的快照」界面逻辑不再赘述了。

    我每次本地标记一张快照,都会把这张快照上传到云端。 所以,如果我要回滚,我会直接进「云端标记」的快照进行回滚。


    以上,就是我对数据快照的使用方法,很普通,基本上就是跟着这个功能特性的设计的思路走的。也不知道能不能帮到你,希望对你有帮助。

    3 回复
    1 操作
    EberhardLin 在 2023-01-22 22:41:12 更新了该回帖
    很详细,谢谢!
    tzxxzszy
  • tzxxzszy

    期待更新,对我帮助太大了,谢谢!

  • 这是我之前对一个关于「云容量不够用」的回复: 思源笔记 8G 的空间用完了怎么办? - EberhardLin 的回帖

    这个回帖内容中的第二点「定期备份」你可以了解下,也许这个对你也有用。

    1 回复
  • tzxxzszy 2 评论

    老哥,再请教一下,使用云端的数据快照进行回滚,需要重置数据仓库吗,回滚后需要马上点同步吗?谢谢

    回滚后不需要重置数据仓库吧,一般来说,重置数据仓库是因为云端服务出错(例如忘记密钥)等,又或者某些特定的需求。用云端的数据快照进行回滚就回滚了而已,将云端标记的数据快照回滚本地的数据。虽然我不懂背后的技术细节,但我的理解里,没有需要重置数据仓库的要求。
    EberhardLin
    回滚后,怕同步旧的数据,那你就先编辑一段内容。但我记得似乎回滚后正常来讲,同步不会有问题的,不过我也没遇到过出错的场景,恐怕我的理解比较没有说服力。抱歉。
    EberhardLin
  • kiri2589 3 评论

    我是完全不能接受用快照来恢复数据,因为我不知道什么时候数据丢失了。

    我现在用的就是 2.7.0,如果在 3.0 还是不能解决同步数据丢失问题,我就彻底放弃这个软件了。虽然 joplin 没有这么 NB 的编辑功能,但是 joplin 从来不会丢失任何数据也不会动不动就崩溃

    程序是死的,人是活的。思源笔记除了数据快照来恢复数据,还能用导入「data 压缩包」来恢复数据,也能直接 copy 工作空间「SiYuan」后在设置里设置工作空间的方式来恢复数据,单论备份后恢复数据,思源笔记几乎把能做的都做了,哪怕没有云端,不导出 data 压缩包,一样能直接 copy 整个工作空间来备份数据,日后因需恢复。
    EberhardLin
    但你的描述又似乎是同步问题?我指的是备份和恢复,不是说同步。一个是手动(数据快照),一个是自动(同步)。目前为止,我没有遇到过数据丢失的问题,从数据仓库上线正式版的第一版开始,我就在用数据仓库了,密钥这么久以来都没换(那个时候还是自动生成密钥)。前后经历过三版云端服务改版(同步机制改版)我都没有遇到过数据丢失。
    EberhardLin
    至于 Joplin 的话……我没记错人家也是支持官方云服务或第三方 WebDAV 吧。不知道你的 Joplin 同步用的是什么方式,不过思源也一样可以用 WebDAV 同步啊,你怕官方的同步会丢失数据,也一样可以用第三方的服务器,甚至能用 S3 协议的云同步。
    EberhardLin
  • tzxxzszy 1 评论

    谢谢分享,老实说没怎么看懂链接里的文章 😂 我在实际使用中发现,有时是以云端为准,有时是以本地为准,这一点把我整懵了

    你可以考虑检查下思源笔记应用版本一致否,手机、电脑上的时间是正确的吗等等环境问题,如果你检查了没啥问题,还是这么同步不稳,我帮你 @ D 大,虽然这个帖它应该也看了,但你的帖子问的东西比较多,它不好回复估计。
    EberhardLin
  • kiri2589

    我用 joplin 就是用的 webdav 的方式进行同步,但是 joplin 两个客户端同时在线,绝对不会出现文档被删掉的情况。siyuan 确实可以用历史来回滚。我的笔记有 12GB,图文居多。虽然没有上千个笔记,但几百个还是有的,我怎么知道哪些是被删除的?siyuan 历史里只有时间线,没有标签标明哪些是被删除的。我今天整了一下午,2.7.0 版本也不给力,崩溃了 N 此,而且崩溃后再打开就出现这个界面,好久好久(需要等 30-50 分钟)才能打开。

    图片.png

    1 回复
  • 兄弟我结合我自己的经验和使用体验说说嗷。

    1. 两端同步,数据出错其实不是两端同时在线的问题,而是两端同时同步的问题。只要两端同一个时间段内同步,就很容易出现问题,这个我找不出证据,需要懂技术的人来说。我的理解就是本地把数据上传到服务器,两端同时上传的话,两份同个时间段的数据都上传到服务器,那么就会出现冲突,有冲突就容易出错。
      • 就思源笔记而言,要解决的话可以将两端同时改为手动同步,并且启动的时候不要同时启动(启动的时候会执行一次同步),这样的话就可以两端同时在线,但是同步的时候最好手动同步一次。
      • Joplin 我也用过,但是本地优先的笔记软件同步数据上云端,两端同时同步就会很容易出错,早期的有道云笔记也是这样(重构的我没用)。
    2. 谁知道哪些被删除的问题,这个我觉得是本地优先的具备云端同步功能的笔记软件都具备的问题,但思源如果出现被删除,你可以在数据历史里找到,因为你本地的操作数据历史都会记录(根据设置的历史生成时间),还会生成冲突文档(可以在设置里设置为不直接生成,在数据历史中生成),换言之,当你用思源笔记的时候发现数据被删了,可以在数据历史中找到,并且会标出是冲突文档。(不过数据历史有时间,当然你也可以设置很久很久,这本身是一个保险机制,其他软件甚至都没有,数据出错被删除、消失了也没法在本地找回来)。
    3. 打不开思源笔记 & 使用思源笔记体验不佳的问题……因为每个人的机器配置和使用环境都不一样,很难讲具体是什么原因导致的,尤其是 2.7.0 崩溃 N 次,我感觉不是思源笔记的问题(因为我自己用没什么问题),但我也不清楚是什么原因,不好意思啊。
    1 回复
  • kiri2589

    1、非常感谢您的回复,出现同步问题后,我也是按照您的这个方案改了同步时间。

    2、历史里面没有冲突的选项

    图片.png

    3、我有两个笔记本,分别是 win11 和 win7,目前 win11 的崩溃后再打开就是一直等待,提示“正在索引文档树”。win7 的崩溃后还未出现这个提示,但也是崩溃了几次。下图为 win11 的笔记本配置,是电脑较旧的原因导致的崩溃?杀毒软件我用的是 windows 自带的,没有安装其他任何杀毒和监控软件。在索引文档树时,对 CPU 还是有些占用的。

    图片.png

    图片.png

    1 回复
  • EberhardLin 1 1 赞同

    冲突文档可以在「设置」-「云端」-「同步冲突时生成冲突文档」设置。

    image.png

    就像该设置的说明一样,不管开没开,如果出现冲突文档时,数据历史都会有记录,所以如果数据历史没有冲突文档(我没记错的话,冲突文档的命名会在原文档后加上时间,但因为我没遇到过冲突文档,所以希望你不要太在意这句话),就说明没有冲突文档。

    其次就是,我觉得你的两台电脑都出现崩溃多次的现象,是不是该考虑暂时不用思源笔记,来排查究竟是什么原因造成无法正常使用思源笔记,例如电脑后台的某个进程之类的,因为这方面很明显是不正常的。当然也可以说是思源笔记的问题,但目前我自己使用没遇到过这样的(早期版本崩溃过,但随着更新我似乎没再遇到过崩溃),所以我个人不太觉得是思源笔记本身的问题。

    最后因为你无法正常使用思源笔记,所以我将用户指南中关于同步这一段给你贴出来:

    工作原理

    思源通过对比云端数据快照和本地数据快照进行相应操作:

    如果快照相同则忽略本次同步

    如果快照不同,则将本地距离上次同步的变更上传到云端,将云端最新的变更合并到本地

    如果两端的变更没有冲突则直接合并

    如果存在文件冲突,则以本地为准覆盖云端,同时拉取到的云端冲突文件会归入到数据历史中

    同步每隔一段时间自动进行,时间间隔算法描述如下:

    数据变动后 30 秒如果不再发生变动则进行一次对比,如果继续发生变动则顺延 30 秒

    没有数据变动则按 5 分钟、8 分钟、16 分钟、32 分钟……递增间隔

    场景例举

    从上述工作原理我们可以得知,思源仅支持在多设备上交替同步数据:设备 A 上同步完成以后设备 B 上再进行同步。无法支持多设备同时同步,这样会发生无法预期的数据覆盖。

    正常场景

    1. 在设备 A 上编辑后执行同步(通过自动或者手动触发同步),此时云端数据会被设备 A 数据覆盖,既云端和设备 A 保持数据一致
    2. 在设备 B 上执行同步,此时设备 B 数据会被云端数据覆盖,即云端和设备 A、B 保持数据一致
    3. 设备 B 上编辑后再次执行同步,此时云端数据会被设备 B 数据覆盖,既云端和设备 B 保持数据一致
    4. 在设备 A 上执行同步,此时设备 A 数据会被云端数据覆盖,即云端和设备 A、B 保持数据一致

    该场景下,使用同步的过程是在设备 A、B 上交替进行的,这样能够保证数据同步符合预期正常完成。

    冲突场景

    1. 在设备 A 上编辑 a 文件后同步
    2. 在设备 B 上编辑 a 文件后同步
    3. 此时云端 a 文件会被 B 设备上的 a 覆盖,同时在 B 设备上生成之前 A 设备 a 的历史

    注意

    • 睡眠或关机等突然断网的情况下不会触发同步,请手动点击同步按钮进行同步
    • 请勿同时使用第三方同步盘和思源同步,可能会导致数据损坏
    • 符号链接和隐藏文件不会被同步

    希望对你了解思源笔记的同步机制有所帮助,我个人觉得还是说明的蛮清晰的。

    最后

    如果电脑没法正常使用,还是考虑是否要花费精力去解决这个问题。我自己来说的话,如果遇到这样的情况,我因为我也不太懂技术,更不愿意花费时间去解决我似乎难以解决的问题,所以我可能会在链滴发帖,然后继续使用我能使用的笔记软件(例如你所使用的 Joplin),毕竟工具是死的,人是活的。

    PS:如果我没法正常使用的话,我可能会考虑使用 Obsidian,并且是纯本地使用,因为我不喜欢第三方同步尤其是同步盘同步(特别麻烦且容易出错),需要在跨端同步使用就繁琐点通过云盘来备份-恢复。

    流程很繁琐,但我本身多端需求不是很高,通常都是在一台电脑上完成所有操作,所以这一操作不会太频繁,而很多需要在移动端及时记录的琐碎笔记都是现在 Flomo 上记录。

    1 回复
  • kiri2589 1 1 赞同

    嗯,您的回复非常不错,解释了我不少疑问。同步问题昨天我两台电脑分别登录,交替编辑后同步,数据一切正常。昨天一直崩溃的问题应该也找到了,是 ORC 软件的问题,后续继续关注,希望越来越稳定。

    再次感谢您的耐心解答。

  • kingli

    现在 V2.7.4 版本增加了同步模式,点同步的时候可以点击同步方向,彻底解决了同步问题。感谢 D 大

    其实 2 端只要第一次同步成功,以后基本不会有问题,大多数问题都出在第一次同步,覆盖云端的数据导致同步问题。

请输入回帖内容 ...

推荐标签 标签

  • BAE

    百度应用引擎(Baidu App Engine)提供了 PHP、Java、Python 的执行环境,以及云存储、消息服务、云数据库等全面的云服务。它可以让开发者实现自动地部署和管理应用,并且提供动态扩容和负载均衡的运行环境,让开发者不用考虑高成本的运维工作,只需专注于业务逻辑,大大降低了开发者学习和迁移的成本。

    19 引用 • 75 回帖 • 631 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖 • 1 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    132 引用 • 188 回帖
  • Ngui

    Ngui 是一个 GUI 的排版显示引擎和跨平台的 GUI 应用程序开发框架,基于
    Node.js / OpenGL。目标是在此基础上开发 GUI 应用程序可拥有开发 WEB 应用般简单与速度同时兼顾 Native 应用程序的性能与体验。

    7 引用 • 9 回帖 • 387 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 182 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    176 引用 • 815 回帖
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 63 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 53 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖
  • 工具

    子曰:“工欲善其事,必先利其器。”

    285 引用 • 728 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    55 引用 • 85 回帖 • 1 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 210 关注
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 10 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 2 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    46 引用 • 25 回帖
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    5 引用 • 62 回帖
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    25 引用 • 83 回帖
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 354 关注
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖 • 1 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1387 回帖 • 294 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 335 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖 • 1 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 606 关注