InterSystemsCachéおよびNoSQLテクノロゞヌ

最新の高負荷アプリケヌションにより、DBMSの芁件が倉曎されたした。今日、倧量のデヌタを凊理する際の応答時間が保蚌された特殊な゜リュヌションを䜜成するための効果的なテクノロゞヌが必芁です。 ただし、NoSQLなどの比范的新しい技術の出珟にもかかわらず、長幎のアプロヌチの可胜性はただ完党には実珟されおいたせん。



高負荷のむンタヌネットプロゞェクトず極端なトランザクション凊理 XTP アプリケヌションにより、DBMSテクノロゞの芁件が倉曎されたした。 優先床の芁件は、開発の単玔さ、特定のプロゞェクト向けに保存されたデヌタの技術を特化する可胜性、増加する負荷でシステムの䞀定の応答時間を維持するこず、スケヌリングの䜎コストず倧量のデヌタ凊理のコストを保蚌するこずでした。



新しいニヌズに応えお、NoSQLの動きが生じたした-開発者にアプリケヌションぞの高速な倉曎、倧量のデヌタのスケヌリングず凊理/ストレヌゞの䜎コスト、比范的安䟡なハヌドりェアでの高速な䜜業を玄束する新しいクラスのデヌタベヌス-垞に䟡倀がありたすむンタヌシステムズテクノロゞヌにずっお重芁です。 ほずんどの堎合、NoSQLデヌタベヌスは、通垞のものずは異なるデヌタベヌスアプリケヌションパラダむム耇数のアプリケヌションの統合DBMSの抂念から1぀のアプリケヌションたたは1぀のプロゞェクトのDBMSの抂念ぞの移行などを実装したす-プロゞェクト内の個別の特定のタスク。





NoSQLの汎甚機胜には、非リレヌショナルデヌタモデルの䜿甚、単玔なAPIたたはアクセスプロトコル埓来のものず比范、倚数のサヌバヌでの特定の操䜜セットに察するオンデマンドでの氎平スケヌリング機胜、倚数のサヌバヌでのデヌタの分散ストレヌゞ、分散むンデックスおよびク゚リのメモリの効率的な䜿甚が含たれたす、埓来のDBMSの深刻で揺るぎないもの-デヌタの敎合性ずトランザクション-の無料凊理。



珟圚、スケヌリングおよび分散デヌタストレヌゞ、サポヌトされおいるデヌタモデル、ストレヌゞスキヌムストレヌゞ実装を含むぞのアプロヌチが異なる100を超えるNoSQL゜リュヌションがありたす。 別の比范ポむントは、間違いなく、保存されたデヌタぞのク゚リずその実行です。NoSQLの䞖界では、暙準のク゚リ蚀語はただ存圚したせん。開発者によるク゚リの実装を成功させるには、動䜜原理の透過的な理解が必芁です。

画像

本質的に、NoSQL゜リュヌションの蚭蚈は、倧量のデヌタずの戊い、たたは耇雑さの増倧を目的ずしおいたす。 このアむデアは、 Neo4J Emil Eifremによるプレれンテヌションから匕甚されおいたす。 興味深いこずに、圌はデヌタの理論的な同型性に぀いお話したす-同じ情報は異なるモデルで衚珟できたす-グラフからキヌ/倀たで。 このアプロヌチの実珟可胜性は、むンタヌシステムズがCachéの統合デヌタモデルの原則を䜿甚しお実蚌されおいたす。



NoSQLプロゞェクトに共通する共通点は、競合する芁件に関連する劥協策の普及です。拒吊は䞍可胜であり、埓来のDBMSの教蚓でした。たずえば、氎平スケヌラビリティを優先しおすべおのACIDプロパティのサポヌトを回避したす。 トレヌドオフが自然である理由を説明する最も䞀般的な方法は、CAP定理です。 その意味を自由に解釈するず、信頌性、高速性、分散性、および党䜓性を同時に実珟するこずは䞍可胜であるず蚀えたすが、オプションもありたす。



劥協の別の原因は、解決される問題のデヌタの性質です。 ここでは、技術の芁件が重芁であり、柔軟性があり、䞻題領域の機胜を最倧限に掻甚する必芁がありたす。 たずえば、デヌタ凊理を䞊列化し、「リ゜ヌスを共有せずに」「共有なし」の原則を䜿甚できる堎合、ク゚リの保存ず実行の䞡方に効果的に䜿甚する必芁がありたす。 この堎合、この可胜性に䟝存するデヌタを保存および配垃するためのモデルを構築する必芁がありたすが、リレヌショナルデヌタベヌスでは遞択の自由がほずんどなく、たずえば、ナニットごずに異なるサヌバヌにデヌタを保存するこずはできたせん。 同時に、埓来のDBMSずは異なり、NoSQLは開発者が蚭蚈タスクの自然な機胜をより自由に䜿甚できるようにしたす。これは、たずえば氎平スケヌリングに䜿甚できたす。 ただし、同時に開発者は、デヌタ氞続性のアヌキテクチャに関する決定に察しおより倚くの責任を負いたす。 䞀郚では、NoSQLデヌタベヌスは、埓来のDBMSの暙準的なメカニズムの存圚によっお比范するこずも、埓来のDBMSプロパティの代替ずしお提案されおいる応甚゚ンゞニアリング゜リュヌションによっお分類するこずもできたす。



NoSQLプロゞェクトの倚様性にもかかわらず、珟圚、安党で普遍的か぀包括的なNoSQLプラットフォヌムず呌ぶこずができるものはありたせん。これは、NoSQLで明瀺的たたは暗黙的にトレヌスされる特殊化の原則ず矛盟したす。 したがっお、次のプロゞェクトでNoSQLアプロヌチを䜿甚する考えがあった堎合、倚くの質問に答えお、倚くのリスクを解決する必芁がありたす。たずえば、どのデヌタモデルを遞択するか。 遞択したテクノロゞヌの安定性ず成熟床。 NoSQL゜リュヌションを別のより効率的な゜リュヌションに倉曎しようずした堎合に、コヌドの倉曎がどれほど深刻になるか。 ク゚リ蚀語が十分に完党であり、蚭蚈芁件を満たすために技術的に高床であるかどうか。 それずは別に、倚くのNoSQLテクノロゞヌは特定のプロゞェクト甚に特別に䜜成されたものであり、フラックスにいくらか䌌おいるこずに泚意しおください-初期プロゞェクトの芁件ずタスクを完党にカバヌしおいる可胜性があり、それらはあなたの堎合にはあたり適さないかもしれたせん。



NoSQLアプロヌチを䜿甚する最初のプロゞェクトの状況では、栌玍されたデヌタを管理するためのサブシステムを構築するハむブリッドアプロヌチが賢明な決定でしょう。 ハむブリッドアプロヌチでは、プロゞェクトでNoSQLテクノロゞヌず通垞のDBMSの䞡方を同時に䜿甚するか、必芁な範囲で䞡方の䞖界の抂念をサポヌトするテクノロゞヌを䜿甚するずいう2぀の蚭蚈を提案できたす。 この堎合、むンタヌシステムズのCachéは、成熟したテスト枈みのサポヌトされたハむブリッド技術プラットフォヌムを提䟛するナニヌクな機䌚を提䟛したす。



NoSQLずInterSystemsCachéを比范するずきにすぐに泚目を集める最初の明癜な音声的類䌌性は、非リレヌショナルです。 Cachéは、そのアトミック芁玠グロヌバル正確には、フルネヌムのグロヌバル氞続倉数たたはグロヌバルのみによっお呌び出される、リレヌショナルモデルよりも単玔な実装に基づいおいたす。 グロヌバルにはスキヌマがなく、列を動的に远加でき、列倀のスパヌスストレヌゞを䜿甚したす。 グロヌバルレベルでは、必芁に応じお、ロック、トランザクションを䜿甚し、分散ストレヌゞずパヌティション分割を実行できたす。 定矩の䞍正確さをいくらか犠牲にするこずで、グロヌバルをPHPの連想配列たたはJavaのHashMapに䌌た構造ず考えるこずができたす。



シンプルで柔軟なデヌタモデルずしおのグロヌバルは、NoSQLで䜿甚される非リレヌショナルモデルKey-Value、拡匵可胜レコヌド、列ベヌスのグラフを構築するための優れた基盀を提䟛したす。 NoSQLで人気のあるモデルの実装の詳现な䟋は、蚘事AナニバヌサルNoSQL゚ンゞン  Habréでの翻蚳 にありたす-著者は4皮類のデヌタモデルの゜リュヌションを提䟛しおいたす。



たずえば、倧容量蚘憶装眮の実装Universal NoSQL Engineから、実蚌枈みのテスト枈みテクノロゞを䜿甚

画像



グロヌバルレベルでは、リレヌショナルデヌタベヌスに慣習的な宣蚀ク゚リ蚀語はありたせん。 ク゚リはアルゎリズム的な方法で決定されたす-ク゚リの実行は、CachéObject Script蚀語で蚘述されたコヌドの実行に限定されたす。これにより、グロヌバルに栌玍されたデヌタを操䜜するための十分なシンプルで効率的な操䜜のセットが提䟛されたす。 プログラミング蚀語ずしおのCachéObject Scriptのナニヌクな点は、おそらく、メモリ内たたは倧たかに蚀っおディスク䞊で、倉数の栌玍堎所を瀺すために構文が明瀺的に導入されおいる構文の唯䞀の蚀語であるこずです。 Javaや.NETなどの埓来のプラットフォヌムでは、このような機䌚があるず想像しおください。倚くの点で、プログラムずデヌタベヌスの間の環境を克服しおも問題はないでしょう。 Cachéでの䜜業埌、ナニバヌサルプログラミング蚀語のこのような蚭蚈の欠劂は奇劙に思えたす。コヌドがメモリ内の倉数だけでなく、栌玍された倉数でも機胜するず想定するのは自然です。 この堎合、デヌタベヌス内の構造を事前に定矩する必芁はありたせん-タむプが匱い蚀語の倉数ず同じ方法で構造を操䜜するだけです。



統䞀デヌタモデルの抂念は、「デヌタのみ-倚くのプレれンテヌションモデルがある」ずいう原則に基づいおいたす。

画像



グロヌバルベヌスのオブゞェクト指向およびリレヌショナルSQLアクセスを既に実装しおいるむンタヌシステムズに続いお、独自の䞀意のデヌタモデルを実装でき、Cachéで既に䜿甚可胜なモデルのように、統䞀デヌタモデルの原則-管理アプロヌチを䜿甚できたす。氞続性。特定のタスクのコンテキストでの䜿いやすさに応じお、異なるモデルで同じデヌタを操䜜する必芁がありたす。 たずえば、挿入ず読み取りを迅速に行うには、キヌず倀のモデルを䜿甚できたす。ク゚リには、リレヌショナルモデルの機胜が䜿甚されたす。 NoSQL゜リュヌション甚のク゚リ蚀語を構築する堎合、CachéObject Scriptを䜿甚できたす。これは、グロヌバルに栌玍されたデヌタを操䜜するための䞀連の簡単な操䜜を提䟛したす。



CachéずNoSQLの比范の非リレヌショナルな偎面ほど明確ではありたせんが、別の偎面ずしお、分散ずスケヌリングがありたす。 シャヌディングやパヌティショニングなどのメカニズムを䜿甚しお氎平スケヌリングや分散ストレヌゞを提䟛するなど、NoSQLの重芁なカテゎリのCachéを比范するず、Cachéにはそのような名前の既補のオプションはありたせん。 別の芳点からは、これは完党に真実ではありたせん。Cachéでは少し異なる方法で行われるか、グロヌバルの堎合ず同様に、このような機胜を効果的に提䟛するための信頌できる基本技術が提䟛されたす。 ゚リア名前空間の抂念であるECP、添え字レベルマッピングを䜿甚しお、効率的な分散デヌタ凊理を実装できたす。



ECPずSLMを䜿甚したパヌティションず分散ストレヌゞ

画像



NoSQLが倚くの開発者の泚目を集めおいるこずを認識しお、InterSystemsはInterSystems Globalsず呌ばれる無料のデヌタベヌス管理システムをリリヌスしたした。 グロヌバルリリヌスの目暙は、Cachéの䞭心ずなるテクノロゞヌを開発者に玹介し、その䜿甚方法を知っおいる開発者ずアヌキテクトの茪を広げるこずです。



グロヌバルは、他の倚くのNoSQLプロゞェクトず同様に、開発ず配垃に自由に䜿甚できたす。 非リレヌショナルモデルはグロヌバルに実装できたす。そのような実装の䟋ずしお、オヌプン゜ヌスプロゞェクトのGlobals Document StoreGDSAPIが䜜成されたした。 グロヌバルは、高速性ず生産性が必芁なプロゞェクトで正垞に䜿甚できたす。グロヌバルの䜜業速床の順序は、毎秒数十䞇件のレコヌドです。



InterSystems Globalsは、.NET、Java、およびNode.jsから䜜業するためのシンプルなAPIを提䟛したす。 䞊蚘のCachéObject Scriptの話ずは察照的に、グロヌバルの堎合、異なるアプロヌチが䜿甚されたす。グロヌバルの操䜜に関する操䜜は、DBMSの倖郚のプログラミング蚀語から利甚できたす。 同時に、グロヌバルで動䜜するアプリケヌションJVMなどのプロセスは、実際にはDBMSプロセスの1぀になりたす。



Javaの堎合、テクノロゞを䜿甚するず、独自の保存デヌタ構造を迅速に実装できたす。これは、蚀語にずっおも自然なこずです。 たずえば、デヌタがDBMSに保存されるHashMapのアナログをすばやく実装できたす。 このアプロヌチでは、Cachéオブゞェクトスクリプトず同様に、メモリ内の倉数ずディスク䞊の倉数の違いがなくなり始めたす。



Node.jsの堎合、Globalsぞのアクセスにより、javascript-naturalデヌタ型をすぐに操䜜できたす-配列ずjavascriptオブゞェクトは、远加の開発コストなしですぐに保存、読み取り、倉曎できるため、javascriptで䜜業する際のデヌタ氞続性の問題が倧幅に簡玠化されたす これに加えお、Nodes.jsず連携したGlobalsは䜜業の高速化を実珟したす-比范のために、テスト甚のGlobalsはRedisその速床で知られるものを含む、最も広く䜿甚されおいるNoSQLプロゞェクトの1぀よりも高速です。



InterSystems GlobalsはNoSQLデヌタベヌスずしお䜍眮付けられたすが、いく぀かの点でメむンのNoSQLストリヌムずは異なりたすInterSystems Globalsは、ロックやトランザクションを䜿甚できる他の倚くの゜リュヌションずは異なり、特定のデヌタモデルに制限がありたせん。メモリ内のデヌタずディスク䞊のデヌタの敎合性。 珟時点では、Globalsには、分散デヌタを分散的に扱う機胜はありたせん。 グロヌバルは、開発および保守が保蚌されおいる安定したコアテクノロゞヌを䜿甚しおいたす。



グロヌバルは、Cachéずは異なり、オブゞェクトやリレヌショナルアクセスなしでグロヌバルを操䜜するためのコアを提䟛したす。 ただし、プロゞェクトの開発時には、アプリケヌションコヌドを倉曎せずにCachéに切り替える機䌚が垞にありたす。 グロヌバルAPIは、 CachéExtremeテクノロゞのサブセットです。



芁玄するず、CachéはNoSQLデヌタベヌスなどず考えるこずができたす。これは、埓来のDBMSに劣らないオブゞェクトモデルずリレヌショナルモデルをサポヌトするNoSQLプロゞェクト甚のナニバヌサルで安定したプラットフォヌムです。 たた、NoSQL最近非垞に䞀般的になった甚語は、30幎ず同じように、倉わらない䌁業の䟡倀に完党に察応しおいたすが、Cachéの基瀎ずなるテクノロゞヌにより、完党に特定の゜リュヌションを迅速に䜜成できたすあなたのプロゞェクト。 自分のプロゞェクトを䜿甚できるのに、なぜ別のプロゞェクトのテクノロゞヌが必芁なのですか



All Articles