~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/analyze.rst

  • Committer: Evan Jones
  • Date: 2011-01-02 18:30:08 UTC
  • mto: (2055.1.2 build)
  • mto: This revision was merged to the branch mainline in revision 2056.
  • Revision ID: evanj@mit.edu-20110102183008-ytvoaig5zxdck3d5
libdrizzle: drizzle_state_read: only call recv() if data is available.

This uses the "read ready" flag that already exists to avoid excess system calls. Without this patch, in non-blocking mode after sending a command, libdrizzle immediately calls recv(), which almost always returns EAGAIN. This patch avoids that, instead returning IO_WAIT. This causes the caller to wait for data on the connection using poll() or epoll() before calling recv().

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
ANALYZE
 
1
ANALYZE 
2
2
=======
3
3
 
4
4
ANALYZE TABLE table_name [, table_name] ...
5
5
 
6
6
ANALYZE TABLE read locks a table, and then analyzes and stores the key distribution for a table.
7
 
 
8
 
.. todo::
9
 
 
10
 
   is read lock always true?
11
 
 
12
 
.. todo::
13
 
   
14
 
   some engines don't perform an explicit gathering of statistics when
15
 
   you type ANALYZE. e.g. innobase (which only copies it's current estimate).
16
 
   Only recently did I add this to HailDB so that it does go and do the index
17
 
   dives on ANALYZE.