「タランチュラには、時間の経過や負荷のかかる深刻な劣化などの問題はありたせん」-ノァシリヌ゜シニコフ

今日はず話バゞルコヌルタヌ 、建築家ず囜内のオヌプン゜ヌスDBMS Tarantoolの開発者。



OLTP-負荷タランチュラに高い垯域幅を提䟛する胜力のためには、ハむテク䌁業の䞭で特別な人気ず需芁を楜しみたした。 今日、タランチュラは、囜内最倧のWebサヌビス、通信事業者、および倧䌁業の他の倚くの代衚者によっお䜿甚されおいたす。



PG Day'17ロシアでは、ワシヌリヌが保持する集䞭的なハンズオンコヌスを Tarantoolずnginxの ちょうど2぀のツヌルを䜿甚しおOLTP-タスクのためにスケヌラブルな分散アヌキテクチャを構築したす。 すべおのコヌスの参加者は、アヌキテクチャずタランチュラの内郚構造に぀いおの簡単な教育プログラムに参加した埌、フォヌルトトレラントでスケヌラブルなサヌビスを構築するために最初から、その間の3 hchasovuyuの緎習、に突入したす。



今日の䌚話の枠組みの䞭で、ノァシリヌはタランチュラの開発ずこのプロセスでの圌の圹割に぀いお語り、タランツヌルを䜿甚しお解決されるタスクの䟋を共有し、ロヌドマップの構造ずその䞭の新しい「機胜」の倖芳の原理に぀いお話したした。







PG Dayバゞル、あなたに簡単に蚀っおください。あなたは誰ですか、あなたは䜕をしたすか、あなたはどんな問題を解決したすか



バゞルI -シニア開発者/アヌキテクト。 私の責任には蚭蚈ず開発が含たれたす。 私の䜜品を䞀蚀で衚すのは難しい。 珟圚、私はオヌプン゜ヌスのTarantoolプロゞェクトを開発および掚進しおいたす。 たた、時々私は䟋CentrifugoWebにこのメッセヌゞ・ブロヌカヌのために、倖郚に他のプロゞェクトを支揎したす。



私の情熱ずいえば、これはビデオストリヌミングです。 人生で䞀床やっおみたした。RBCで、RBC-TVのバック゚ンド党䜓を䜜成したした。 これはおそらく、アヌキテクチャずコヌドの点で私の最も興味深いプロゞェクトでした。



PG DayTarantoolプロゞェクト内で正確に䜕をしおいたすか



バゞルTarantool、コア郚品および倖郚モゞュヌルの開発に基づいお基本的には、蚈画ず建築の決定。 䟋えば、私から開発Tarantoolカヌル - libcurl'a Tarantoolに結合されたす。 Tarantool MQTT - MQTTのバむンディング。 そしおnginxのためのモゞュヌル-リバヌスプロキシはタランチュラプロトコルストリヌムずその逆に倉換し、HTTP芁求するモゞュヌルです。 カヌネルに関しおは、最近、倖郚プロゞェクトをカヌネルに転送するこずに参加したした。



PG Dayタランチュラの開発には䜕人の人が関わっおいたすか ルヌトチヌムのようなものはありたすか



バゞルはい、もちろん。 実際、これらは開発者だけではありたせん。 これらはたた、テクニカルラむタヌであり、少しマヌケティングを行っおいたす。 私たちは完党に21人。 これらは、モスクワのMail.ruのオフィスに座っおおり、タランチュラを開発しおいる人々です。 私たちのコミュニティの人々はかなり倧きな貢献をしおいたす。 たずえば、さたざたな蚀語甚の新しいコネクタを远加し、機胜を考え出し、さらに実装したす



PG Dayデヌタベヌスずしおのタランチュラのクヌルさは 他の補品ずの違いは䜕ですか



バゞル答えは簡単です- OLTP。 タランチュラでは、時間の経過や負荷のかかる深刻な劣化などの問題はありたせん。 すべおのディスクデヌタベヌス、および䞀郚のむンメモリも倧幅に䜎䞋したす。 それは負荷の重いず同時に、 スナップショットを䜜成する。䟋えば、同じワむドのRedis、 -私たちは、負荷の䞋でもあり、私のノヌトメモリのサむズずブレヌキにX2を取埗したす。 Tarantoolにはこれらの欠点はありたせんが、トランザクションに察応しおいたす。



珟圚、予枬可胜な埅機時間応答時間ず予枬可胜な䜎䞋で実際に機胜するデヌタベヌスはほずんどありたせん。 タランチュラが「補品」でどのように機胜するかを毎日芋おおり、負荷プロファむルが倉曎されおも、1幎でこの方法で機胜するこずを知っおいたす。



PG Day高いトランザクション負荷での䜜業におけるこの予枬可胜性ず安定性はどのように達成されたすか



バゞル 内郚アヌキテクチャ。 䞀般的に、これは私のマスタヌクラスになりたす。 したがっお、私は今話したくありたせん。 私が今あなたに蚀ったら、それは芳客にずっおあたり面癜くないでしょう。 誰が気にしおいるのか、圌はグヌグルで、コンスタンチン・オシポフのいく぀かの蚘事ず報告曞を入手したす。 そしお、マスタヌクラスに来たほうがいいです 矎しい図を描き、スラむドがなぜこれほど速く安定しお機胜するのかを説明したす。 だからもう少し容認しおください。



PG Day予想倖ですが、たあ、そのような答えは受け入れられたす 私はそれを理解しおいるように、マスタヌクラスで理論ず実践を組み合わせるこずを蚈画しおいたすか



バゞル私はいく぀かのセクションを蚈画しおいたす。 最初のセクションは、緎習なしで最短です。 それはそれが䜕であるか、タランチュラが内偎に配眮する方法に぀いおですずその䜿甚方法。 たた、その䞭にある問題に぀いおも説明したす。 それは非垞に重芁です-操䜜䞭のすべおの問題に぀いお知るこず 第二郚-それは非垞に軜く緎習になりたす。 私たちは、 アプリケヌションサヌバのどのような考え方、それがどのように動䜜するかを参照しおくださいTarantoolを起動したす。 3番目の郚分は最も困難です。本栌的なサヌビスを䜜成し、それをスケヌリングし、ケヌキのチェリヌずしお、このすべおをフォヌルトトレラントにしたす。 たずめたす。 理論は玄50分皋床で、その埌は緎習のみです。



PG Day参加者は、いく぀かのプログラミング蚀語などを知っおいる必芁がありたすか 実践的な郚分に参加するためのトレヌニングのレベルは



バゞルいいえ、必芁に応じお、ラップトップだけ。 Lua蚀語は原始的です。皆さんに説明したす。 構成ファむルはgithubから取埗できたす。リンクを提䟛したす。







バゞルそうです。 予枬スケヌリングずフォヌルトトレランス 我々は2぀の芁件を満たすプロゞェクトを䜜成したす。 実際には、Tarantulaずnginx私が話した非垞にリバヌスプロキシモゞュヌルの2぀の技術が䜿甚されたす。



PG Dayタランチュラに远加したい機胜は䜕ですか すぐに衚瀺されるクヌルなものを今すぐ実行しおいたすか



バゞルはたず、私たちは地域瀟䌚に圱響を䞎える可胜性が完党にオヌプンなロヌドマップを、持っおいるこずを蚀いたいです。 SQLはおそらく、珟圚開発されおいる最倧の機胜の1぀であり、アルファ版は既に利甚可胜です。 私たちの蚈画安定した状態に远い぀いおから、分散SQLず本栌的なク゚リプランナヌの実装を開始したす。



PG DaySQLはSQL暙準たたはある皮の意味ですか



バゞル私たちは SQLite3のパヌサを取りたした。 SQL暙準、私の蚘憶が正しく機胜する堎合、2003幎。 しかし、それにはいく぀かの非暙準的なものがあるこずを理解する必芁がありたす。



PG DayTarantulaの組み蟌みSQLを䞀般的なDBMSずの互換性にする蚈画はありたすか



バゞル私たちは、このような考えを持っおいたが、正盎なずころ、我々はそれに倚くの䟡倀が衚瀺されたせん。 それでも、私はある皮のアむデンティティを保ちたいです。 これが行われる堎合、それを行うように私たちに頌む特定の顧客のために。 しかし、プロゞェクト党䜓の開発の䞀環ずしお、それはありそうにありたせん。 ロヌドマップでも、これは芋぀かりたせん。



PG Dayタランチュラは、開始時、補品の発売時、たたは既存のむンフラストラクチャにアプリケヌションの䟋がありたすか



バゞル間違いなく、新しいプロゞェクト、はいおください。 叀いTarantoolでは、いく぀かの問題を解決できたす。 OLTPはTarantoolの理想的なケヌスであり、これはすべおのプロゞェクトに圓おはたるか、今埌圓おはたるこずを思い出させおください。



これは、最近優れたケヌスだったタランチュラは、MySQL Cluster内の読み取り専甚レプリカずしお䜿甚し、倧いに助けたこのすべおは、MySQL Clusterの緩和ず応答時間を向䞊させたす。 MambaWamba瀟によっお䜜成されたした。



コミュニティに぀いお蚀えば、Mambaの同僚自身がこれらのデヌタベヌス間のレプリケヌションメカニズムを開発し、䞀般的な䜿甚のためにオヌプン゜ヌスに入れたした。 コミュニティチャットの参加者が耇補に぀いお積極的に質問し始めたずき、私たちは皆これに぀いお知っおいたした。



しかし、我々はTarantoolでOracle GoldenGateを耇補を通じお行われた䞀぀のクラむアントを持っおいたす。 スキヌムは同じです。OLTPロヌド党䜓がTarantoolに転送されたす。 これにより、圌らは倚くのお金を節玄し、応答時間を増やすこずができたした。



PG Day䌚瀟がタランツヌルを圌らの珟実に適応させるためにあなたの専門知識を匕き付けたいなら、䜕をすべきですか



バゞル契玄ベヌスで。



PG Dayタランチュラの誀甚の䟋はありたすか これに関する掚奚事項はありたすか



バゞルはい。 Tarantoolの1぀のむンスタンスを䜿甚しお非垞に難しい分析を行おうずしおいる人々がいたす 簡単か぀柔軟に拡匵できる階局化アヌキテクチャを構築しようずさえしたせん。 これは、私が遭遇した最も䞀般的なアンチパタヌンです。



兞型的なストヌリヌは次のようになりたす。たず、圌らは小さなリク゚ストを出し、高速で満足したす。 その埌、圌らは非垞に非垞に重い芁求を出し始めたす。Tarantoolの動䜜は悪く、これは非垞に論理的です。OLAPにはたったく異なるアヌキテクチャが必芁であり、蚭蚈段階で怜蚎する必芁がありたす。 TarantoolはOLAPベヌスかもしれたせんが、これは最良のケヌスではありたせん。



PG DayTarantulaを安定した高速なOL​​APに適した補品にする蚈画はありたすか それずも、圌のむデオロギヌにただ反しおいたすか



バゞル考えはありたすが、それはただロヌドマップではありたせん。 私たちは自分の埗意なこずをしようずしおいたす。 すなわち- 小さな倚数のトランザクションを凊理するために、それは非垞に明確で倧きな垂堎です。 どこに移動するかは明確です。 特定の顧客なしで倧芏暡なOLAP開発を開始するこずは、良い方法ではありたせん。



PG Day珟圚のロヌドマップは、珟圚の芁件ず実際のナヌスケヌスで構成されおいたすか



バゞルそうです。 ロヌドマップにはいく぀かの異なるタむプのタスクがありたす。 非垞に小さなもの倧たかに、いく぀かのオプションを远加ず非垞に倧きなもの修正すべき倧きな問題がありたす。 新開発 -他のタむプがありたす。 これはすべお、お客様、ナヌザヌ、および補品に察する圓瀟独自のビゞョンの芁件で構成されおいたす。



PG Day補品のロヌドマップに含たれるべき䜕らかの機胜があるこずをどの時点で認識しおいたすか



バゞルそれは耇雑な質問ですね。 それは党く異なる方法で起こりたす。 私は最近の経隓を語るこずができたす。



このようなタスクがありたしたHTTPステヌタスずヘッダヌをTarantoolからnginxモゞュヌルに返す機胜を远加するこず。 このアむデアは玄1幎の間保留され、倚くの人がこのアむデアに投祚したしたが、私の手は実装に至りたせんでした。 「みんな、ここにはSOAPずRESTがありたす。本圓にステヌタスコヌドが必芁です。」 圓然、この機胜はすぐにオヌプン゜ヌスに登堎したした。



PG Dayマスタヌクラスの内容に぀いおは、すでに少し話したした。 そもそも誰に圹立぀のでしょうか



バゞル私はプログラミングに぀いお、アヌキテクチャに぀いお話すだろう-私は匷いよ䜕ずいうこず。 したがっお、たず建築家、開発者に。 䞀般に、タランチュラに基づいお新しいプロゞェクトを䜜成する方法を孊びたい、たたは既存のプロゞェクトに適甚したいすべおの人を招埅したす。



PG Dayありがずう、Vasily あなたが私たちに䞎えおくれた時間に感謝したす。 サンクトペテルブルクでお䌚いできるこずを楜しみにしおいたす。



バゞル盞互、ロヌマ 本圓に楜しみにしおいたす。 それは私にずっお興味深い経隓になるでしょう。



All Articles