メむンコンテンツぞスキップ
芋出し画像

劔"Tsurugi"ずは䜕か

    劔"Tsurugi"ずは

    劔"Tsurugi"は、囜産の OSS-次䞖代 RDB です。5 幎間の囜NEDOの支揎を経お、出来䞊がった RDB になりたす。

    もずもず有志の勉匷䌚から始たったコミュニティ掻動がベヌスで、囜の予算を受けお、
    ・各民間䌁業ノヌチラス・テクノロゞヌズNEC
    ・倧孊東京工業倧孊・慶応倧孊・名叀屋倧孊・倧阪倧孊
    ・研究機関囜立倩文台
    等々が䞻䜓ずなっお、さたざたな䌁業・関係者の協力のもずに開発されたした。

    OSS なので、だれでも自由に利甚するこずができたす。
    ラむセンスは Apache2.0 になりたす。商甚サポヌトも提䟛されおいたす。

    背景ず基瀎性胜

    なにをむマサラ RDB なのかすでに枯れおいる技術ではないのかずいうのが、普通のナヌザ゚ンゞニアの印象だず思いたす。

    実際は、RDB の技術は幎々進歩しおいたす。

    にもかかわらず既存の RDB では、このような新しい技術はなかなか取り入れられないのが実態です。これは䞻に、むノベヌションのゞレンマず、寡占化による競争緩和、そしお各 RDB の機胜拡匵によるコヌドベヌスの肥倧化によるものでしょう。

    その結果、既存の RDB が、旧来の環境である「メモリヌは貎重・コアは少なめ・基本は Disk」を前提ずしたアヌキテクチャを刷新し、珟圚の環境である「倧容量メモリヌ・メニヌコア・分散環境」ぞ党面的に適応を行うこずは困難になっおしたっおいたす。

    劔"Tsurugi"はこの 20 幎来の RDB での䞖界的な、技術的成果を取り入れ、倧容量メモリヌ・メニヌコア環境を掻かすこずができるアヌキテクチャを、䞀から構築しおできあがった RDB です。

    ベヌスパフォヌマンス

    劔"Tsurugi"のベヌスパフォヌマンスは以䞋になりたす。

    画像
    [図1]劔"Tsurugi"のパフォヌマンス

    特に30コア以䞊で䌞びは顕著です。
    これは業界暙準のYCSB-Aread 50% / write 50%によるものです。
    100コア近蟺ではスルヌプットで400侇TPS/遅延で200ナノ秒になっおいたす。

    これは"Shirakami"ずいう、劔"Tsurugi"の゚ンゞン郚分の基瀎性胜です。
    倖偎にSQL通信凊理等々の局を぀けおいくず、このほどのパフォヌマンスはでたせん。
    ずはいえ、ベヌスの基瀎性胜は出おいるので、珟状の特に最適化を入れおいない玠の状態で、30コア近蟺で、すでに既存のRDBの性胜を凌駕しおいきたす。より倚くのコア数では差は䞀方的になりたす。

    画像
    [図2]劔"Tsurugi"の基本性胜

    アヌリヌアクセス版に぀いお

    この劔"Tsurugi"は7/10珟圚、ただα版での提䟛のみです。

    基瀎性胜ず通垞のRDBずしおの最䜎限の機胜は満たしおいたすが、ただただ機胜が足りたせん。9月のGAを目指しお機胜拡匵・性胜向䞊を行っおいたす。

    ただし、倧きな特長の䞀぀である、「バッチ凊理/write-heavy-transaction」に秀でおいる機胜はすでに、十分利甚でき氎準か぀、極めお高い性胜がでるようになっおいたす。

    ずりあえず、詊しおみたい、ずいうようなお客様には、αずしおの提䟛を開始し、商甚サポヌトを始めおいたす。

    劔"Tsurugi"の難しさ

    劔"Tsurugi"は、この20幎間の倧きくパラダむムシフトした、新しいRDBのアヌキテクチャを党面的に採甚しおいたす。
    基本的な挙動は今たでのRDBず倉わりたせんが、いろいろず知っおおいた方がよい事項が、それこそ山のようにありたす。

    䞻なものを以䞋に順に挙げたす。

    ・MVCC/TimeStampベヌス

    埓来のRDBは、基本はsingle version(mono version)lockベヌスでのアルゎリズム・アヌキテクチャで動いおいたす。
    劔"Tsurugi"は、multi version + timestampベヌスのアルゎリズム・アヌキテクチャで動䜜しおいたす。

    䞡者ずもに䞀貫性serializableを担保しおいたすが、前者が「貎重なリ゜ヌスを䜿い回す」ポリシヌなのに察しお、埌者は「豊富なリ゜ヌスを䜿い倒す」ずいうポリシヌです。

    論理的には等䟡ですが、考え方ずしおたったくの別物です。

    もちろん、以前にもmulti versionMVCCの実装はありたした。しかし、これらはあくたで、single versionの延長線䞊のもので、MVCCの本来のポテンシャルを掻かすにはほど遠いものです。

    劔"Tsurugi"では、MVCC/TimeStampベヌスをその基瀎に据えお䜜り䞊げられおいる仕組みです。

    ・HybridCC

    劔"Tsurugi"の基本はOCCです。
    これは非垞に軜量か぀高速なアルゎリズムですが、バッチ凊理は勿論、通垞のフルキャンですら䞊列凊理ができない、ずいう臎呜的な欠陥がありたす。

    劔"Tsurugi"は、OCCずは別にバッチ凊理に特化した、MVCCのアルゎリズムLTXを開発しお実装しおいたす。さらに、このLTXずOCCが混圚できるようにしおいたす。

    バッチ凊理のような重たい凊理がないずきはOCCで、逆にある皋床倧きな凊理を行うずきはLTXで、ずいう颚に耇数のプロトコルを“同時”に利甚しお最適なリ゜ヌスマネヌゞメントができるようにしおいたす。

    ・倚様なむンタヌフェヌス

    埓来のモノリシックなRDBず異なり、劔"Tsurugi"はコンポヌネントベヌスのアヌキテクチャで䜜られたRDBです。

    このアヌキテクチャにより、コヌドベヌスを肥倧化させずに様々なむンタヌフェヌスを提䟛しおいたす。JDBCラむクな同期JavaAPI、非同期ベヌスのJavaAPI、WebAPI、Dump/Loadむンタヌフェむス、Postgres接続、等々です。

    たた、ベヌスのトランザクション゚ンゞンの䞀貫性担保により、耇数のむンタヌフェむスを同時に利甚するこずができたす。JavaのAPIでバッチ凊理を実行䞭に、WebAPI経由で、そのバッチ凊理䞭のテヌブルに普通にアクセスするこずも、普通に実行するこずができたす。

    次回以降は、より詳现に劔"Tsurugi"のパフォヌマンス・内郚を玹介しおいきたす。

    神林飛志

    関連リンク

    ▜導入事䟋などの詳现、詊甚のお申蟌みはコチラ
    劔"Tsurugi"コミュニティサむトhttps://www.tsurugidb.com/

    â–œTsurugiに関するプレスリリヌスはコチラ
    https://prtimes.jp/main/html/rd/p/000000001.000124881.html

    あなたぞのおすすめ