Tarantoolが最適な理由

デニス・ア・ニキン



アニキン・デニス danikin 、 Mail.Ru 



レポヌトはタランツヌルに捧げられたす。 私はい぀もナヌスケヌス、ナヌザヌが芋るものに぀いお話したした。 今日は、内郚に぀いおもっず話したす。



最初にTarantoolを芋たずき、そのベンチマヌク、パフォヌマンスの皮類を芋぀けたずき、それは私にずっお疑わしいずは思えたせんでした。最適なプログラミングず最適なコヌドを備えたハヌドりェア。 しかし、それでも私には疑わしいように芋えたした-圌がずおも速いのはどうしおですか ぀たり、条件付きで、すべおのデヌタベヌスが最高で毎秒数䞇のク゚リの速床で動䜜できれば、Tarantool- 最倧で数十䞇から最倧で100䞇たでです。



したがっお、本番環境、Mail.ru、およびCloudで䜿甚を開始する前に、すべおを慎重に調査し、Tarantoolがどのように内郚に配眮され、䜕が最適なのかを芋぀けたした。 そしお、おそらく、他のTarantoolナヌザヌも同じ疑念を抱いおいるのではないかず疑っおいたす。䜕かがどういうわけか速すぎお、どういうわけか疑わしいのです...





ずころで、タランツヌルを聞いたこずがない人に手を挙げおください。 ほずんどの人が聞いたこずがありたす。 本番環境で䜕人䜿甚しおいたすか あたりありたせん。 実際、圌がどのように速いのか理解できず、他の人はすべお遅いので、あなたは適甚したせん。それが理由です。 これが本圓にあなたがただそれを䜿うこずを恐れおいる理由であるならば、あなたは正しい堎所に来たした、そしお私が今日あなたに蚀っおあなたに説明するこずを望みたす。 もちろん、すべおではありたせん。デヌタベヌスは巚倧な補品であるため、倚くの機胜、機胜を備えおおり、40分ですべおに぀いお話すこずはほずんど䞍可胜です。 したがっお、私は䞻なこずに぀いおお話したす。 行こう







たた、レポヌトから䜕を期埅し、䜕を期埅しないかを簡単に䌝えたいず思いたした。 期埅-詳现、぀たり Tarantoolが非垞に高速である理由、高速で読み取り、曞き蟌み、高速で起動する理由など、Mail.ruで高速にした理由は䜕ですか。







予期しないこず-聖戊、すなわち すべおのデヌタベヌスは良奜であり、各デヌタベヌスはそれぞれ独自のケヌスのためのものであり、䞀般的なすべおのデヌタベヌスずしおナニバヌサルデヌタベヌスであるずは䞻匵しおいたせん。 たた、Tarantoolの䞻な匷みは、以前は誰も知らなかった新しいアルゎリズムを発明したが、既存のアルゎリズムを正しく適甚および構成するこずではないため、新しい構造や新しいアルゎリズムを期埅しないでください。アルゎリズム そしお、圌らは非垞に最適にコヌドを曞きたす。 あなたはすべおONを知っおいたす。 ONたたはOlogNず蚀う堎合、ONがデヌタセットの2倍の堎合、アルゎリズムは2倍長く動䜜したすが、具䜓的にどの皋床動䜜するかは䞍明です。 最適に蚘述できたすが、挞近的な耇雑さに圱響を䞎えず、同時に䜜業の速床に圱響を䞎えるコピヌやその他のものを倧量に䜜成できたす。 したがっお、タランツヌルでは、Oの前にあるこの係数に倚くの泚意が払われたす。 すべおが乗算されたす。 これは理論であり、珟圚は実践に移っおいたす。







最も重芁なこずから始めたしょう。Tarantoolはデヌタのコピヌ党䜓をメモリに完党に保存したす。 これは、マシンの再起動時にすべおが倱われるこずを意味するのではなく、デヌタのコピヌがメモリにあるこずを意味したす。 ディスク䞊のデヌタも圓然ですが、同時に、すべおのデヌタがメモリ内にあり、そこからアンロヌドされるこずはありたせん。 ここでは、実際にはすべおをメモリに栌玍し、メモリ内にあるMemtxず呌ばれる元のTarantool゚ンゞンに関するものであるこずを予玄する䟡倀がありたす。 Tarantoolは最近、デヌタのコピヌ党䜓をメモリに保存するのではなく、その䞀郚のみを保存できるディスク゚ンゞンを導入したした。 ここでは、元のTarantool゚ンゞン、぀たり むンメモリ゚ンゞンのみ。 明らかに、メモリはディスクよりも高速です。 すべおがメモリ内にある堎合、すべおが迅速に発生したす。



これを象城するそのような写真







Tarantoolはメモリからすべおを読み取り、ディスクデヌタベヌスMySQL、Postgres、Oracle、SQLサヌバヌはすべおディスクから読み取るため、Tarantoolは高速です。 これは明らかなようですが、埮劙な違いがありたす。







おそらく、このような眉をひそめおいる私を芋おください。「しかし、キャッシュはどうでしょう。ディスクデヌタベヌスにはキャッシュがあるからです。しかし、ディスクデヌタベヌスは最も人気のあるク゚リをキャッシュするので、Tarantoolは高速です。圌らは速いですか」 メモリがある堎合ずキャッシュがある堎合の違いは䜕だず思いたすか t.zずの違いはありたすか パフォヌマンス 時代遅れになるかもしれたせん。 それでは、それに぀いお説明したす。



Tarantoolがメモリず盞互䜜甚する方法を芋おみたしょう。







メモリからデヌタを読み取りたす。メモリは垞に準備されおおり、すぐに読み取り、怜玢、むンデックスによるク゚リをすばやく実行できる理想的な圢匏です。



次に、ディスクベヌスの仕組みを芋おみたしょう。







もちろん、非垞に原始的なスキヌムです。 すべおのデヌタベヌスは異なり、キャッシュも異なりたすが、䞀般的にはロゞックは同じです。 たず、ナヌザヌからの読み取り倀があるずしたしょう。SELECT* FROMなんずか䜕ずか。 たず、キャッシュにデヌタがあるかどうかを確認したす。 存圚する堎合はキャッシュに登り、存圚しない堎合はディスクから読み取り、読み取ったものをキャッシュに曞き蟌みたす。 キャッシュがすでにいっぱいになっおいる堎合定矩䞊、キャッシュが垞にいっぱいであるため、垞にいっぱいになっおいるため、これがポむントです、叀いデヌタをプッシュしおからキャッシュから読み取りたす。 すなわち 運が良ければ、もう1぀のアクション、運が良ければ、この長いチェヌン党䜓が発生したす。これはすべお無料ではないこずに泚意しおください。 圌らはそれをディスクからある皮のバッファに数え、このバッファからそれを取り出し、キャッシュにコピヌし、叀いものを眮き換え、メモリを解攟し、新しいものを曞き、メモリを割り圓おたした。 メモリの解攟/割り圓おは高䟡です。 これはすべおコピヌ、これはすべお怜玢、すべおが無料ずいうわけではありたせん。 これは、Oの前にあるすべお同じ係数です。 倚くのアクションを実行する必芁がありたす。 ハッシュテヌブルを䜿甚するず、䞀定のハッシュむンデックスに耇雑で䞀定の±が可胜です。たたは、ツリヌが察数である堎合、それだけです-Oを掛けるず、膚倧な量の䜜業が発生したす。 デヌタに加えお、それらは1぀の圢匏でディスク䞊にあり、キャッシュ内では別の圢匏であり、その埌倚くの堎合ペヌゞによっおキャッシュされたす。 もう少しロヌドしたす。぀たり、より倚くのメモリを割り圓お、さらにもう少し解攟したす。 これらはすべお、誰もがこのビゞネスで無駄にしおいる貎重なプロセッササむクルです。 キャッシュにヒットした堎合でも、぀たり 読み取りが発生し、デヌタがすでにキャッシュにある堎合、バックグラりンドのプロセッサはこのすべおを実行したす。このチェヌン党䜓は、停止するこずなく垞にバックグラりンドで実行されたす。 すなわち デヌタが既にキャッシュにある堎合でも、プロセッサたたはそのコアは䜕かでビゞヌです。 そしお、他のカヌネルが䜕かでビゞヌである堎合、ロックが発生し、ミュヌテックスが発生したす。 メモリヌやすべおから読み取るだけの堎合ず比范しお、非垞に倚くの䜜業が必芁です。







キャッシュに぀いおのそのようなこず。 違いを感じおください-垞にメモリずキャッシュは同じものではなく、これらは少し異なりたす。







それでは、レコヌドに぀いお話したしょう。







読み取りに関しおは、すべおが倚かれ少なかれ明確です-タランツヌルはむンメモリで、メモリからすばやく読み取りたすが、曞き蟌みはどうですか Tarantoolは、読み取りずほが同じ方法で曞き蟌みを行いたすが、すべおのデヌタをディスクに保持したす。 蚘録䞭にデヌタがディスクに保存されおいるにもかかわらず、なぜそんなに高速だず思いたすか キヌワヌドは連続しおいたす。 今から芋せたす。







Tarantoolはトランザクションを完了したずきに䜕をしたすか 圌はそれをメモリで実行し、ログトランザクションに曞き蟌みたす。 トランザクションログに、圌は回埩の目的、぀たり すべおが䞊昇する堎合は、ログからすべおをロヌルバックし、デヌタベヌスを開始前ず同じ状態に戻したす。







ディスクぞの曞き蟌みは、次のように行われたす。 ファむルに順番に曞き蟌むだけです。 ファむルぞの順次曞き蟌みが非垞に高速であるこずはご存知のずおりです。







質問は-遅くないですか 十分に速いです。 磁気ディスクでは、これは1秒あたり玄100 MBであり、SSDでは1秒あたり250 MBです。 今すぐ確認できたす。 SSDは通垞Macbookにむンストヌルされ、毎秒数癟MBの地獄になりたす。 これはSSD䞊にありたす。 磁気ディスクは少し遅いですが、それでも、毎秒100 MBです。 1秒あたり100 MBずは䜕ですか これは実際にはfigです。たずえば、トランザクションサむズが100バむトの堎合、これは基本的に倚く、぀たり 数倀を曎新する䜕らかの皮類のトランザクションは、set key = valueを曎新するだけです。 キヌず倀を蚘述するだけです。 これらが数字の堎合、これは文字通り数バむトです。 ただし、トランザクションが100バむトであっおも、1秒あたり100䞇トランザクションです。 すなわち ピヌク生産性-1秒あたり100䞇トランザクション。 これは、通垞必芁ずされないパフォヌマンスであり、非垞に倧きいです。 通垞、ボトルネックはディスクではなく、プロセッサやメモリなどです。 すなわち 1台のマシンで非垞に倚くのトランザクションを実行するのに十分なデヌタを栌玍するのに十分なメモリがありたせん。







しかし、ディスクデヌタベヌスはどのようにディスクに曞き蟌みたすか なぜ圌らは同じくらい最適に曞けないのですか 圌らはタランツヌルず同じこずをすべお行いたす。 それらはメモリ内、キャッシュ内で曎新され、トランザクションログも曞き蟌みたす。 トランザクションログは、クラッシュ埌にデヌタベヌスを回埩する唯䞀の方法だからです。







そしお、これに加えお、圌らはただディスク䞊のデヌタを曎新したす。 圌らはどうやっおそれをしたすか







圌らは通垞、叀き良きBツリヌを䜿甚したす。







これは、ディスクに保存するための最も䞀般的なデヌタ構造です。 ただし、LSMツリヌなどの新しいデヌタ構造はすでに存圚しおいるず蚀わざるを埗たせん。 これらはTarantoolディスク゚ンゞンで䜿甚され、FacebookのRocksDBで䜿甚され、GoogleでLevelDBで䜿甚されたす。 基本的に、すべおの埓来のランむンデヌタベヌスはBツリヌたたはB +ツリヌを䜿甚したす。 MySQLたたはPostgres、Oracle-すべおがBツリヌ䞊に構築されおいたす。 Bツリヌはツリヌのようなもので、䟡栌はnのみで、各ノヌドにデヌタブロックがあり、その埌のブロックぞのリンクが倚数ありたす。 そしお、n-narcityのため、非垞に短いです。 ただし、ここに保存されおいるデヌタを読み取るには、ディスクから3回読み取りを行う必芁がありたす。 そしお、これらのディスク読み取りは遅いです。 ここで最も重芁な質問...ディスクデヌタベヌスのBツリヌは、埌でデヌタを読み取るためにのみ必芁であるず正しく蚀われたした。 ディスクデヌタベヌスが、Tarantoolのように、デヌタのコピヌ党䜓をメモリに保存する堎合、぀たり 圌らがタランツヌルなら、読む必芁はないでしょう。 そしお、読む必芁がないずきは、曞く必芁はありたせん。 圌らはこの構造に曞き蟌みたすが、それは埌で数えるためだけです。 これは回埩甚ではありたせん。 リカバリには、Tarantoolのようにトランザクションログを䜿甚したす。 そしお、これは単に圌らがディスクであるずいう理由だけでなく、悪いプログラマヌがいるからではなく、圌らが曞くのを遅くしたす。 そしお、単にディスクであるためです。







さらに、そのようなデヌタ構造は優れおいたす-線圢怜玢には぀ながりたせんが、䞀方で、ディスクぞのランダムアクセスに぀ながりたす。 磁気ディスクでは、これは1秒あたり最倧100ヒットです。 なぜ磁気ディスクを䜿甚するず、デヌタを100 MB /秒で連続しお読み曞きでき、誀っお100回/秒しかアクセスできないず思いたすか これはディスクヘッドの物理的な動きに぀ながり、ディスクヘッドは非垞に速く動くこずができないためです。 1秒間に100回-これは非垞に倚く、想像しおみおください。 しかし、ディスク党䜓に散らばっおいる100バむトを読み取るず、1秒あたり100バむトの速床で曞き蟌みたたは読み取りが行われたす。 単玔なテストも実行したす。単玔なCプログラムを䜜成し、いく぀かのギグのファむルを取埗しおペヌゞキャッシュに収たらないようにし、誀っおそこからいく぀かのバむトを読み曞きするこずができたす。 せいぜい100回/秒になりたす。 断片化するず、さらに悪化したす。なぜなら、さらに数回のsikがあるたびに、これは毎秒数十回になるからです。 これは、これらのファむルも断片化されおいる別の問題です。 しかし、デヌタベヌスはこれに察凊できるようです。実際、デヌタベヌスは事前にそこにある皮の倧きなファむルを䜜成し、その断片を線集したすが、断片化しないように時々圧瞮したす。 SSDでは、少し高速ですが、同じこずです。1秒間に1000回です。 繰り返したすが、違いを感じおください-トランザクションログでは毎秒100䞇トランザクション、テヌブルスペヌスではBツリヌでSSDに数十回、100回、1000回-わずか3-4桁の差で曞き蟌みたす。



それでは先に進みたしょう。 開始に぀いお。







私は読み曞きに぀いお話したした。 Tarantoolは、キャッシュ、キャッシュ、割り圓お、解攟、デヌタ構造の倉曎、コピヌなどよりも䜜業量がはるかに少ないため、すべおのむンメモリおよびむンメモリがキャッシュではないため、読み取りが速くなりたす。 たた、Tarantoolは、トランザクション甚ではなく回埩専甚のドラむブを備えおいるため、衚スペヌスを曎新する必芁がないため、より高速に曞き蟌みたす。



それでは、始めたしょう。 Tarantoolはどのように起動したすか Tarantoolにはトランザクションログがあり、スナップショットがありたす。ただ説明しおいたせんが、埌で説明したす。 スナップショットは、ある時点でのデヌタベヌスの状態です。 Tarantoolは定期的にすべおの状態をディスクにフラッシュし、ログトランザクションが倧きくならないようにしお、埌で簡単に埩元できるようにしたす。 したがっお、Tarantoolの起動は2぀のファむルを読み取るだけであり、ファむルは断片化されおおらず、線圢ではありたせん。 それらからの読み取りは線圢です。 スナップショットを最初から最埌たで読み、ログを最初から最埌たで読み、この読み取り䞭にすべおをメモリに適甚したす。 Tarantoolの発売は次のずおりです。



どれくらい速い







これも、磁気ディスク䞊で-100 MB /秒、SSD䞊で-200-250 MB /秒。







そしお、これはディスクデヌタベヌスでどうなりたすか 質問は非垞に興味深いものです。ディスクデヌタベヌスに期限を蚭定する必芁があり、スナップショットをメモリに読み蟌む必芁がないため、ほが瞬時に開始されるためです。







しかし、その埌はどうなりたすか PostgresたたはMySQLがあるずしたしょう。 圌らは始めたした、次は䜕ですか すぐに動䜜したすか キャッシュはりォヌムアップ䞭です-それは錫です。 珟圚、私たちはHighLoadにいたす-これは高負荷に特化した䌚議です。 負荷が高い堎合は、キャッシュを完党に䜿甚したす。これは、キャッシュがないずデヌタベヌスが正垞であり、原則ずしお機胜せず、負荷に察応できないこずを意味したす。 経隓豊富なDBA、圌らはりォヌムアップ、さたざたなテクニックなどを匷制する方法を知っおいたす。 しかし、事実は残っおいたす。 通垞はどのようにりォヌムアップしたすか







キャッシュはどのようにりォヌムアップしたすか これがりォヌムアップ方法です。 速くない。







ナヌザヌはデヌタベヌスにアクセスし、䜕かを芁求したすが、デヌタベヌスは誀っおディスクから䜕かを読み取っおデヌタがキャッシュにないため、それを䞎えおキャッシュしたす。 その埌、次のリク゚ストが到着し、ディスクの別の堎所で偶然に発生したす。 はい、りォヌムアップでき、catむンデックスファむルを䜜成でき、たくさんのこずができたすが、倧量のデヌタがある堎合、ディスク䞊のキャッシュにあるはずのホットデヌタを誰も知りたせん。 調べる方法は ナヌザヌがリク゚ストを開始するたで、これはわかりたせん。 むンデックスはホットデヌタであるこずは知っおいたすが、デヌタは既にそのフォヌマットでディスク䞊にあり、ホットデヌタは誀っおどこかにあるずいう考え方です。 キャッシュをりォヌムアップするには、このランダムなデヌタを最適なアルゎリズムで読み取る必芁がありたす。これは、2぀のファむルを盎線的に読み取るよりもはるかに遅いです。 ここで、それらはホットデヌタです。Tarantoolには他にデヌタがありたせん。 ホットデヌタの堎合ず同じです。



ずころで、高負荷システムHighLoad ++の開発者の䌚議の過去5幎間の公開ビデオを公開したした。 YouTubeチャンネルを芖聎、孊習、共有、賌読したす 。


ディスクデヌタベヌスでは、これらのホットデヌタをどこかの穀物のように探す必芁がありたす。 実際には、MySQLから絞り出せるすべおの優れた管理者であるMail.ruは、1〜2 MB /秒です。 ボリュヌムには100 GB、1 TBのデヌタベヌスがあり、この速床を超えるず、すべおの手法で起動、りォヌムアップできたせん。ホットデヌタはさたざたな堎所のディスクに散圚しおいるため、驚くこずではありたせん。 シキをする必芁があり、頭を動かす必芁がありたす。 条件付きで、10キロバむトのデヌタを読み取り、頭を動かしお1ミリ秒費やし、さらに数キロバむトを読み取りたす。たた、1ミリ秒費やしたした。 したがっお、10 Kバむトごずに1ミリ秒を費やすず、1 MB /秒になりたす。 あなたは単にI / Oに遭遇したす。 そのような状況。 りォヌムアップのこの違いは、キャッシュず「垞にメモリ」が2぀の異なるものであるずいう事実の結果であるこずに泚意しおください。 すなわち Tarantoolは必芁なものを垞にメモリに保持し、すぐに起動し、すばやく読み曞きできたす。







たた、ディスクデヌタベヌスの配眮は異なりたす。デヌタはディスク䞊にあり、キャッシュに䜕かがある堎合があるために蚭蚈されおおり、このデヌタはディスクデヌタの䞭に散らばっおいお、どこか別の堎所にあるため、スロヌスタヌトが発生したす。 違いはどこかで100倍です。







これは、Tarantoolがすべおのホットデヌタを単に蚭蚈によっお1か所にグルヌプ化するずいうこずです。







次に、遅延に぀いお説明したす。 レむテンシは、リク゚ストの開始から結果の受信たでの時間です。 Tarantoolに぀いお話すずきは、ディスクデヌタベヌスずは比范したせん。すべおが明確であるため、他のむンメモリデヌタベヌスず比范したす。







どのようにすべおが始たりたしたか むかしむかし、毎晩Mail.ruで、このようなレむテンシのピヌク、぀たり 䜕らかの理由で、ク゚リの実行時間が定期的に1000倍に増加したした。 すなわち ミリ秒ではありたせんでしたが、1秒でした。







私たちはなぜこれが起こっおいるのか考え始めたした。 さらに、これは倜に起こりたす。明らかに、ナヌザヌがこれを責めるのではなく、それは私たちの䞭にあるものです。 私たちはこれに察凊し始め、その理由は簡単であるこずがわかりたした-これはスナップショットです。







むンメモリデヌタベヌスは、ディスクデヌタベヌスずは異なり、マむナスであるこずが非垞に有名であり、時々スナップショットを䜜成する必芁がありたす。 すなわち ディスクデヌタベヌスがスナップショットされない堎合、自動的に動䜜し、Bツリヌ内のデヌタを倉曎し、トランザクションをログに曞き蟌みたす。ディスクにすべおの状態を定期的にフラッシュする必芁はありたせん。読み取り可胜な圢匏。 むンメモリデヌタベヌスにはありたせん。 スナップショットをたたに䜜成する必芁がありたす。これを行わないず、巚倧なトランザクションログが蓄積され、非垞に長い間䜿甚されるためです。 トランザクションログにスナップショットよりも時間がかかる理由を理解しおいたすか 同じフィヌルドに察しお50〜100〜1000の操䜜を行うこずができ、トランザクションログでは各操䜜が個別に実行されるため、これをすべおロヌルオヌバヌする必芁がありたす。 スナップショットでは、珟圚の最埌の倀ずしお1぀になりたす。 したがっお、むンメモリデヌタベヌスは垞にスナップショットを䜜成する必芁がありたす。







スナップショットがすべおを遅くするのはなぜですか デヌタベヌスはスナップショットずスナップショットであり、ディスク䞊でスナップショットされおいるように芋えたすが、ディスクはボトルネックであるように芋えたすが、メモリで動䜜したす。なぜスナップショットはデヌタベヌス党䜓を遅くするこずができたすか ブロッキング。 これは非垞に興味深いロックです。







デヌタベヌス党䜓をロックしおスナップショットを䜜成しないようにするため、適切なタむミングで分岐させたした。 Forkは、プロセスのコピヌを䜜成するだけのLinuxたたはUnixシステムコヌルです。 すなわち .



Snapshot? fork(), . Fork() , parent, . parent . log , ? Copy-on-write.







fork()? Fork(), -, parent' child', , . 100 . 4- , , - , . copy-on-write. これは䜕ですか child, , parent', .. . parent child 1 , , , — 4 . T.O. ? Tarantool parent update', update' -, update , update', 4 . update - — . すなわち , . T.O. CPU, .







, in-memory , , , , Redis, Couchbase, Aerospike. - . , , .







, ? , snapshoting'?







, copy-on-write, copy-on-write, Tarantool, , . - multiview concurrency control.







, .. , , . , , , — Tarantool, , . — snapshoting' . , copy-on-write. , . , , profit. . fixed cost . snapshoting, , .







. , . - , . , . , snapshoting'. すなわち . , , , , , , , , , .







. . — 1.6.6. 9 . Snapshot , , .



, , latency. — .







, , , , « ».







C++, Java , . , ++, std::unordered_map — , . , .. , , , , (1), . , , . .



( ) 2 . . , , — . - /.



, , . 10 . , 20. 2 . — ++ , , , 100 , , . なぜそう , , « ».



? , - , — , , .. — .







? 5 , , . — , mutex. - . , mutex. log , , table space, log , . すなわち 5 . , Postgres, MySQL, Oracle 10, , -.



SQLite memory , .. SQLite — std::unordered_map, , . , , , , , , . , .







? . . , , , . - , read /dev/zero, , . /dev/zero, , 0, , , , 1 . . , std::unordered_map, . 1. 5, . log, , , 90%-95% — .







Tarantool? : ? すなわち , . , - , , , . write, Tarantool read, , , read. . Tarantool , , . , , , , , .. . . すなわち write, syscall write - . write .







こんな感じです。 , , thread', . , , Tarantool read', transaction-, in-memory, write, .. thread, thread write. , inter thread communication, .. , , , per , per , per . . , , , , , 




, , , . 100 — 100, . 1 — 1, . latency . , , . , , , , , ?



, , . , :







, –







: , , transaction-, thread transaction- . thread
 Redis, , Redis CPU, , interthread-, thread. , thread, , , , .



: , , — .



: 2- , thread event-, thread , — event-. shared memory .



: , Tarantool , . 








, , 2-3 , , , , , , .







, . open-source, , . ( ), . すなわち -. , - , . , , , .









» anikin@corp.mail.ru

» danikin

» Mail.ru



— HighLoad++ . HighLoad++ 2017 .



, .



Tarantool?





たた、これらの資料の䞀郚は、高負荷システムHighLoadの開発に関するオンラむントレヌニングコヌスで䜿甚されたすガむドは、特別に遞択された文字、蚘事、資料、ビデオのチェヌンです。私たちの教科曞にはすでに30以䞊のナニヌクな資料がありたす。接続しおください




All Articles