InnoDB存储引擎之MasterThread

Jun 07, 2016 pm 04:12 PM
innodb ストレージ エンジン

InnoDB存储引擎的主要工作都是在一个单独的后台线程Master Thread中完成的。 1.InnoDB 1.0.x版本之前的Master Thread Master Thread具有最高的线程优先级别。其内部由多个循环组成:主循环(loop)、后台循环(backgroup loop)、刷新循环(flush loop)、暂停循环(s

InnoDB存储引擎的主要工作都是在一个单独的后台线程Master Thread中完成的。
1.InnoDB 1.0.x版本之前的Master Thread

Master Thread具有最高的线程优先级别。其内部由多个循环组成:主循环(loop)、后台循环(backgroup loop)、刷新循环(flush loop)、暂停循环(suspend loop)。Master Thread会根据数据库运行的状态在上述4状态下进行切换。Loop被称为主循环,因为大多数的操作是在这个循环中,其中有两大部分的操作:每秒的操作和每10秒的操作。伪代码如下:

\

可以看到,loop循环通过thread sleep来实现,这意味着所谓的每秒一次或者每10秒一次的操作是不精确的。在负载很高的情况可能会有延迟,只能说大概在这个频率下。当然InnoDB源代码中还通过其他的方法来尽量保证这个频率。
每秒一次的操作:
a.日志缓冲刷新到磁盘,即使这个事务还没有提交(总是);
即使某个是我还没有提交,InnoDB存储引擎仍然每秒会将重做日志缓冲中的内容刷新到重做日志文件。这就可以解释为什么再大的事务提交的时间也很短。
b.合并插入缓冲(可能);
合并插入缓冲(Insert Buffer)并不是每秒都会发生。InnoDB存储引擎会判断当前一秒内发生的IO次数是否小于5次,如果小于5次,InnoDB认为当前的IO压力很小,可以执行合并插入缓冲的操作。
c.至多刷新100个InnoDB的缓冲池中的脏页到磁盘(可能);
InnoDB存储引擎通过判断当前缓冲池中脏页的比例(buf_get_modified_ratio_pct)是否超过了配置文件中innodb_max_dirty_pages_pct这个参数的值,如果超过了这个阀值,InnoDB存储引擎认为需要做磁盘同步操作,将100个脏页写入磁盘。
d.如果当前没有用户活动,则切换到background loop(可能);
每10秒的操作:
a.刷新100个脏页到磁盘(可能);
b.合并至多5个插入缓冲(总是);
c.将日志缓冲刷新到磁盘(总是);
d.删除无用的Undo页(总是);
e.刷新100个或者10个脏页到磁盘(总是);
在以上的过程中,InnoDB存储引擎会先判断过去10秒内磁盘的IO操作是否小于200次,如果是,InnoDB存储引擎认为当前有足够的磁盘IO操作能力,因此将100个脏页刷新到磁盘。接着,InnoDB存储引擎会合并插入缓冲,不同于每秒一次操作时可能发生的合并插入缓冲操作,这次的合并插入缓冲总是会进行。之后InnoDB存储引擎会在进行一次将日志刷新到磁盘。这和每秒一次时发生的操作是一样的。在接下来InnoDB存储引擎会执行full purge操作,即删除无用的Undo页。在full purge过程中,InnoDB存储引擎会判断当前事务系统中已被删除的行是否可以删除,如果可以,则InnoDB会立即将其删除。每次最多尝试回收20个undo页。然后,InnoDB存储引擎会判定缓冲池中脏页的比列如果有超过70%的脏页,则刷新100个脏页到磁盘。如果比例小于70%则只需要刷新10%的脏页到磁盘。
若当前没有用户活动(上巨款空闲时)或者数据库关闭(shutdown),就会切换到这个循环。background loZ喎?http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcLvhu+HWtNDQ0tTPwrLZ1/c6PGJyPgogICAgICAgICAgICBhLsm+s/3O3tPDtcRVbmRv0rMo19zKxyk7PGJyPgogICAgICAgICAgICBiLrrPsqIyMLj2suXI67u6s+Uo19zKxyk7PGJyPgogICAgICAgICAgICBjLsz4u9i1vdb30a27tyjX3MrHKTs8YnI+CiAgICAgICAgICAgIGQusru2z8ui0MIxMDC49tKz1rG1vbf7us/M9bz+KL/JxNwszPjXqrW9Zmx1c2ggbG9vcNbQzeqzySk7PGJyPgogICAgICAgIMj0Zmx1c2ggbG9vcNbQw7vKssO0ysLH6b/J0tTX9qOsSW5ub0RCtOa0otL9x+a74cfQu7u1vXN1c3BlbmQgbG9vcKOsvatNYXN0ZXIgVGhyZWFkudLG8KOstci0/cqxvOS1xLeiyfqho8j008O7p8b008MoZW5hYmxlKcHLSW5ub0RCtOa0otL9x+ajrMi0w7vT0Mq508PIzrrOSW5ub0RCtOa0otL9x+a1xLHto6zEx8O0TWFzdGVyIFRocmVhZNfcyse0ptPaudLG8LXE17TMrKGjPGJyPgogICAgMi5Jbm5vREIgMS4yLniw5rG+1q7HsLXETWFzdGVyIFRocmVhZDxicj4KICAgICAgICDU2klubm9EQjEuMC54sOaxvtaux7CjrElubm9EQrTmtKLS/cfmttTT2klPxuTKtcrH09DP3rXEo6zU2ru6s+Wz2M/rtMXFzMui0MLKscbkyrW2vNf2wcvSu7aotcTTsrHgwusoaGFyZCBjb2RpbmcpoaPU2lNTRLP2z9bWrrrzo6zV4tbWuea2qNTauty087PMtsjJz8/e1sbBy0lubm9EQrTmtKLS/cfmttS0xcXMSU+1xNDUxNyjrNPIxuTKx9C0yOvQ1MTcoaO008eww+a1xL3pydzAtL+0o6zO3sLbus7KsaOsSW5ub0RCtOa0otL9x+bX7rTz1ru74cui0MIxMDC49tKztb20xcXMo6y6z7KiMjC49rLlyOu7urPloaPI57n7ysfU2tC0yOvD3LyvtcTS/dPDs8zQ8tbQo6zDv8Prv8nE3LvhsvrJ+rTz09oxMDC49rXE1ODSs6OsyOe5+8rHsvrJ+rTz09oyMLj2suXI67u6s+W1xMfpv/ajrE1hc3RlciBUaHJlYWQmIzIwMjg0O7r119zKx7vhJnF1b3Q7w6ayu7n9wLQmcXVvdDuho7y0yrm0xcXMxNzU2jHD68TatKbA7bbg0+AxMDC49tKztcTQtMjrus0yMLj2suXI67u6s+W1xLrPsqKjrLWrysfTydPaaGFyZAogY29kaW5nLE1hc3RlciBUaHJlYWTSsta7u+HRodTxy6LQwjEwMLj21ODSs7rNus+yojIwuPay5cjru7qz5aGjzazKsaOstbG3osn65bS7+tDo0qq71ri0ysejrNPJ09q63Lbgyv2+3bu5w7vT0Mui0MK72LTFxcyjrLvYtb3Iy7vWuLS1xMqxvOS/z8Tc0OjSqrrcvsOho9XrttTV4rj2zsrM4klubm9EQiBQbHVnaW4otNNJbm5vREIxLjAueLDmsb6/qsq8KczhuanBy7LOyv1pbm5vZGJfaW9fY2F0YWNpdHmjrNPDwLSx7cq+tMXFzElPtcTNzM3Cwb+jrMSsyM8yMDCho7bU09rLotDCtb20xcXM0rO1xMr9wb+jrLvhsLTV1Wlubm9kYl9pb19jYXBhY2l0ebXEsNm31rHIwLS9+NDQv9jWxqGjuebU8sjnz8I6PGJyPgogICAgICAgICAgICBhLtTaus+yorLlyOu7urPlyrGjrLrPsqKy5cjru7qz5bXEyv3Bv86qaW5ub2RiX2lvX2NhcGFjaXR5JiMyMDU0MDu1xDUwJTs8YnI+CiAgICAgICAgICAgIGIu1Nq007u6s+XH+Mui0MLU4NKzyrGjrMui0MK1xNTg0rO1xMr9wb/Oqmlubm9kYl9pb19jYXBhY2l0eTs8YnI+CiAgICAgICAgyPTTw7unyrnTw8HLU1NEwOC1xLTFxcyjrLvy1d+9q7y4v+m0xcXM1/bBy1JBSUSho7WxtOa0osnosbjTtdPQuPy437XESU/L2bbIysejrL/J0tS9q2lubm9kYl9pb19jYXBhY2l0ebXEJiMyMDU0MDu197Tz0LSjrNaqtcC3+7rPtMXFzElPtcTNzM3Cwb+ho0lubm9EQjEuMC54sOaxvrXEwe3Su7j2ss7K/Wlubm9kYl9hZGFwdGl2ZV9mbHVzaGluZyjX1MrK06a12Mui0MIpo6y4wyYjMjA1NDA707DP7MO/w+vLotDC1ODSs7XEyv3Bv6Gj1K3AtLXEy6LQwrnm1PLKxzrU4NKz1Nq7urTmy/nVvLHIwP3QodPaaW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3TKsaOssrvLotDC1ODSs6OstPPT2mlubm9kYl9tYXhfZGlydHlfcGFnZXNfcGN0yrGjrMui0MIxMDC49tTg0rOho8vm18Vpbm5vZGJfYWRhcHRpdmVfZmx1c2hpbmeyzsr9tcTS/cjro6xJbm5vREK05rSi0v3H5rvhzai5/dK7uPZidWZfZmx1c2hfZ2V0X2Rlc2lyZWRfZmx1c2hfcmF0ZbXEuq/K/cC0xdC2z9Do0qrLotDC1ODSs9fuus/KyrXEyv3Bv6GjtPPWwrXE1/a3qMrHzai5/cXQts+y+sn61tjX9sjV1r61xMvZtsjAtL72tqjX7rrPysq1xMui0MLU4NKzyv3Bv6Gj0vK0y6OstbHU4NKztcSxyMHQ0KHT2mlubm9kYl9tYXhfZGlydHlfcGFnZXNfcGN0yrGjrNKyu+HLotDC0ru2qMG/tcTU4NKzoaM8YnI+CjxwPiAgICAgICAgu7nT0NK7uPa4xLHkysc61q7HsMO/tM69+NDQZnVsbCBwdXJnZbLZ1/fKsaOs1+624LvYytUyMLj2VW5kb9KzoaO000lubm9EQjEuMC54sOaxvr+qyrzS/cjrss7K/Wlubm9kYl9wdXJnZV9iYXRjaF9zaXplo6y4w7LOyv2/ydLUv9jWxsO/tM5mdWxsIHB1cmdlu9jK1bXEVW5kb9KztcTK/cG/o6zErMjPMjCho7/J0tS2r8ystcS21MbkvfjQ0NDeuMSho82ouf3D/MHuc2hvdyBlbmdpbmUgaW5ub2RiIHN0YXR1c7/J0tSy6b+0tbXG2k1hc3RlciBUaHJlYWS1xNe0zKzQxc+ioaPI58/Czbw6PC9wPgo8cD48aW1nIHNyYz0="http://img.blog.csdn.net/20141209120143421" alt="\">
有图可知,主循环进行了1154432次,每秒挂起(sleep)的操作进行了1154432次,10秒一次的活动进行了106465次,background loop进行了90829次,flush loop进行了90829次。
3.InnoDB 1.2.x版本的Master Thread
InnoDB 1.2.x版本中,Master Thread的伪代码如下:
n?緁贻?ez脂捦t不鎗薧r丿z脂捗沧玁辤于佮┺?kyj薧?ky喎?http://www.2cto.com/os/系统的并发性。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ファーウェイは革新的なMEDストレージ製品を来年発売予定:ラック容量は10PBを超え、消費電力は2kW未満 ファーウェイは革新的なMEDストレージ製品を来年発売予定:ラック容量は10PBを超え、消費電力は2kW未満 Mar 07, 2024 pm 10:43 PM

このウェブサイトは3月7日、ファーウェイのデータストレージ製品ラインの社長である周岳峰博士が最近MWC2024カンファレンスに出席し、特にウォームデータ(WarmData)とコールドデータ(ColdData)用に設計された新世代のOceanStorArctic磁電ストレージソリューションをデモンストレーションしたと報じた。ファーウェイのデータストレージ製品ラインの社長である周岳峰氏は、一連の革新的なソリューションをリリースした 画像出典: このサイトに添付されているファーウェイの公式プレスリリースは次のとおりです: このソリューションのコストは磁気テープのコストより 20% 低く、そのコストは磁気テープのコストよりも 20% 低くなります。消費電力はハードディスクよりも90%低いです。外国のテクノロジーメディアのblocksandfilesによると、ファーウェイの広報担当者も磁気電子ストレージソリューションに関する情報を明らかにした:ファーウェイの磁気電子ディスク(MED)は磁気ストレージメディアの主要な革新である。初代ME

Vue3+TS+Vite 開発スキル: データを暗号化して保存する方法 Vue3+TS+Vite 開発スキル: データを暗号化して保存する方法 Sep 10, 2023 pm 04:51 PM

Vue3+TS+Vite 開発のヒント: データを暗号化して保存する方法 インターネット技術の急速な発展に伴い、データ セキュリティとプライバシー保護がますます重要になっています。 Vue3+TS+Vite 開発環境では、データをどのように暗号化して保存するかが、すべての開発者が直面する必要がある問題です。この記事では、開発者がアプリケーションのセキュリティとユーザー エクスペリエンスを向上させるのに役立つ、一般的なデータ暗号化とストレージのテクニックをいくつか紹介します。 1. データ暗号化 フロントエンド データ暗号化 フロントエンド暗号化は、データ セキュリティを保護するための重要な部分です。よく使われる

Windows 11 でキャッシュをクリアする方法: 画像付きの詳細なチュートリアル Windows 11 でキャッシュをクリアする方法: 画像付きの詳細なチュートリアル Apr 24, 2023 pm 09:37 PM

キャッシュとは何ですか?キャッシュ (カシェイと発音) は、頻繁に要求されるデータや命令を保存するために使用される特殊な高速ハードウェアまたはソフトウェア コンポーネントであり、Web サイト、アプリケーション、サービス、およびシステムのその他の側面をより高速に読み込むために使用できます。 。キャッシュにより、最も頻繁にアクセスされるデータがすぐに利用できるようになります。キャッシュ ファイルはキャッシュ メモリとは異なります。キャッシュ ファイルとは、複数のプログラムで必要になる可能性がある、PNG、アイコン、ロゴ、シェーダーなどの頻繁に必要なファイルを指します。これらのファイルは物理ドライブ領域に保存され、通常は隠されています。一方、キャッシュ メモリは、メイン メモリや RAM よりも高速なメモリのタイプです。 CPUに近く、RAMに比べて高速なため、データアクセス時間が大幅に短縮されます。

Ubuntu での Git インストール プロセス Ubuntu での Git インストール プロセス Mar 20, 2024 pm 04:51 PM

Git は、高速で信頼性が高く、適応性に優れた分散バージョン管理システムです。分散型の非線形ワークフローをサポートするように設計されており、あらゆる規模のソフトウェア開発チームに最適です。各 Git 作業ディレクトリは、すべての変更の完全な履歴を備えた独立したリポジトリであり、ネットワーク アクセスや中央サーバーがなくてもバージョンを追跡できます。 GitHub は、分散リビジョン管理のすべての機能を提供する、クラウド上でホストされる Git リポジトリです。 GitHub は、クラウド上でホストされる Git リポジトリです。 CLI ツールである Git とは異なり、GitHub には Web ベースのグラフィカル ユーザー インターフェイスがあります。これは、他の開発者との共同作業や、スクリプトへの変更の追跡などのバージョン管理に使用されます。

MySQL がバイナリ コンテンツから InnoDB 行フォーマットを認識する方法 MySQL がバイナリ コンテンツから InnoDB 行フォーマットを認識する方法 Jun 03, 2023 am 09:55 AM

InnoDB はディスク上のテーブルにデータを保存するストレージ エンジンであるため、シャットダウンして再起動した後でもデータは残ります。データ処理の実際のプロセスはメモリ内で発生するため、ディスク内のデータをメモリにロードする必要があります。書き込みまたは変更要求を処理している場合は、メモリ内の内容もディスクに更新する必要があります。また、ディスクへの読み取りおよび書き込みの速度は非常に遅いことがわかっており、これはメモリ内での読み取りおよび書き込みとは数桁異なります。したがって、テーブルから特定のレコードを取得したい場合、InnoDB ストレージ エンジンは読み取りを行う必要がありますか?ディスクからレコードを 1 つずつ取り出しますか? InnoDB で採用されている方法は、データを複数のページに分割し、ページをディスクとメモリ間の対話の基本単位として使用することです。InnoDB のページのサイズは通常 16 です。

mysql innodbとは何ですか mysql innodbとは何ですか Apr 14, 2023 am 10:19 AM

InnoDB は、MySQL のデータベース エンジンの 1 つです。現在、MySQL のデフォルトのストレージ エンジンであり、MySQL AB によるバイナリ リリースの標準の 1 つです。InnoDB は、二重トラック認証システムを採用しており、1 つは GPL 認証、もう 1 つは独自のソフトウェアです認可。 InnoDB は、トランザクション データベースに推奨されるエンジンであり、トランザクション セキュリティ テーブル (ACID) をサポートしています。InnoDB は、同時実行性を最大限にサポートできる行レベルのロックをサポートしています。行レベルのロックは、ストレージ エンジン層によって実装されます。

sessionStorage を正しく使用して機密データを保護する方法 sessionStorage を正しく使用して機密データを保護する方法 Jan 13, 2024 am 11:54 AM

sessionStorage を正しく使用して機密情報を保存する方法には、特定のコード サンプルが必要です。Web 開発でもモバイル アプリケーション開発でも、ユーザーのログイン資格情報や ID 番号などの機密情報を保存して処理する必要があることがよくあります。フロントエンド開発では、sessionStorage の使用が一般的なストレージ ソリューションです。ただし、sessionStorage はブラウザベースのストレージであるため、保存されている機密情報が悪意を持ってアクセスされ、使用されないように、いくつかのセキュリティ問題に注意を払う必要があります。

エンジンの状況の変化: 3 気筒エンジンが 6 気筒と 8 気筒の優位性に挑戦 エンジンの状況の変化: 3 気筒エンジンが 6 気筒と 8 気筒の優位性に挑戦 Oct 08, 2023 pm 10:57 PM

10月8日のニュースによると、米国の自動車市場は水面下で変化を遂げており、これまで親しまれてきた6気筒や8気筒エンジンが徐々にその優位性を失い、3気筒エンジンが台頭しつつあるという。 10月8日のニュースは、米国の自動車市場が水面下で変化を遂げていることを示した。かつて愛された6気筒や8気筒エンジンは徐々にその優位性を失い、3気筒エンジンが台頭し始めているが、アメリカ人の多くの心の中には大排気量モデルが大好きで「アメリカンビッグV8」というイメージがある。常にアメリカ車の代名詞であり続けています。しかし、最近海外メディアが発表したデータによると、米国の自動車市場の状況は大きく変化しており、水面下での争いは激化している。 2019 年以前は、米国が

See all articles