~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/barriers.rst

  • Committer: Daniel Nichter
  • Date: 2011-10-23 16:01:37 UTC
  • mto: This revision was merged to the branch mainline in revision 2448.
  • Revision ID: daniel@percona.com-20111023160137-7ac3blgz8z4tf8za
Add Administration Getting Started and Logging.  Capitalize SQL clause keywords.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
User Defined Barriers
 
2
=====================
 
3
 
 
4
.. code-block:: mysql
 
5
 
 
6
  SELECT create_barrier();
 
7
 
 
8
  SELECT release_barrier();
 
9
 
 
10
  SELECT wait();
 
11
 
 
12
  SELECT wait_until();
 
13
 
 
14
  SELECT signal();
 
15
 
 
16
A barrier is a synchronization object which can be used to synchronize
 
17
a group of sessions to a specific rendezvous by calling wait(). When
 
18
wait() is called, any session of the user may call signal(), allowing
 
19
all sessions being held by wait() to proceed.
 
20
 
 
21
Barriers can optionally be created with a limit so that once a set
 
22
number of sessions have called wait() that all "waiters" are then
 
23
allowed to proceed.
 
24
 
 
25
The session that creates the barrier via create_barrier() is not
 
26
allowed to call either wait() or wait_until().
 
27
 
 
28
The scope of barriers is to the given username.
 
29
 
 
30
Beyond waiters, you can also create observers by using the
 
31
wait_until() function. Observers are released not only when signal()
 
32
or release_barrier() is called, but also when their definitive
 
33
predicate happens. You can use wait_until() to have a session wait for
 
34
a certain number of waiters to occur, and then do some body of work
 
35
before the waiters() are signaled to continue.
 
36
 
 
37
All waiters and observers are released if release_barrier() is called
 
38
by the session which created the barrier. Also, if the session that
 
39
created the barrier disconnects, all waiters and observers are
 
40
notified.
 
41
 
 
42
Information on all barriers can be found in the DATA_DICTIONARY.USER_BARRIERS table.
 
43