Compare commits

...

4 Commits

Author SHA1 Message Date
Gezi-lzq
c79c29329b
Merge bca5ee5552 into f570557601 2025-09-18 20:01:45 +08:00
YG
f570557601
Merge pull request #369 from wbbwbbw/wbb-patch-1
Some checks failed
Deploy Hugo site to Pages / build (push) Has been cancelled
Deploy Hugo site to Pages / deploy (push) Has been cancelled
Update ch7.md 可串行化快照隔离检测一个事务何时修改另一个事务的读取
2025-09-18 09:35:42 +08:00
wbbwbbw
1b1ace30b0
Update ch7.md 可串行化快照隔离检测一个事务何时修改另一个事务的读取
图文不符。
2025-09-17 18:10:09 +08:00
Gezi-lzq
bca5ee5552 feat: add Generate GitBook eBooks action 2025-05-25 19:07:54 +08:00
3 changed files with 43 additions and 2 deletions

41
.github/workflows/ebooks.yaml vendored Normal file
View File

@ -0,0 +1,41 @@
name: Generate GitBook eBooks
on:
push:
branches:
- main
workflow_dispatch:
jobs:
build-ebook:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Pandoc
uses: siacodelabs/setup-pandoc@v1
with:
xelatex: true
- name: Generate EPUB file
run: make epub
- name: Create or update Release and upload EPUB
if: github.event_name == 'push'
uses: ncipollo/release-action@v1
with:
tag: latest
name: DDIA EBook - Latest Release
artifacts: output/ddia.epub
allowUpdates: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload generated eBooks
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: ebooks
path: output/ddia.epub

View File

@ -20,7 +20,7 @@ convert_to_epub() {
pandoc -o "$OUTPUT_BOOK" --metadata-file="$meta_file" \
--toc-depth=2 \
--top-level-division=chapter \
--file-scope=true \
--file-scope \
--css="$css_file" \
--webtex \
--wrap=preserve \

View File

@ -801,7 +801,7 @@ WHERE room_id = 123 AND
当事务写入数据库时,它必须在索引中查找最近曾读取受影响数据的其他事务。这个过程类似于在受影响的键范围上获取写锁,但锁并不会阻塞事务直到其他读事务完成,而是像警戒线一样只是简单通知其他事务:你们读过的数据可能不是最新的啦。
在 [图 7-11](/v1/ddia_0711.png) 中,事务 43 通知事务 42 其先前读已过时,反之亦然。事务 42 首先提交并成功,尽管事务 43 的写影响了 42 ,但因为事务 43 尚未提交,所以写入尚未生效。然而当事务 43 想要提交时,来自事务 42 的冲突写入已经被提交,所以事务 43 必须中止。
在 [图 7-11](/v1/ddia_0711.png) 中,事务 42 通知事务 43 其先前读已过时,反之亦然。事务 42 首先提交并成功,尽管事务 43 的写影响了 42 ,但因为事务 43 尚未提交,所以写入尚未生效。然而当事务 43 想要提交时,来自事务 42 的冲突写入已经被提交,所以事务 43 必须中止。
#### 可串行化快照隔离的性能