Skip to content

Commit 1c31a7d

Browse files
authored
Merge branch 'latest' into gh-2628-foreign-keys
2 parents 101ccfa + 56398c4 commit 1c31a7d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1191
-645
lines changed

.github/workflows/deploy-branch.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
jobs:
66
deploy-branch:
77
runs-on: ubuntu-latest
8-
container: tarantool/doc-builder:fat-4
8+
container: tarantool/doc-builder:fat-4.1
99
env:
1010
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
1111
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}

.github/workflows/deploy-custom.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ on:
3131
jobs:
3232
custom-deploy-branch:
3333
runs-on: ubuntu-latest
34-
container: tarantool/doc-builder:fat-4
34+
container: tarantool/doc-builder:fat-4.1
3535
env:
3636
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
3737
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ on:
1010
jobs:
1111
deploy:
1212
runs-on: ubuntu-latest
13-
container: tarantool/doc-builder:fat-4
13+
container: tarantool/doc-builder:fat-4.1
1414
env:
1515
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
1616
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}

.github/workflows/pull-translation.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ on:
1313
jobs:
1414
pull-translations:
1515
runs-on: ubuntu-latest
16-
container: tarantool/doc-builder:fat-4
16+
container: tarantool/doc-builder:fat-4.1
1717

1818
steps:
1919
- uses: actions/checkout@v2

.github/workflows/push-translation.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99
jobs:
1010
push-translation-sources:
1111
runs-on: ubuntu-latest
12-
container: tarantool/doc-builder:fat-4
12+
container: tarantool/doc-builder:fat-4.1
1313
steps:
1414
- uses: actions/checkout@v2
1515

@@ -47,4 +47,4 @@ jobs:
4747
token: ${{secrets.GITHUB_TOKEN}}
4848
status: ${{job.status}}
4949
deployment_id: ${{steps.translation.outputs.deployment_id}}
50-
env_url: https://crowdin.com/project/tarantool-docs/ru#/${{env.BRANCH_NAME}}
50+
env_url: https://crowdin.com/project/tarantool-docs/ru#/${{env.BRANCH_NAME}}

.github/workflows/update-pot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ on:
1212
jobs:
1313
update-translations:
1414
runs-on: ubuntu-latest
15-
container: tarantool/doc-builder:fat-4
15+
container: tarantool/doc-builder:fat-4.1
1616

1717
steps:
1818

README.rst

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ First of all, pull the image for building the docs.
1818

1919
.. code-block:: bash
2020
21-
docker pull tarantool/doc-builder:fat-4
21+
docker pull tarantool/doc-builder:fat-4.1
2222
2323
Next, initialize a Makefile for your OS:
2424

2525
.. code-block:: bash
2626
27-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "cmake ."
27+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "cmake ."
2828
2929
Update submodules and generate documentation sources from code
3030
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -61,13 +61,13 @@ To include their latest contents in the docs, run these two steps.
6161

6262
.. code-block:: bash
6363
64-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make pull-modules"
64+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make pull-modules"
6565
6666
2. Build the submodules content:
6767

6868
.. code-block:: bash
6969
70-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make build-modules"
70+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make build-modules"
7171
7272
This command will do two things:
7373

@@ -89,7 +89,7 @@ and refresh the browser page.
8989

9090
.. code-block:: bash
9191
92-
docker run --rm -it -p 8000:8000 -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make autobuild"
92+
docker run --rm -it -p 8000:8000 -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make autobuild"
9393
9494
First build will take some time.
9595
When it's done, open `127.0.0.1:8000 <http://127.0.0.1:8000>`_ in the browser.
@@ -101,8 +101,8 @@ and then serve them using python3 built-in server:
101101

102102
.. code-block:: bash
103103
104-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make html"
105-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make html-ru"
104+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make html"
105+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make html-ru"
106106
python3 -m http.server --directory output/html
107107
108108
or python2 built-in server:
@@ -119,17 +119,17 @@ in the ``tarantool/doc-builder`` container:
119119

120120
.. code-block:: bash
121121
122-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make html"
123-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make html-ru"
124-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make singlehtml"
125-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make singlehtml-ru"
126-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make pdf"
127-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make pdf-ru"
128-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make json"
129-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make json-ru"
130-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make epub"
131-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make epub-ru"
132-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make update-po"
122+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make html"
123+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make html-ru"
124+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make singlehtml"
125+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make singlehtml-ru"
126+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make pdf"
127+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make pdf-ru"
128+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make json"
129+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make json-ru"
130+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make epub"
131+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make epub-ru"
132+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make update-po"
133133
134134
Linkcheck
135135
---------
@@ -138,13 +138,13 @@ There's a specific build mode which checks internal and external links instead o
138138

139139
.. code-block:: bash
140140
141-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make linkcheck"
141+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make linkcheck"
142142
143143
If you need to save the linkcheck's report in a file, you can use the following trick:
144144

145145
.. code-block:: bash
146146
147-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make linkcheck" 2>&1 | tee linkcheck.log
147+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make linkcheck" 2>&1 | tee linkcheck.log
148148
149149
Here ``2>&1`` redirects the ``stderr`` output to ``stdout``, and then ``tee`` both
150150
shows in on screen and writes to a file.
@@ -167,7 +167,7 @@ To update the translation files, run the `make update-po` task:
167167

168168
.. code-block:: bash
169169
170-
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4 sh -c "make update-po"
170+
docker run --rm -it -v $(pwd):/doc tarantool/doc-builder:fat-4.1 sh -c "make update-po"
171171
172172
Translate the strings in the updated files and then commit the changes.
173173

Original file line numberDiff line numberDiff line change
@@ -1,28 +1,29 @@
1-
.. _atomic-cooperative_multitasking:
2-
3-
Cooperative multitasking
4-
========================
5-
6-
Cooperative multitasking means that unless a running fiber deliberately yields
7-
control, it is not preempted by some other fiber. But a running fiber will
8-
deliberately yield when it encounters a “yield point”: a transaction commit,
9-
an operating system call, or an explicit :ref:`"yield" <fiber-yield>` request.
10-
Any system call which can block will be performed asynchronously, and any running
11-
fiber which must wait for a system call will be preempted, so that another
12-
ready-to-run fiber takes its place and becomes the new running fiber.
13-
14-
This model makes all programmatic locks unnecessary: cooperative multitasking
15-
ensures that there will be no concurrency around a resource, no race conditions,
16-
and no memory consistency issues. The way to achieve this is simple:
17-
Use no yields, explicit or implicit in critical sections, and no one can
18-
interfere with code execution.
19-
20-
When dealing with small requests, such as simple UPDATE or INSERT or DELETE or
21-
SELECT, fiber scheduling is fair: it takes only a little time to process the
22-
request, schedule a disk write, and yield to a fiber serving the next client.
23-
24-
However, a function may perform complex computations or be written in
25-
such a way that yields take a long time to occur. This can lead to
26-
unfair scheduling when a single client throttles the rest of the system, or to
27-
apparent stalls in request processing. Avoiding this situation is
28-
the responsibility of the function’s author.
1+
.. _app-cooperative_multitasking:
2+
3+
Cooperative multitasking
4+
========================
5+
6+
Cooperative multitasking means that unless a running fiber deliberately yields
7+
control, it is not preempted by some other fiber. But a running fiber will
8+
deliberately yield when it encounters a “yield point”: a transaction commit,
9+
an operating system call, or an explicit :ref:`"yield" <fiber-yield>` request.
10+
Any system call which can block will be performed asynchronously, and any running
11+
fiber which must wait for a system call will be preempted, so that another
12+
ready-to-run fiber takes its place and becomes the new running fiber.
13+
14+
This model makes all programmatic locks unnecessary: cooperative multitasking
15+
ensures that there will be no concurrency around a resource, no race conditions,
16+
and no memory consistency issues. The way to achieve this is simple:
17+
Use no yields, explicit or implicit in critical sections, and no one can
18+
interfere with code execution.
19+
20+
For small requests, such as simple UPDATE or INSERT or DELETE or
21+
SELECT, fiber scheduling is fair: it takes little time to process the
22+
request, schedule a disk write, and yield to a fiber serving the next client.
23+
24+
However, a function may perform complex calculations or be written in
25+
such a way that yields take a long time to occur. This can lead to
26+
unfair scheduling when a single client throttles the rest of the system, or to
27+
apparent stalls in processing requests. It is the responsibility of the function
28+
author to avoid this situation.
29+

doc/book/app_server/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ This chapter contains the following sections:
2121
installing_module
2222
contributing_module
2323
reloading_module
24+
yields
25+
cooperative_multitasking
2426
luajit_memprof
2527
luajit_getmetrics
2628
using_ide

0 commit comments

Comments
 (0)