最近、 Apache Ignite分散SQLデータベースの新しいバージョンがリリースされました。.NETの観点から新機能を検討することをお勧めします。

シン.NETクライアント
Javaと.NETの両方でバージョン2.4より前には、サーバーとクライアントの2つのクラスター接続オプションがありました。 一般に、クライアントモードがサーバーモードと異なるのは、クライアントノードがデータを保存せず、計算(計算、マップの縮小)を実行しないことだけです。 残りについては、既存の発見および通信コンポーネントが再利用されます。 クライアントノードのクラスターへの参加は、数秒かかることがある比較的重いプロセスです。
.NETの状況は、JVMがプロセス内で起動し、多くのリソースを消費し、環境に追加の要件を導入するという事実によって複雑になります。
これらすべての問題は、新しい「シン」クライアントによって解決されます 。
- ソケット(インスタントプロセス)を介してサーバーノードの1つに接続します。
- マシンでJavaを必要とせず、JVMを起動しません。
- 実質的にメモリフリー。
- 任意のタイプのIgniteノードに接続します:Javaのみ、.NET、C ++。
機能のうち、これまでのところCache + LINQのみがありますが、将来は他のすべてを追加する予定です。
この場合、APIは同一に見えます。
var cfg = new IgniteClientConfiguration { Host = "127.0.0.1" }; using (var client = Ignition.StartClient(cfg)) { var cache = client.GetCache<int, Person>("persons"); cache[1] = new Person(1, "Vasya"); cache[2] = new Person(2, "Petya");
シンクライアントの外観は、既存の「シック」APIが将来ダンプに送信されることを意味するものではないことに注意してください。
- シンクライアントの速度は、仲介を介して機能するため、常にわずかに遅くなります。
- ComputeやServicesなどの多くの機能は、(クライアントから呼び出された場合でも)「厚い」APIを介してサーバーノードで動作します。
LINQPadの例
Igniteを使用するプロセスでは、クラスターにすばやく接続し、キャッシュ内のデータを確認して、何らかの種類の要求を実行することができます。 これを行うには、 Visor Command LineやWeb Consoleなどのツールがあります。
シンクライアントの出現により、これはすべてLINQPadを介して迅速かつ便利に行うことができます。 「Add NuGet ...」でApache.Ignite
NuGetパッケージを追加するだけで十分です。完成したサンプルコードは自動的にダウンロードされます。
.NET Core、Mono、Linux、macOS

タイトルはそれ自体を物語っています。現在、Ignite.NETは次のプラットフォームとOSで使用できます。
- Windows(.NET 4.0 + 、. NET Core 2.0 +、Mono)
- Linux(.NET Core 2.0+またはMonoを実行するすべてのディストリビューション)
- macOS(再び.NET Core 2.0+またはMonoの下)
どうやって試すの?
.NET Coreでは、 命令はすべてのプラットフォームで同じです。
dotnet new console
dotnet add package Apache.Ignite
Apache.Ignite.Core.Ignition.Start();
Program.csに追加Apache.Ignite.Core.Ignition.Start();
ますApache.Ignite.Core.Ignition.Start();
dotnet run
警告NU1701:このパッケージは、プロジェクトと完全に互換性がない可能性があります。プロジェクトwarning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
は、 warning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
を示す警告warning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
を出しwarning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
warning NU1701: Package 'Apache.Ignite 2.4.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
その理由は、NuGetパッケージ内は.NET 4.0でビルドされた唯一のdllであり、プロセスを簡素化するために行われたためです。 これは、彼女が.NET Coreで動作することを妨げません。 csproj
<PropertyGroup><NoWarn>NU1701</NoWarn></PropertyGroup>
行を使用して、警告を抑制することができcsproj
。
モノ
Monoは通常の「Classic .NET」ソリューションで動作し、 MonoDevelopでLinux上に作成できます。
.NET Coreはx64を必要とするため、Monoのユーザーケースの1つは32ビットプロセッサです。 Ignite.NETの起動を手元にあるすべてのものでテストしているときにこれに出会い、Monoですべてが正常に開始されたLubuntuがインストールされた古いEEE PC 901が手元にありました。
LinuxおよびmacOSの開発
使用に加えて、Ignite.NETはLinuxおよびmacOSでも開発できるようになりました。 Monoでは、メインソリューションはそのままコンパイルされます。 .NET Coreの下に、.NET Coreの個別のソリューションファイルとプロジェクトファイルが追加されました。
Apache.Ignite.DotNetCore.sln
おわりに
Ignite.NETは現在、すべての主要なプラットフォームとオペレーティングシステムをカバーしています。 可能になった一般的な使用例の1つは、Linux上で実行される.NETノードのクラスターと、Windowsワークステーション上のシンプロトコルを介して実行されるクライアントアプリケーションです。
.NET Coreラインのさらなる開発が計画されています:ASP.NET Core(キャッシュ)およびEntity Framework Core(キャッシュ、データプロバイダー)との統合。 このような統合 は 、従来のASP.NETおよびEFには既に 存在します。