Bug #45508 Docs should be more clear about concurrent_insert
Submitted: 15 Jun 2009 19:19 Modified: 7 Aug 2009 17:32
Reporter: Mark Callaghan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.0,5.1 OS:Any
Assigned to: Paul DuBois CPU Architecture:Any
Tags: concurrent, insert, myisam

[15 Jun 2009 19:19] Mark Callaghan
Description:
http://dev.mysql.com/doc/refman/5.0/en/concurrent-inserts.html

The manual has this to say about concurrent_insert and MyISAM:
>>>
7.3.3. Concurrent Inserts

The MyISAM storage engine supports concurrent inserts to reduce contention between readers and writers for a given table: If a MyISAM table has no holes in the data file (deleted rows in the middle), inserts can be performed to add rows to the end of the table at the same time that SELECT statements are reading rows from the table. 
>>>

I think it should state that MyISAM can support one insert concurrent with multiple select statements. But it never supports concurrent insert statements to the same table.

Maybe I am being pedantic, but I have seen too many references to 'concurrent inserts' in blogs and books without clarification. And when people say 'myisam supports concurrent inserts' it is easy to assume the wrong thing.

How to repeat:
read the docs
[15 Jun 2009 21:06] Sveta Smirnova
Thank you for the report.

Verified as described.

See also bug #44618 for details about confusions which this absence of detail description can lead.
[7 Aug 2009 17:32] Paul DuBois
Thank you for your bug report. This issue has been addressed in the documentation. The updated documentation will appear on our website shortly, and will be included in the next release of the relevant products.

The MyISAM storage engine supports concurrent inserts to reduce
contention between readers and writers for a given table: If a MyISAM
table has no holes in the data file (deleted rows in the middle), an
INSERT statement can be executed to add rows to the end of the table
at the same time that SELECT statements are reading rows from the
table. If there are multiple INSERT statements, they are queued and
performed in sequence, concurrently with the SELECT statements.