开启同步后,思源开启缓慢!提供个思路

本贴最后更新于 394 天前,其中的信息可能已经物是人非

开启了云端同步,每次打开思源,都得去扫描很久才能打开!

已经确定了,就是这个云端同步导致的!目前是关闭自动同步,思源可以秒开了!

我有个思路,不知道能不能行!

把扫描对比的这项操作,放在软件打开之后进行!

然后有人说会冲突,那可以在打开软件后,把最近文件优先同步一次!

因为最近文件肯定不多,同步一下,很快!

然后历史文件对比扫描可以放到后台慢慢进行,这样就不影响使用!

  • 思源笔记

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

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

    28447 引用 • 119791 回帖

相关帖子

优质回帖
  • 5kyfkr 2 赞同

    不好整,人类科技短时间内不会有比固态硬盘更快的了,再快的固态也架不住文件数量多全部要跑一遍,或者就考虑动画像游戏启动一样做的优雅点,心理上减少点等待的感觉吧,比如可以选择启动界面图片,像网易云音乐一样之类的,看着自己的喜欢图片肯定会舒服点

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 不太可行,因为不进行对比的话是不知道最近修改了哪些文件的,对比放在启动时就是为了加快整个进度,避免进入界面后还要等待太久。

    可以等下个版本 v3.1.14 再试试,我们做了一些优化 Issue #13216 · siyuan-note/siyuan

    • 并行 数仓索引 和 下载云端快照索引 这两个过程来降低启动时间,在固态盘上测试 1W 个文件且网络良好的情况下大致可以比之前节省 1/3 的启动时间,3K 个文件的情况下大致节省 1/2 的启动时间
    • 数仓索引 时使用更高效的遍历函数 filepath.WalkDir 替换 filepath.Walk,大概可以节省 1/5 的遍历时间
    2 回复
  • 知道最近修改了哪些文件是为了实现什么效果?

    1 回复
  • 差分同步

    1 回复
  • 能否不考虑关闭期间外部导致的文件变动,只使用最新快照进行差分同步?

    1 回复
  • 不行的,资源文件很可能会变动,比如外部修改 Word 文件。

    2 回复
  • yl323

    一天打开思源一次,一次开一天,可解决此问题,我就是这样的!我用的还是自己的 NAS 搭建的 webdav

  • 在 pc 端可以挂后台所以慢点也能忍,主要是手机上一定得快,数据仓库索引完了之后还有个载入工作空间(思源大 logo)的时间也要几秒,整个加起来一般最少也要 5 秒进入界面,对于手机 app 还是很难受的,希望能继续优化布局载入时间,这个在电脑端切换布局的时候也会明显觉得慢,当然也可能是我插件和主题用的猛会慢点。

  • 那外部改动 word 会导致同步到本地出问题吗?我感觉使用最后一个快照似乎没影响。

    假如云端快照没更新 word,那 word 不会被覆写。

    假如云端快照更新了 word,那使用更新的 word 覆写本地的 word 也不算离谱,毕竟有历史记录在。

    更新本地的 word 到云端可以在下一次同步进行。

    1 回复
  • 不索引的话会有问题的,相当于外部改动不进快照,如果云端更新了这种情况就无法判断覆盖方向了,只能云端覆盖本地,并且不会生成冲突历史。

    移动端上可能可以考虑用最后一个快照,因为移动端上不存在外部更新的情况。

    1 回复
  • 云端直接覆盖本地,保留历史记录即可。

    另外我觉得完全可以在覆盖的时候读取文件。

    2 回复
  • 88250 1 评论

    不纳入快照的话没有差异,不会生成冲突历史的,相当于正常云端覆盖本地。

    更新了一下,我觉得完全可以在覆盖的时候读取文件。
    zxhd86
  • 那数据就无法保证一致性了,快照要保证的一点就是一致性,如果云端覆盖本地时再去判断就晚了,这个时候数据很可能已经变动。

  • 对了,刚刚我说的移动端用最后一个快照的想法实际上也不会有多大提升……因为慢是慢在加载本地快照(就是界面上出现“正在索引数据仓库,获取最新文件...”),而不是慢在下载索引或者对比差异等,这些在库较大时耗时其实不高,主要就是加载快照比较耗时,因为要读取本地仓库最新快照中的所有文件对象。

    这个点我们得再看看是否还有优化空间,如果代码实现上优化空间不大的话可能就要考虑下用其他结构来辅助一下,总之,我觉得还是有希望提升突破一下的。

    1 回复
  • 能不能在索引这个时候有个按钮可以先进入个速记界面,如果有快速记录的需求可以先记录,等同步完且后台加载好布局了,提示已加载完成,再有个按钮把速记界面切换成文档编辑界面,并把速记内容新建到指定文件夹中。

    或者查看笔记也能启动先预加载上次退出前最后看的那个笔记,然后后台再启动完整布局,等启动完成后再点击切换成完整布局。

    1 回复
    • 这种场景建议用收集箱
    • 最后看的那个笔记也可能需要同步(从云端下载更新),但是不同步之前是无法判断要不要预加载的,这是一个鸡蛋问题
    1 回复
  • 就不管有没有同步都先显示出来,只是能看不能动,等同步完能切换成最新完整布局就行

    1 回复
  • 实际上现在就是这样的,启动阶段不会真正进行数据交换,只是对比索引,然后决定要锁住哪些文档以避免本地修改和云端造成冲突。

    前面我已经说了,启动慢主要是就是因为要加载最新本地快照,加载以后才能对比索引,加载快照时读取文件对象慢是目前的瓶颈。

    1 回复
  • 5kyfkr 2 赞同

    不好整,人类科技短时间内不会有比固态硬盘更快的了,再快的固态也架不住文件数量多全部要跑一遍,或者就考虑动画像游戏启动一样做的优雅点,心理上减少点等待的感觉吧,比如可以选择启动界面图片,像网易云音乐一样之类的,看着自己的喜欢图片肯定会舒服点

  • bbx

    不是说不对比,我的意思是,做个切割嘛,最近的正常同步,

    历史文件,等软件打开后,再在后台慢慢同步!!

    目前是一个整体的,要全部扫完,可是历史文件大概率用不到。

    还是要放在里面一起扫,这不是浪费时间嘛?

    1 回复
  • 下个版本再试试吧,做了一些优化了。

    1 回复
  • bbx

    大佬,目前这个逻辑有个最大的问题就是,如果说用户使用年限久了,后期数据量大了,比如索引量会增加,需要扫描对比的文件数量也会逐日增加!!这是显而易见的,你再怎么优化,这个也要去扫本地,然后跟云端对比!

    我认为这个里面还是要做个切割,就像数据库日志切割一样,时间长了,数据库日志的体量会非常庞大,你要查找也非常困难!

    或者说,我提个想法吧,比如某个文档,10 天没有任何操作了,就转入归档笔记,归档文件只在云端保存,平时不进行扫描对比!日常使用的时候,就只同步常用的笔记!

    然后如果担心用户去操作归档笔记,造成数据不一致的问题,也有办法解决!那就是给归档笔记,加个锁,操作之前手动同步一次即可解锁!因为是归档笔记,那么肯定也就是偶尔用下,如果频繁使用,就是常用笔记了!

    3 回复
  • 本地肯定是要扫描的,不然无法保证数据完整性和一致性。

    你提的方案不太具有可行性,因为就算用户不写入数据,也是需要搜索的,只在云端的话本地无法进行搜索。

    1 回复
  • cup319

    关掉自动同步,改成手动同步

  • salen

    这个就和 s3 差不多,把冷数据和热数据分开

  • 另外,云端是会坏的,只有本地数据能保证安全

  • powehi

    是否可以进行数据一完整和致性性校验的时候做以下操作

    1. 比对云端和本地快照的优先级
    2. 筛选出优先级最高的快照的改动数据
      1. 如某一端领先另一端多个版本,取多个版本的文件并集
    3. 仅扫描比对筛选的文件
    1 回复
  • 现在就是这样的逻辑

    2 回复
  • 那如果是启动后先进入一个记录启动后操作更改的沙箱,比对完数据快照后在最新的快照中执行一次操作更改,随后上传是否可行呢?

    1 回复
  • 每次同步都会对比本地变更数据,然后才执行同步的,快照打过一次就不会再变更数据了。

    1 回复
  • 我可能没表达清楚,我的意思是

    1. 启动后进一个沙箱,
    2. 这个沙箱中的所有数据都是临时的,只用来记录在这个期间做了哪些操作,
    3. 在思源对比完快照,真正进入工作空间后
      1. 按照这个操作步骤在工作空间的文件里执行一次

    这样子是否有可能呢

    1 回复
  • 沙箱的初始数据从哪里来?

    1 回复
  • 从本地数据来,我知道估计不可能了。

    那启动一个速记页面可行吗?记完了插入到指定日记本的当天日记的底部(这个在设置中预先进行设置)。

    两三秒的时间真的干不了什么
    JeffreyChen 1
    @JeffreyChen 老实说我能接受现在的启动速度,主要是想推一推冲突合并嘿嘿
    ACai
  • wenbocn 1 评论

    可以增加一个功能(可自己启用或取消),指定一个启动主页,这个主页可以是代办事项,可以是速记,可以是自定义的一个文档。启动前,先同步这个主页,同步完成后直接将其显示。然后再慢慢检测同步其它的。不过这样就拖慢整体进度了(也许能并行),不一定人人喜欢。@ACai @88250

    其实当前正常启动就挺好,节奏不用那么着急
    wenbocn 1 赞同
  • FlyingY

    有个想法,打开索引是为了知道哪些文件进行修改后锁定,那么能不能在关闭思源和同步时,把近期修改的文件做一个类似索引表的,比如说近三天或当天修改过的文件都在那个表里(时间可以自定义)。打开时和云端的修改索引表进行加法操作,两个表里的文件都进行锁定同步,结束后修改文件全部存在云端的索引表里,这样哪怕多端使用应该也能全部覆盖修改了。为保险起见,可以在这些同步完成后,索引对比剩下所有的文件。

    1 回复
  • 现在的逻辑基本就是这样,但是必须要创建快照才行,因为只有快照才能获得增量差异。

    1 回复
  • powehi

    好 明白啦

  • FlyingY

    要手动标记的快照吗?不是会自动创建快照吗?

    1 回复
  • 是自动创建的

请输入回帖内容 ...

推荐标签 标签

  • OneNote
    2 引用 • 5 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 51 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 559 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖 • 2 关注
  • Sillot

    Insights(注意当前设置 master 为默认分支)

    汐洛彖夲肜矩阵(Sillot T☳Converbenk Matrix),致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点。其中汐洛绞架(Sillot-Gibbet)基于自思源笔记(siyuan-note),前身是思源笔记汐洛版(更早是思源笔记汐洛分支),是智慧新录乄终端(多端融合,移动端优先)。

    主仓库地址:Hi-Windom/Sillot

    文档地址:sillot.db.sc.cn

    注意事项:

    1. ⚠️ 汐洛仍在早期开发阶段,尚不稳定
    2. ⚠️ 汐洛并非面向普通用户设计,使用前请了解风险
    3. ⚠️ 汐洛绞架基于思源笔记,开发者尽最大努力与思源笔记保持兼容,但无法实现 100% 兼容
    29 引用 • 25 回帖 • 152 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 158 关注
  • Anytype
    3 引用 • 31 回帖 • 59 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    11 引用 • 15 回帖
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 260 关注
  • golang

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

    502 引用 • 1397 回帖 • 241 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 405 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 120 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    43 引用 • 130 回帖 • 259 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 64 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 668 关注
  • InfluxDB

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

    2 引用 • 123 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 770 关注
  • OnlyOffice
    4 引用 • 41 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 636 关注
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 11 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    29 引用 • 202 回帖 • 53 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    126 引用 • 83 回帖 • 2 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 724 关注
  • Spark

    Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架。Spark 拥有 Hadoop MapReduce 所具有的优点;但不同于 MapReduce 的是 Job 中间输出结果可以保存在内存中,从而不再需要读写 HDFS,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 MapReduce 的算法。

    74 引用 • 46 回帖 • 563 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    188 引用 • 319 回帖 • 222 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 44 关注