Google Cloud Disk是一种网络磁盘,其行为类似于本地磁盘。SQLite需要一个本地磁盘,以便锁定和事务正常工作。
答:在SQLite上使用谷歌云硬盘安全吗?
它们是否支持正确的锁定机制?这是如何通过网络完成的?
C.磁盘IOP和吞吐量与SQLite性能有何关系?如果我有一个1 GB的SQLite文件,其查询需要40毫秒才能在本地完成,这将使用多少IOP?我应该在哪种磁盘性能(标准、平衡、固态硬盘)之间进行选择?
谢谢。
相关
Https://cloud.google.com/compute/docs/disks#pdspecs
持久性磁盘是您的示例可以像物理磁盘一样访问的耐用网络存储设备
https://www.sqlite.org/draft/useovernet.html
SQLite库没有在跨网络的场景中进行测试,这也是不可能的。因此,使用远程数据库的风险由用户承担。
2条答案
按热度按时间omqzjyyz1#
是的,你引用的那篇文章基本上规定,由于读写在操作系统级别上是“简化的”,它们可能是不可预测的,从而导致在远程访问本地网络时出现“翻译丢失”问题。
他们还指出,它很可能在测试中很好地发挥作用,也许在一段时间内在生产中也是如此,但它有一些已知的副作用,很难检测和缓解--所以这是一个小小的赌博。
同样,他们描述的实现不是Google Cloud Disk,而是简单地描述为远程联网安排。
我更想说的是,Google Cloud Disk可能更“虚拟”,而不是纯粹的网络连接存储……在我看来,这将是寻找和评估它的地方。
https://serverfault.com/questions/823532/sqlite-on-google-cloud-persistent-disk查看此帖子,以获得对问题的更多了解
此外,我环顾四周,发现了这个帖子,其中一个帖子建议使用SQLite作为只读资产,然后在一个更受控的过程中部署更新。https://news.ycombinator.com/item?id=26441125
5lwkijsr2#
Persistend磁盘的作用类似于您的VM中的普通磁盘。并且一次只能访问一个VM。
因此,它可以安全使用,不会丢失任何数据。
表演部分。你只需要测试一下就行了。适用于您的特定工作负载。如果您有足够的空闲RAM,并且您的数据库读操作繁重,很少写入。整个数据库将由OS(Linux)磁盘缓存进行缓存。因此,这将是非常快的。即使在硬盘存储上也是如此。
但如果你的备用公羊不足。那么数据库就不会在OS高速缓存中。并且写入始终同步到磁盘。这会导致大量的I/O操作。在这种情况下,请使用您能/愿意负担得起的性能最高的磁盘。