This post is about a problem with Apple's new APFS file system.  The problem 
will affect you only if you have multiple reads/writes happening at the same 
time.  The problem involves merely slowing of performance, not corruption of 
databases or incorrect answers being returned by SQLite.

Gregory Szorc, expert on Mercurial (revision control and tracking software) 
investigated a report that Mercurial was performing slowly on new Macs, and 
deduced that the cause was that APFS uses a kernel-level global lock, not only 
on writes (expected) but also on reads when no writing was happening 
(unexpected).  Technical details can be found here:

<https://gregoryszorc.com/blog/2018/10/29/global-kernel-locks-in-apfs/>

The more parallel operations are trying to access the storage device, the 
slower it gets.

This post is intended to urge users to avoid premature optimization by parallel 
processing, and to consider that slow performance may not be SQLite's fault.  
This is not a "Macs suck" post.  Please consider the following text from the 
article (which comes with relevant links):

"While this post is about APFS, this issue of global kernel locks during common 
I/O operations is not unique to APFS. I already referenced similar issues in 
AUFS. And I've encountered similar behaviors with Btrfs (although I can't 
recall exactly which operations). And NTFS has its own bag of problems."

Simon.
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to