MicroStream version 7

MicroStream 7.0 Release

[vc_row][vc_column][vc_column_text]We are pleased to announce that MicroStream version 7.0 is available as of today. It contains 3 new features and also some improvements. In this release blog, we give a short overview of the highlights of this version and watch this blog space to find more detailed information on each of the new features in the coming weeks. The Maven version number is 07.00.00-MS-GA.

 

Serializer API

The serialization logic that is used by the MicroStream library is now made accessible for standalone usage. In addition, we have succeeded in increasing the performance up to 20x. Internally, MicroStream has a custom Java instance serializer that converts the data of the Java Object into a binary format. This serializer is now exposed through a simple API so that you can convert any Java object to binary format and restore it later.

You can use it as an alternative for the Java Serialization to store some objects to disk for example, and read them later back into the heap again. Of course, you can also use an instance of the EmbeddedStorage to perform this kind of action.

Add the following dependency to your project (assuming you are using Maven)

<dependency>
   <groupId>one.microstream</groupId>
   <artifactId>microstream-persistence-binary</artifactId>
   <version>${microstream.version}</version>
</dependency>

Create a serializer instance when you need to store the instance, the creation of this object is fast, and call the serialize() method.

SerializerFoundation<?> foundation = SerializerFoundation.New()
     .registerEntityTypes(MyObject.class);
Serializer<byte[]> serializer = Serializer.Bytes(foundation);
byte[] data = serializer.serialize(theInstance);

You should register the class(es) that you want to serialize so that the unique number that each class receives is the same when you deserialize the byte array later on. Have a look at the documentation page for this new feature.

 

CDI Extension

There were already integrations available for Spring Boot and Helidon to perform the configuration of the data storage according to the framework’s best practices. In this new release, there is a CDI extension available to perform the configuration of the EmbeddedStorage, define the root object, and store the collections defined in the root object automatically using an interceptor pattern.

The configuration of the EmbeddedStorage makes use of the MicroProfile Config specification to read the various configuration values. So the extension can be used in any MicroProfile compliant runtime like OpenLiberty, Helidon, Quarkus, Payara, and WildFly to name a few. But you can also use it in a plain Java program when you make use of the Java SE option of CDI and a MicroProfile Config implementation like SmallRye Config.

With the @Storage annotation, you can indicate the root object that is turned into a CDI object now and it can be persisted by the @Store interceptor annotation.

You can already have a look at the example for the various runtimes and watch this blog space for more information on this new feature.

 

Logging

In this version, we also added logging statements to the codebase so that you get feedback about some actions that are performed or can activate the debug level to find out what MicroStream is performing and might be the cause of your problem.

We have opted for the SLF4J-API library so that we don’t force you to make use of any specific logging library. With the correct binding, you can use it with your favourite logging framework like Logback, log4j, JDK logging, etc. And of course, you can control what level of detail and how it is outputted just as with any other logging option. In a follow-up blog, we will go a bit deeper into the various configuration options you have.

 

Improvements and bug fixes

There is a new module for Android containing a custom handler for date and time instances to overcome the reflection restrictions in recent updates of Android. There are optimisations to reduce memory usage and release more memory after some of the MicroStream actions. Additionally, we have done various bug fixes. A complete overview is available on the changelog page from our documentation.

 

Upcoming

As indicated during the webinar where we already gave a brief overview of version 7, we are working hard on an exciting new piece of functionality that allows you to cluster several MicroStream instances. You can rewatch this recording of the webinar when you create an account on the MicroStream Website.

As a community user, you can get support for this free version for a period of 12 months as we are planning the next major release of the framework in April 2023. If you are using MicroStream in a critical application, we recommend that you consider an Enterprise Subscription that provides you with developer and production support and access to more storage targets like NoSQL, Cloud Object Storages, and more database systems. It also provides you bugfix backports to the version you are using for a period of 4 years or even longer.[/vc_column_text][/vc_column][/vc_row]

Total
0
Shares
Leave a Reply

Your email address will not be published. Required fields are marked *

Previous Post
Devoxx-UK-2022

MicroStream at Devoxx UK 2022

Next Post
MicroStream-Version-7

Logging Feature of MicroStream Version 7

Related Posts
Secured By miniOrange