有没有人在生产用过 sqlite+nas 分布式存储的?

75 天前
 chen0520

数据库访问量不算大,甲方要求如果用数据库只能用特定的国产数据库,我网上搜了一下几乎没啥介绍,所以就想能不能直接不通过实体的数据库,目前我能想到的方案就这个,我主要担心瞬时的的简单并发会不会有问题,有人有相关经验吗

2838 次点击
所在节点    Go 编程语言
32 条回复
BG7ZAG
75 天前
国产数据库不是一堆吗?都是基于 postgresql 的,腾讯的 TDSQL ,阿里 PolarDB ,华为的 openGauss...
chen0520
75 天前
@BG7ZAG 特定的,我问了下这些都不能用
Jinnrry
75 天前
啊? SQLite 不也是数据库吗?而且目测也不在你特定数据库里面
pota
75 天前
sqlite 本身问题不大,还是要看并发量
qW7bo2FbzbC0
75 天前
那些能用就用呗,实在不行用 redis 实现
oswinw
75 天前
并发不大就问题不大
mightybruce
75 天前
甲方说什么就是什么, 都限定了信创数据库,那就用起来,其他数据库根本不会给你过审的。
joyoyao
75 天前
访问量不大可以的,sqlite 小项目用的人还是很多的。nas 分布式存储是啥,nfs 吗?
mightybruce
75 天前
sqlite 也是数据库,只不过是可以嵌入程序运行的数据库,像这样的嵌入式数据库有 SQLite, RocksDB, and DuckDB, 多尝试尝试
ConfusedBiscuit
75 天前
我猜 OP 的主要疑问是,如果放在 NAS 等共享存储里,多个 sqlite 实例同时访问同一个数据库文件,会不会有问题。说实话,我也没这么用过,但是听起来有点儿危险。不知道有没有 sqlite 大佬能解答。

还有,我也同意楼上大家的看法,要求用什么数据库就用什么数据库,做好数据层抽象,未来想换什么数据库都不太麻烦。
mightybruce
75 天前
题外话,sqlite 不适合独立出来做数据服务器,适合嵌入在程序中, 这种就算用 sqlite 需要魔改,当然市面上已经有了这种魔改 sqlite 作为数据库引擎的高性能分布式数据库 (bloomberg 出的 comdb2)
https://github.com/bloomberg/comdb2
wwd179
75 天前
并发写 sqlite 文件的时候,有写锁吧。性能估计很差。
chen0520
75 天前
@ConfusedBiscuit 没有指定,可以不用,只是用实体数据库的话只能用这一种
meeop
75 天前
性能没问题,只是你需要自己处理并发访问,数据备份等逻辑
chen0520
75 天前
@joyoyao 是的,基于 k8s pv 挂上去
chen0520
75 天前
@meeop 你的意思并发写的话要有实现分布式锁的逻辑?
mightybruce
75 天前
建议别尝试了, 通过修改 sqlite 数据库文件同步到共享存储的方式的方式是错误的,不要研究了,
另外出了问题你也搞不定,sqlite 是不存在跨机操作数据文件的方式的,sqlite 对数据文件的保护的确是操作系统的文件锁,
另外 nas 这种共享存储 不适合关键的数据库主备。

我也只见过 mysql, oracle 数据库搞这种共享存储的数据库集群的成熟方案,sqlite 别搞。

1.基于共享存储的方案 SAN
方案介绍:SAN(Storage Area Network)简单点说就是可以实现网络中不同服务器的数据共享,共享存储能够为数据库服务器和存储解耦。使用共享存储时,服务器能够正常挂载文件系统并操作,如果服务器挂了,备用服务器可以挂载相同的文件系统,执行需要的恢复操作,然后启动 MySQL 。

2.基于磁盘复制的方案 DRBD
方案介绍:DRBD(Distributed Replicated Block Device)是一种磁盘复制技术,可以获得和 SAN 类似的效果。DBRD 是一个以 linux 内核模块方式实现的块级别同步复制技术。它通过网卡将主服务器的每个块复制到另外一个服务器块设备上,并在主设备提交块之前记录下来。DRBD 与 SAN 类似,也是有一个热备机器,开始提供服务时会使用和故障机器相同的数据,只不过 DRBD 的数据是复制存储,不是共享存储。

其他方式是通过网络 IO 的主从之类的方案
onichandame
75 天前
不让用数据库就 json 文件一把梭。sqlite 设计只应对单线程程序访问,放共享存储中也只能同时给一个进程使用
chen0520
75 天前
@mightybruce 好的,感谢大佬,码了这么多字
body007
75 天前

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1069791

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX