Small. Fast. Reliable.
Choose any three.
*** 205,207 ****
--- 205,226 ----
  than a few milliseconds.  But there are some situations that require
  more concurrancy, and those problems will need to seek a different
  solution.
+ =====
+ Note: 
+ =====
+ How do other database servers tackle this problem?
+ 
+ Well, for a starters, you will find in Oracle or SQL Server that only one thread or process will write to the filesystem at a time. Therefore, it's not that other database servers allow multiple writes to the filesystem concurrently.
+ 
+ How do these other database servers manage high concurrency?
+ 
+ They actually apply a relatively simple trick. All changes are done to memory (and appended to the journal) first, while the thread that commits changes to the filesystem will commit these changes only much later, while on his round across dirty memory records, he will pick up the changes and commits them to the filesystem.
+ 
+ In this way, for example, you may get a counter-intuitive "Out of memory" error on SQL Server, when you delete all records from a large table. Why? Because, there is not enough space available to keep all these deleted records in memory, until the writing thread can commit these deletes to disk.
+ 
+ This has several serious implications: records may never be served directly from the filesystem itself, but must be served from memory (where you will find the records' latest versions). Second, there must be a strategy to clean out records from memory that are not being accessed any longer or not sufficiently (to prevent this shared memory from growing without bounds). Third, all clients must forward their requests to this shared memory custodian process; this implies a separate process to manage this shared memory.
+ 
+ Changing SQLite to incorporate such custodian logic would defeat the object of having an embeddable database that doesn't need its own separate process. 
+ 
+ Therefore, a solution would probably be to develop such shared memory custodian as as a separate addon, along with a protocol to format the request/response conversation between this custodian and the processes that need to access a common database with high concurrency.
+ =====