Today, we'll look at how Ignite can easily store any of your objects, share them over the network, and provide .NET and Java interoperability.
Embedded DatabaseIgnite does not require installation and configuration, it can be started right in your process, and since version 2.1 it can store data on disk . Add to this a fast and compact built-in serialization and get the easiest way to save any of your objects to disk.
That's all the code! We start several times and make sure that the data is not lost.
At the same time, demands are made! It can be anything, any nesting, including delegates, anonymous types and methods, expression trees, dynamic objects, and so on. Can your serializer do this? I do not think so. The only exception is that you can not do it
IntPtr, but it's for your own good. Serializing pointers is a bad idea.
Moreover, serialized objects are not a "black box", IBinaryObject allows you to selectively receive and modify individual fields of objects.
Of course, you can work with all these data in both key-value mode , and through SQL , LINQ , full-text search.
Note that, in addition to the embedded mode, Ignite can work through ODBC and JDBC.
The Google Chrome browser uses a separate process for each tab. Implementing this approach with Ignite is very simple: data can be easily and transparently exchanged through the cache, synchronize code execution through distributed data structures, and exchange messages via Messaging.
Processes can be equal. For example, the navigation history can be stored in the Replicated-cache, so that each tab when updating the link updates the history, can read it, and the fall of one of the processes does not affect the data safety. In the code, this all just looks like working with a collection.
Ignite provides thread-safe access to data within the entire cluster.
In Ignite there are full-fledged APIs in Java, .NET, C ++. You can start on Windows, Linux, Mac. For example, part of your application can be written in Java and running on Linux, another part - on .NET and under Windows.
The serialization protocol is universal, objects written on one platform can be read to another. The data structures mentioned above are also cross-platform.
Moreover, it is possible to transparently invoke .NET services written in Java, as follows: