tag:blogger.com,1999:blog-57171795714143308742024-03-09T18:46:38.450-08:00InfinispanOpen Source Data GridsUnknownnoreply@blogger.comBlogger528125tag:blogger.com,1999:blog-5717179571414330874.post-20439589204278547932019-11-05T02:27:00.003-08:002019-11-05T02:27:35.252-08:00Infinispan blog migrationThe Infinispan blog has a <a href="https://infinispan.org/blog/" target="_blank">new home</a>. This site will no longer be updated.Tristan Tarranthttp://www.blogger.com/profile/18394920592885772550noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-38504252747036207882019-07-15T03:02:00.000-07:002019-07-15T03:02:36.926-07:00Infinispan 10.0.0.Beta4Dear Infinispan users,<br />
<br />
it has been a while since our last release and quite a few things have been cooking in the Infinispan furnace. Bear in mind that the list below should just serve as a summary and that dedicated blogs, documentation and examples will appear in the near future.<br />
<br />
<h3>
Server</h3>
Since 5.3, our server has been built on top of WildFly (JBoss AS7 at the time). WildFly gave us a very solid base, including integration with a lot of useful components (security, datasources, management etc) but it also forced us to maintain a large amount of integration code. We have therefore decided to start from a much leaner base to build the new server which, internally we've been calling ServerNG, but which we're now releasing as "Infinispan Server". The old WildFly-based server is still available, but it should be considered "legacy" and will no longer receive any feature enhancements.<br />
<br />
The new server deserves its own dedicated post, but its main features are:<br />
<ul>
<li>smaller size (36MB vs 130MB)</li>
<li>smaller memory footprint (20MB heap usage at boot vs 40MB)</li>
<li>single-port: the Hot Rod, REST and management endpoint are now served through a single-port (11222) with automatic protocol detection between HTTP/1.1, HTTP/2 and Hot Rod. The memcached endpoint is handled separately since we don't implement the binary protocol yet.</li>
<li>security implemented using <a href="https://docs.jboss.org/author/display/WFLY/WildFly+Elytron+Security" target="_blank">WildFly Elytron</a> currently supporting PLAIN, DIGEST-MD5, SCRAM, EXTERNAL mechs for Hot Rod, BASIC, DIGEST, CLIENT_CERT for REST/HTTP (OAuth/JWT/GS2/GSSAPI/SPNEGO will be coming in the next releases)</li>
<li>the server configuration extends the embedded configuration scheme</li>
<li>caches/counters are created and managed dynamically through Hot Rod / REST.</li>
</ul>
<h3>
Marshalling</h3>
Infinispan's marshalling has received a significant overhaul and it is now split into three distinct marshallers: Internal, Persistence and User (<a href="https://issues.jboss.org/browse/ISPN-7409" target="_blank">ISPN-7409</a> <a href="https://issues.jboss.org/browse/ISPN-9621" target="_blank">ISPN-9621</a>)<br />
The Persistence marshaller is now based on ProtoBuf allowing for long-term compatibility of data stored in memory and in cache stores.<br />
The Store Migrator has been updated to allow migration from Infinispan 8.x/9.x cache stores to the new format (<a href="https://issues.jboss.org/browse/ISPN-10276" target="_blank">ISPN-10276</a>)<br />
<br />
<h3>
Core changes</h3>
Infinispan's internal dependency-injection has been completely rewritten so that factories, components and dependencies are discovered and resolved at compile time instead of using runtime reflection. This, together with the marshalling changes and recent JGroups changes, paves the way for usage and native compilation with <a href="https://quarkus.io/" target="_blank">Quarkus</a>.<br />
<h3>
REST</h3>
The REST API is continuing its overhaul with the following additions to the v2 API<br />
<ul>
<li>Cluster Resource (<a href="https://issues.jboss.org/browse/ISPN-10268" target="_blank">ISPN-10268</a>)</li>
<li>Cache Resource (<a href="https://issues.jboss.org/browse/ISPN-9772" target="_blank">ISPN-9772</a> <a href="https://issues.jboss.org/browse/ISPN-10392" target="_blank">ISPN-10392</a>)</li>
<li>Counter Resource (<a href="https://issues.jboss.org/browse/ISPN-10151" target="_blank">ISPN-10151</a> <a href="https://issues.jboss.org/browse/ISPN-10152" target="_blank">ISPN-10152</a>)</li>
</ul>
The REST endpoint now fully supports authorization (<a href="https://issues.jboss.org/browse/ISPN-8736" target="_blank">ISPN-8736</a>)<br />
<h3>
Reactive API</h3>
The first implementation of our new Reactive API have been merged. This is still work in progress and the API will receive major changes until the Final release.<br />
The new API includes a new API module and a new KeyValueStore Hot Rod client where search, continuous search and Key Value store methods are included.<br />
<h3>
Cross-Site Replication</h3>
Async mode cross-site replication received 2 major improvements:<br />
<ul>
<li>async mode is now able to detect disconnections between sites and bring the site offline based on <take-offline> configuration (<a href="https://issues.jboss.org/browse/ISPN-10180" target="_blank">ISPN-10180</a>)</li>
<li>track and exposes the average replication times for asynchronous requests (<a href="https://issues.jboss.org/browse/ISPN-9457" target="_blank">ISPN-9457</a>) </li>
</ul>
<br />
<h3>
Non-blocking</h3>
<br />
<ul>
<li>Non-blocking Hot Rod authentication (<a href="https://issues.jboss.org/browse/ISPN-9841" target="_blank">ISPN-9841</a>)</li>
<li>Non-blocking REST endpoint (<a href="https://issues.jboss.org/browse/ISPN-10210" target="_blank">ISPN-10210</a>) </li>
<li>Update internal remote listener code to support non blocking (<a href="https://issues.jboss.org/browse/ISPN-9716" target="_blank">ISPN-9716</a>)</li>
<li>Update internal embedded listeners to be non blocking (<a href="https://issues.jboss.org/browse/ISPN-9715" target="_blank">ISPN-9715</a>)</li>
</ul>
<br />
<h3>
Removal/deprecations</h3>
A new major release is also an opportunity to do some house cleaning.<br />
<h4>
Deprecations</h4>
<br />
<ul>
<li>Deprecate GridFileSystem and org.infinispan.io stream implementations (<a href="https://issues.jboss.org/browse/ISPN-10298" target="_blank">ISPN-10298</a>) </li>
<li>Deprecated Total Order transaction mode (<a href="https://issues.jboss.org/browse/ISPN-10259" target="_blank">ISPN-10259</a>)</li>
</ul>
<h4>
Removals</h4>
<ul>
<li>AtomicMap implementations removed (<a href="https://issues.jboss.org/browse/ISPN-10230" target="_blank">ISPN-10230</a>) </li>
<li>Remove deprecated org.infinispan.io classes (<a href="https://issues.jboss.org/browse/ISPN-10297" target="_blank">ISPN-10297</a>)</li>
<li>Remove org.infinispan.tools.ConfigurationConverter (<a href="https://issues.jboss.org/browse/ISPN-10231" target="_blank">ISPN-10231</a>)</li>
<li>Remove compatibility mode (<a href="https://issues.jboss.org/browse/ISPN-10370" target="_blank">ISPN-10370</a>)</li>
</ul>
<br />
If you are curious you can read the <a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310799&version=12340951" target="_blank">detailed release notes</a> including all fixed issues.<br />
As usual you can ask questions on the <a href="https://developer.jboss.org/en/infinispan/content" target="_blank">forum</a>, <a href="https://stackoverflow.com/questions/tagged/?tagnames=infinispan&sort=newest" target="_blank">StackOverflow</a> and interactively on our <a href="http://infinispan.zulipchat.com/" target="_blank">Zulip Chat</a>.<br />
Please report any bugs you find on our<a href="https://issues.jboss.org/projects/ISPN/summary" target="_blank"> Issue Tracker.</a><br />
Going back to our three-week schedule, our next release will be Beta5, three weeks from now. Tristan Tarranthttp://www.blogger.com/profile/18394920592885772550noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-15184980459955936492019-07-12T02:58:00.003-07:002019-07-12T04:30:33.624-07:00Infinispan Operator 0.3.0 expands container and security configuration!<div dir="ltr" style="text-align: left;" trbidi="on">
Infinispan Operator 0.3.0 is now available with expanded configuration and security options:<br />
<br />
<h2 style="text-align: left;">
Container Configuration</h2>
<br />
With this release of the Infinispan Operator, you can configure explicit CPU and memory limits for individual containers. The defaults are <span style="font-family: "courier new" , "courier" , monospace;">0.5</span> CPUs and <span style="font-family: "courier new" , "courier" , monospace;">512Mi</span> of memory.<br />
<br />
The Operator also lets you pass extra JVM options, which is useful for tracking native memory consumption or extra GC logging parameters.<br />
<br />
<script src="https://gist.github.com/galderz/142723eb8a9cf9234741be363870667b.js"></script>
<br />
<h2 style="text-align: left;">
Security Configuration</h2>
<br />
Starting with 0.3.0, credentials are automatically generated for data connector and management users when you instantiate the Infinispan Operator.<br />
<br />
The default usernames are <span style="font-family: "courier new" , "courier" , monospace;">developer</span> and <span style="font-family: "courier new" , "courier" , monospace;">admin</span> for the data connector user and management user, respectively.<br />
<br />
Generated passwords are stored in Kubernetes <a href="https://kubernetes.io/docs/concepts/configuration/secret/">Secret</a> instances. You can extract the passwords as follows:<br />
<br />
<script src="https://gist.github.com/galderz/17aec6114933f568ea331d3ec680b041.js"></script>
For convenience, the default usernames are also stored in the secret. Using the <a href="https://stedolan.github.io/jq/">jq</a> command line tool, you can inspect both the username and password values with a single command:<br />
<br />
<script src="https://gist.github.com/galderz/a3c4fcb78d31019e178b981828dc4d0f.js"></script>
If you want to set custom credentials for the data connector and management users, create Kubernetes Secret instances as follows:<br />
<br />
<script src="https://gist.github.com/galderz/6983e0c68b806cf9a969e12beffe8e0d.js"></script>
When using a <span style="font-family: "courier new" , "courier" , monospace;">Credentials</span> type authentication, the referenced secrets must contain <span style="font-family: "courier new" , "courier" , monospace;">username</span> and <span style="font-family: "courier new" , "courier" , monospace;">password</span> fields.<br />
<br />
<h2 style="text-align: left;">
Trying It Out!</h2>
<br />
The easiest way to get started with the Infinispan Operator is via the <a href="https://github.com/infinispan/infinispan-simple-tutorials/tree/master/operator">simple tutorial</a>. The Operator is compatible with vanilla Kubernetes environments, such as Minikube, as well as Red Hat OpenShift.<br />
<br />
<h2 style="text-align: left;">
Available via Operator Hub</h2>
<br />
Install the Infinispan Operator directly from the Operator Hub, which is available out of the box on all OpenShift 4 versions. If you're using a vanilla Kubernertes environment, you might need to install the Operator Lifecycle Manager before you can install via the Operator Hub.<br />
<br />
The Infinispan Operator is also included in the community for Kubernetes Operators is available from <a href="https://operatorhub.io/operator/infinispan">operatorhub.io</a>.<br />
<br />
<h2 style="text-align: left;">
What's Next?</h2>
<br />
The Operator configuration does not yet provide all capabilities available for Infinispan servers. We're working through a process of configuration specification that distills the server configuration into a simple, easy to use, set of configuration options. The current proposal is being discussed openly <a href="https://github.com/infinispan/infinispan-operator/pull/77">here</a>.<br />
<br />
Infinispan 10 brings a brand new server that's no longer based on WildFly. The Operator 0.x series will remain focused on Infinispan 9.x server, with Operator 1.x series focusing on Infinispan 10 and onwards.<br />
<br />
Cheers,<br />
Galder<br />
<br /></div>
Galder Zamarreñohttp://www.blogger.com/profile/07902530246353017161noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-85515755063271291822019-04-15T04:08:00.002-07:002019-04-15T06:48:25.575-07:00Infinispan on tour, March-April 2019<div style="text-align: center;">
<b><span style="font-size: large;"><br /></span></b></div>
<div style="text-align: center;">
<b><span style="font-size: large;">Infinispan has been on tour!!</span></b></div>
<div style="text-align: center;">
<br /></div>
I - <a href="https://twitter.com/karesti" target="_blank">Katia Aresti</a> - had the chance to present 3 talks in 3 different conferences and countries during the last month:<br />
<br />
<a href="https://www.breizhcamp.org/" target="_blank">Breizh Camp 2019</a> the 22th March, Rennes (France)<br />
<br />
<div style="text-align: center;">
<img alt="BreizhCamp - 9ème édition - 20, 21 et 22 Mars 2019 logo" src="https://www.breizhcamp.org/img/logo.png" /></div>
<br />
<br />
<a href="https://www.greachconf.com/" target="_blank">Greach Conf 2019</a>, 29th March, Madrid (Spain)<br />
<br />
<div style="text-align: center;">
<img alt="Greach 2019" height="57" src="https://static1.squarespace.com/static/5bbb8964ab1a624b2849c12c/t/5bbb89d3ec212de44fe418ea/1553429592481/?format=1500w" width="200" /></div>
<br />
<a href="https://voxxeddays.com/milan/" target="_blank">Voxxed Days Milano 2019</a>, 13th April, Milan (Italy)<br />
<br />
<div style="text-align: center;">
<img alt="VoxxedDays Milan" height="55" src="https://voxxeddays.com/milan/wp-content/uploads/sites/47/2018/06/Milano-grey.png" width="200" /></div>
<br />
<br />
<h4>
Breizh Camp</h4>
<div>
2019 has been BreizhCamp's 9th - Code Busters - edition and they sold-out the conference in a matter of hours (wow).<br />
<br />
I did not have the time to attend any talk. Unfortunately, due to my personal schedule, I arrived on Thursday night, and I was presenting on Friday after lunch. This was the second time I was giving this presentation, but I did lot's of changes since the first time, including:</div>
<div>
<ul>
<li>Big upgrades to my presentation look and feel </li>
<li>Harry-Potterize my <a href="https://github.com/karesti/harry-potter-vertx" target="_blank">Vert.x Clustered + Infinispan Embedded</a>. An original demo containing more examples of Vert.x and Infinispan can be found <a href="https://github.com/infinispan-demos/vertx-api" target="_blank">here</a>.</li>
<li>Creating and live-coding an <a href="https://github.com/infinispan-demos/harry-potter-quarkus" target="_blank">Infinispan Client/Server + Quarkus Demo</a></li>
<li>Using <a href="https://blog.infinispan.org/2019/04/operator-021-out-with-dns-ping-and.html" target="_blank">Infinispan Operator</a> to create an Infinispan Cluster in <a href="https://www.devoxx.fr/" target="_blank">Openshift 4</a></li>
</ul>
</div>
<div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitmyBHudQnAfga2wNerXsX3A6PRgNUiVBC5aswemdRI2kAmzz6haP84ls4siXL7sSOWcv-4Mqg-Keux9hpfUfcGZJPRSvq7I4d69utKvZeT4ej3f-qtM8UfuJCfBnvS0afhY8xNNBNqgI/s1600/Katia_BreizhCamp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="484" data-original-width="640" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitmyBHudQnAfga2wNerXsX3A6PRgNUiVBC5aswemdRI2kAmzz6haP84ls4siXL7sSOWcv-4Mqg-Keux9hpfUfcGZJPRSvq7I4d69utKvZeT4ej3f-qtM8UfuJCfBnvS0afhY8xNNBNqgI/s400/Katia_BreizhCamp.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Breizh Camp Code Busters Edition, Photo credit @BreizhCamp 2019</td></tr>
</tbody></table>
<br />
<br /></div>
<div>
On Friday morning I was stressed and I ran my presentation at the hotel. I arrived at the venue, delivered my talk and headed back to Paris. I deeply regretted not spending more time hanging out with other speakers and attendees, but I really couldn't make it this time :(<br />
<br /></div>
<h4>
Greach Conf</h4>
<div>
Greach Conf is a lovely conference held in Madrid (Spain) for several years now. A 100% international conference, it has been organized by the Groovy community. </div>
<div>
This year they have changed the conference lineup adding an Android/Testing track and focusing on a bigger spectrum of technologies around the JVM.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh1hudvJ_hHKN7-jwFnBTaeJcrS3G-B73CO26EYjisbAqtBJkSrzZNfw5m1fXyYKdlLfLmMjW9Jj4C0mbzHToQJOhMKwLKB1-rUl2tbRl4q_3byBR2p4Scn7ndHPQKjLb3Jbr4fzj6sO4/s1600/Katia_Greach.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1067" data-original-width="1600" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgh1hudvJ_hHKN7-jwFnBTaeJcrS3G-B73CO26EYjisbAqtBJkSrzZNfw5m1fXyYKdlLfLmMjW9Jj4C0mbzHToQJOhMKwLKB1-rUl2tbRl4q_3byBR2p4Scn7ndHPQKjLb3Jbr4fzj6sO4/s400/Katia_Greach.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Greach Conf 2019. Photo credit José Miguel Rodríguez</td></tr>
</tbody></table>
<br /></div>
<div>
<br /></div>
<div>
I learned a bunch of new things, including content related to <a href="https://sdkman.io/" target="_blank">SDKMan!</a>, <a href="https://gradle.org/" target="_blank">Gradle</a>, the future of <a href="https://grails.org/" target="_blank">Grails</a> and of course, <a href="https://micronaut.io/" target="_blank">Micronaut</a>. As the principal maintainer of <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">Spring-Boot and Infinispan integration</a>, Micronaut felt new and familiar at the same time. I really enjoyed the workshop delivered by <a href="https://twitter.com/alvaro_sanchez" target="_blank">Alvaro Sánchez </a>who will be in <a href="https://www.devoxx.fr/" target="_blank">Devoxx France</a> this week. The framework <b>is really impressive</b>. Give it a try!</div>
<div>
<br /></div>
<div>
<b>You will find on Twitter a complete thread about my Greach Conf impressions:</b></div>
<blockquote class="twitter-tweet" data-lang="fr">
<div dir="ltr" lang="en">
Coming back to Paris after 3 amazing days in Madrid as speaker and attendee at <a href="https://twitter.com/greachconf?ref_src=twsrc%5Etfw">@greachconf</a> <a href="https://twitter.com/hashtag/greach?src=hash&ref_src=twsrc%5Etfw">#greach</a> opening a thread 👇🏻</div>
— Katia Aresti (@karesti) <a href="https://twitter.com/karesti/status/1112041858270748672?ref_src=twsrc%5Etfw">30 mars 2019</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<h4>
Voxxed Days Milano</h4>
Voxxed Days Milano (Italy) was organizing the first edition this year and I really loved this conference in every aspect of it! Thanks, <a href="https://twitter.com/mariofusco" target="_blank">Mario Fusco</a> and all the team involved for making it possible!<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCln2lk7oh0hQN_XKPz4a26GuXxRDf_5DMMxUptPcC3gbV_BQYlfIGtA-UV4lnOhH2EYwSmFbUsoljN7Bm7Grhusdt_ibD7V-4pA6K_hBAfeRWUHtDVTvJ9CABBlDzEpEdW_ZoXj21HnY/s1600/Katia_VoxxedMilano.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="618" data-original-width="1271" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCln2lk7oh0hQN_XKPz4a26GuXxRDf_5DMMxUptPcC3gbV_BQYlfIGtA-UV4lnOhH2EYwSmFbUsoljN7Bm7Grhusdt_ibD7V-4pA6K_hBAfeRWUHtDVTvJ9CABBlDzEpEdW_ZoXj21HnY/s400/Katia_VoxxedMilano.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Voxxed Days Milano - Photo credit Sanne Grinovero </td></tr>
</tbody></table>
<br />
<br />
I've written a full thread on Twitter with my impressions. You can find it attached to the tweet where I share<b> all the content I've used in Greach Conf, BreizhCamp and Voxxed Days Milano:</b><br />
<blockquote class="twitter-tweet" data-lang="fr">
<div dir="ltr" lang="en">
My presentation content <a href="https://twitter.com/hashtag/VDM19?src=hash&ref_src=twsrc%5Etfw">#VDM19</a> is available! <a href="https://twitter.com/VoxxedMilano?ref_src=twsrc%5Etfw">@VoxxedMilano</a> ! Thanks for attending!<br />
<br />
The code of <a href="https://twitter.com/vertx_project?ref_src=twsrc%5Etfw">@vertx_project</a> and <a href="https://twitter.com/Infinispan?ref_src=twsrc%5Etfw">@Infinispan</a> embedded<a href="https://t.co/KYNUJRzauU">https://t.co/KYNUJRzauU</a><br />
<br />
The code of <a href="https://twitter.com/QuarkusIO?ref_src=twsrc%5Etfw">@QuarkusIO</a> and <a href="https://twitter.com/Infinispan?ref_src=twsrc%5Etfw">@Infinispan</a> client/server<a href="https://t.co/9TV9tPBaeI">https://t.co/9TV9tPBaeI</a><br />
<br />
Deck: <a href="https://t.co/HR8nMR7xlL">https://t.co/HR8nMR7xlL</a></div>
— Katia Aresti (@karesti) <a href="https://twitter.com/karesti/status/1117012866354307072?ref_src=twsrc%5Etfw">13 avril 2019</a></blockquote>
<script async="" charset="utf-8" src="https://platform.twitter.com/widgets.js"></script>
<br />
<br />
<div style="text-align: center;">
<b><span style="font-size: large;">Thanks to Breizh Camp, Greach Conf and Voxxed Days Milano for the opportunity to share around distributed caches and for the amazing time I've had during this month in each of the conferences.</span></b></div>
<div style="text-align: center;">
<br /></div>
This tour is now over for a while but will continue before summer. I will be presenting this talk (with upgrades, so stay tuned) in <a href="https://devfest.gdglille.org/" target="_blank">Dev Fest Lille in June 2019</a> (France), in <a href="https://comunidadcode.com/" target="_blank">Comunidad CODE (Virtual talk)</a> and <a href="https://www.meetup.com/fr-FR/Software-Crafters-Bilbao/" target="_blank">Software Crafters Bilbao</a> in Spanish.<br />
<br />
<h4>
<b>Devoxx France </b></h4>
<a href="https://www.devoxx.fr/" target="_blank">Devoxx France </a>is taking place this week in Paris. <b>I will be there,</b> so if you want to chat about Distributed caches, Datagrids, NoSQL Key-Value databases, or integration with your favorite framework <b>feel free to reach me on twitter</b>!<br />
<br />
<br />
There are lot's of <b>new features and Reactive APIs to be done for Infinispan 10</b>, so my main focus will be there for a bit.<br />
<br />
<br />
<div style="text-align: center;">
Stay Tuned And Happy Coding!</div>
<div style="text-align: center;">
<br /></div>
<br />Katia Arestihttp://www.blogger.com/profile/13246438940872219106noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-80983958751815043412019-04-08T01:00:00.000-07:002019-04-08T01:00:05.496-07:00Operator 0.2.1 out with DNS ping and expanded customizations<div dir="ltr" style="text-align: left;" trbidi="on">
We've just completed the release of the Infinispan Operator version 0.2.1. In this second minor release, we've added the following features:<br />
<br />
<h3 style="text-align: left;">
DNS Cluster Discovery</h3>
<br />
Cluster nodes now discover each other using DNS ping, which uses name lookups. Each node publishes a headless service which they use to locate each other. Previously, Kubernetes APIs were queried to discover other nodes, but this required administrator rights. DNS ping does not require admin permissions.<br />
<br />
<h3 style="text-align: left;">
Configurable Image</h3>
<br />
The Infinispan server image used by the operator is now configurable, e.g.<br />
<br />
<script src="https://gist.github.com/galderz/2d3f06dfb3c5fa0d17fa1e7059ad9531.js"></script>
<h3 style="text-align: left;">
<br /></h3>
<h3 style="text-align: left;">
Configurable XML</h3>
<br />
You can now provide their own custom Infinispan server XML referencing an existing ConfigMap:<br />
<br />
<script src="https://gist.github.com/galderz/32cf3b56d3914eef1c06044d3d76f638.js"></script>
Note that this example requires a ConfigMap with the XML file to be created before hand.<br />
<br />
<h3 style="text-align: left;">
Next Steps</h3>
<br />
We're already working on version 0.3.0, and in parallel we've been working on our first OperatorHub submission. We hope to have some news for you very soon :)<br />
<br />
Cheers,<br />
Galder<br />
<br /></div>
Galder Zamarreñohttp://www.blogger.com/profile/07902530246353017161noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-69614375871419423212019-04-05T02:48:00.003-07:002019-04-08T01:51:08.435-07:00Infinispan Spring Boot Starter 2.1.5.Final and 1.0.7.Final are out!<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Dear Infinispan and Spring Boot users,<br />
<br />
We have just released <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">Infinispan Spring Boot Starter</a> <b>2.1.5.Final </b>and<b> 1.0.7.Final</b>.<br />
<br />
<h3>
<b>2.1.5.Final</b></h3>
<b><br /></b> <b>2.1.5.Final</b><span style="font-weight: 400;"> is using</span><b> Infinispan 9.4.11.Final</b><span style="font-weight: 400;"> and </span><b>Spring-Boot 2.1.4.RELEASE</b><span style="font-weight: 400;">.</span><br />
<h4>
<b>Important Spring-Boot bug fix</b></h4>
Previous versions of Spring-Boot 2.1.x contained a bug related to the <a href="https://openjdk.java.net/jeps/238" target="_blank">multi-release jars</a>. Infinispan contains multi-release jars, in consequence, we could not run our applications using <span style="font-family: "courier new" , "courier" , monospace;">java -jar</span> with Java 11 (Java 8 worked fine). For additional explanations, read <a href="https://stackoverflow.com/questions/54635814/why-does-infinispan-fail-with-noclassdeffounderror-on-spring-boot-java-11" target="_blank">here</a>.<br />
Spring-Boot team has fixed this <a href="https://github.com/spring-projects/spring-boot/issues/15981" target="_blank">bug</a> and released the correction in Spring-Boot 2.1.4.RELEASE, along with <a href="https://github.com/spring-projects/spring-boot/releases/tag/v2.1.4.RELEASE" target="_blank">many other features and bug fixes</a>, so consider upgrading soon.<br />
<h4>
<b>Statistics on Client/Server mode and Actuator</b></h4>
Statistics configuration in client/server mode for the client evolved in the latest Infinispan versions. As a remainder, to activate actuator statistics in client/server mode :<br />
- Configure <span style="font-family: "courier new" , "courier" , monospace;">'infinispan.remote.statistics=true'</span> in the <b>application.properties</b><br />
<u>or</u><br />
- Configure '<span style="font-family: "courier new" , "courier" , monospace;">'infinispan.client.hotrod.statistics=true"</span> in the <b>hotrod-client.properties</b><br />
<u>or</u><br />
- Configure by code, for example:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">@Bean</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">public InfinispanRemoteConfigurer infinispanRemoteConfigurer() {</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> return () -> new ConfigurationBuilder().statistics().enable().build();</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">}</span><br />
<h4>
</h4>
<h4>
JMX</h4>
<div>
If you want to use Infinispan and JMX, for example on Client/Server mode, set the <span style="font-family: "courier new" , "courier" , monospace;">'jmx'</span> property <span style="font-family: "courier new" , "courier" , monospace;">'true'</span> as explained above with the <span style="font-family: "courier new" , "courier" , monospace;">'statistics'</span> property. However, you might get a <span style="font-family: "courier new" , "courier" , monospace;">javax.management.InstanceAlreadyExistsException </span>because both Infinispan and Spring will try to register the MXBean.<br />
<br />
The correction will land on the next starter release. If you need to avoid this error today, you can tell Spring-Boot not to register the bean with the following code (Thanks Stéphane Nicoll for the tip!):<br />
<br />
<script src="https://gist.github.com/karesti/d539d5dad724f6de11eee8f151e6366f.js"></script>
<br />
</div>
<h4>
</h4>
<h4>
Testcontainers</h4>
This version includes an integration test using <a class="" href="https://testcontainers.org/" target="_blank">Testcontainers</a>, <a href="https://junit.org/junit5/" target="_blank">JUnit5</a> and the <a href="https://hub.docker.com/r/jboss/infinispan-server" target="_blank">Infinispan Server</a>. Grab a look <a href="https://github.com/infinispan/infinispan-spring-boot/blob/90e79a81dd32a6c9462e76bfdfb175e2c751b3f0/infinispan-spring-boot-starter-remote/src/test/java/test/org/infinispan/spring/starter/remote/actuator/RemoteCacheMetricBinderTest.java" target="_blank">here</a> if you are curious.<br />
<br />
<br />
<h3>
<b>1.0.7.Final</b></h3>
<div>
<b><br /></b> <b>1.0.7.Final</b> upgrades to <b>1.5.19.RELEASE</b> and Infinispan <b>9.4.11.Final</b>.<br />
<br /></div>
</div>
<div style="text-align: center;">
⭐ Don't forget to <b>star</b> the project in <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">GitHub</a> if you like the starter! ⭐</div>
<div style="text-align: center;">
<br /></div>
You can find these releases in the maven central repository.<br />
<br />
Please report any issues in our <a href="https://issues.jboss.org/projects/ISPN">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/">Zulip Chat</a> to shape up our next release.<br />
<br />
Enjoy,<br />
<br />
The Infinispan TeamKatia Arestihttp://www.blogger.com/profile/13246438940872219106noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-14262552429201052672019-03-07T06:08:00.000-08:002019-03-07T08:10:16.328-08:00Subatomic Infinispan ClientToday, the Quarkus project was released as a public beta. <a href="https://quarkus.io/">https://quarkus.io/</a> For those of you not familiar, Quarkus allows you to write your enterprise apps as you have done in the past with Hibernate/JAX-RS, but also to compile these applications to a Graal-VM native image. Running in a native image allows for the application to be started up in mere milliseconds, depending upon the app, all while using much less memory. <br />
<br />
The Infinispan team is proud to announce that you can use the HotRod Java client in Quarkus and supports being compiled to a native image as well. This can allow you to startup and connect to a remote Infinispan server faster than ever before.<br />
<br />
If you want a quick and simple example of how you can get this working you can take a look at the quick start which can be found at <a href="https://github.com/quarkusio/quarkus-quickstarts/tree/master/infinispan-client">https://github.com/quarkusio/quarkus-quickstarts/tree/master/infinispan-client</a>. This example covers configuring the client connection, cache injection and simple get/put operations as a basis.<br />
<br />
The Infinispan Client Quarkus extension in addition to providing an easy way to create a Graal-VM native image with Infinispan Client also provides the following features to help the user get stuff done quicker.<br />
<ol>
<li>Automatically Inject Important Resources</li>
<ol>
<li>RemoteCache (named)</li>
<li>RemoteCacheManger</li>
<li>CounterManager</li>
</ol>
<li>User based ProtoStream Marshalling</li>
<li>Querying (Indexed / Non Indexed)</li>
<li>Continuous Query</li>
<li>Near Cache</li>
<li>Authentication/Authorization</li>
<li>Encryption</li>
<li>Counters</li>
</ol>
<br />
More details for these features as well as how to configure them can be found at <a href="https://quarkus.io/guides/infinispan-client-guide">https://quarkus.io/guides/infinispan-client-guide</a><br />
<br />
Please let us know of any questions, concerns or suggestions at the usual places: <a href="https://developer.jboss.org/en/infinispan/content">forum</a> or <a href="http://infinispan.zulipchat.com/">chat</a>. We expect to continue enhancing this extension and would love to have any feedback.Anonymoushttp://www.blogger.com/profile/11227062037095490617noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-80952887460604150202019-03-06T07:07:00.000-08:002019-03-06T23:19:06.988-08:00Triple cachestore release: Cloud, MongoDB and CassandraToday we present to you a trifecta of cache store releases which align to Infinispan 9.x <br />
<h4>
Cassandra Cache Store</h4>
The Cassandra cache store now implements the <a href="https://docs.jboss.org/infinispan/9.4/apidocs/org/infinispan/persistence/spi/AdvancedCacheLoader.html#publishEntries(java.util.function.Predicate,boolean,boolean)" target="_blank">publishEntries/publishKeys</a> methods.<br />
<h4>
Cloud Cache Store</h4>
The Cloud cache store uses the Apache jclouds library to store data on cloud storage providers such as Amazon’s S3, Rackspace’s Cloudfiles or any other such provider supported by JClouds.<br />
The store has been updated to Infinispan 9.x's persistence SPI and uses jclouds 2.1.x<br />
<h4>
MongoDB Cache Store</h4>
This cache store has also been updated to the Infinispan 9.x persistence SPI.<br />
<br />
You can get documentation and maven coordinates from our <a href="http://infinispan.org/cache-store-implementations/" target="_blank">Cache Store page</a>Tristan Tarranthttp://www.blogger.com/profile/18394920592885772550noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-73813213401349635952019-03-05T05:27:00.000-08:002019-03-05T05:27:04.401-08:00Enhanced JGroups configurationInfinispan uses <a href="http://www.jgroups.org/" target="_blank">JGroups</a> as its underlying clustering layer. In order to configure the finer details of clustering (discovery, flow control, cross-site, etc) you have to provide a separate XML file with the desired configuration and reference it from your Infinispan XML file as follows:<br />
<br />
<script src="https://gist.github.com/tristantarrant/949d20559db80424c4d895cc873ce69c.js"></script>
<br />
For simple configurations this is usually fine, but configuring complex setups, such as cross-site replication, means juggling multiple files (one for the local stack, one for the cross-site stack and one for the relay configuration). <br />
<br />
Starting with Infinispan 10 Alpha2 we have introduced a number of changes to make your life with JGroups configurations a lot easier.<br />
<br />
<h4>
Default stacks</h4>
Infinispan now comes with two pre-declared stacks: <code>tcp</code> and <code>udp</code>. Using them is as simple as just referencing their names in the <code><transport></code> element.<br />
<br />
<script src="https://gist.github.com/tristantarrant/ca6ab04e7760dec92f1e70ba0c98397e.js"></script>
<h4>
Inline stacks</h4>
Inlining a stack means you can put the JGroups configuration inside the Infinispan one as follows:<br />
<br />
<script src="https://gist.github.com/tristantarrant/4cbc7166a5e4c784370c69a1b45cd6da.js"></script>
You can use the full JGroups schema, and by using XML namespaces you get full validation.<br />
<h4>
Stack inheritance</h4>
Most of the time you want to reuse one of the pre-declared stacks but just override some of the parameters (e.g. discovery) to suit your environment. The following example creates a new <code>tcpgossip</code> stack which is based on the default tcp stack but replaces the discovery protocol with <code>TCPGOSSIP</code>:<br />
<br />
<script src="https://gist.github.com/tristantarrant/aae5611d8734f3d821b74f6287202254.js"></script>
<br />
In the above example you can see that we have enhanced the JGroups protocol declarations with two new attributes: <code>ispn:stack.combine</code> and <code>ispn:stack.position</code> which affect how and where protocol changes are applied on the parent configuration to obtain a new configuration. <code>stack.combine</code> can be one of <code>COMBINE</code> (the default, possibly overriding any specified attributes), <code>REPLACE</code> (which completely replaces the protocol and resets all attributes), <code>REMOVE</code> (removes the protocol) and <code>INSERT_AFTER</code> (which places this protocol in the stack immediately after the protocol specified by <code>stack.position</code>).
<br />
<h4>
Multiple stacks and Cross-site</h4>
The inline configuration really shows its usefulness in cross-site configurations. In fact, the JGroups stack declaration has been extended with a special <remote-sites> element which replaces the need for a separate relay XML file and can reference other stacks just by name. The following configuration uses the default <code>udp</code> stack for the local cluster transport and uses the default <code>tcp</code> stack for connecting to a remote site:
<br />
<script src="https://gist.github.com/tristantarrant/79873a491efa530ae19d2f0e2dc046df.js"></script>
<br />
Having the entire configuration in a single place greatly simplifies management. Of course you can combine all of the above features to obtain the configuration you need for your environment. You can find more details and examples in the <a href="http://infinispan.org/docs/dev/user_guide/user_guide.html#cache_configuration_clustered">documentation</a>.
<br />
Enjoy !
<br />
TristanTristan Tarranthttp://www.blogger.com/profile/18394920592885772550noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-81281411082343195382019-03-04T01:14:00.000-08:002019-03-05T05:42:55.944-08:00First OpenShift Operator pre-release for Infinispan is here!<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://hub.docker.com/r/jboss/infinispan-operator">Infinispan Operator</a> is a new method of packaging, deploying and managing Infinispan clusters on OpenShift. You can think of the Infinispan Operator as the runtime that manages Infinispan clusters on OpenShift.<br />
<br />
We've just done our first Infinispan Operator pre-release, version 0.1.0, which allows you to easily boot up an Infinispan cluster on OpenShift.<br />
<br />
Using the operator is as simple as installing the Infinispan Operator (requires admin access) on OpenShift, and then create a YAML descriptor that defines the Infinispan cluster. The example below shows how to create a 3-node Infinispan cluster:<br />
<br />
<script src="https://gist.github.com/galderz/747be578f45f1e4bf2d1bb348f263a17.js"></script>
And then call:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ oc apply -f example-infinispan.yaml</span><br />
<br />
A more detailed tutorial on using the Infinispan Operator can be found <a href="https://github.com/infinispan/infinispan-simple-tutorials/tree/master/operator">here</a>. We highly recommend you give it a go and let us know what you think.<br />
<br />
Over the next few versions we'll be adding more features that make the most of the capabilities the <a href="https://coreos.com/blog/introducing-operator-framework">Operator framework</a> offers to automatically manage the health and status of running Infinispan clusters.<br />
<br />
Please also note that as we work towards the 1.0 release, some things might change :)<br />
<br />
Cheers<br />
Galder</div>
Galder Zamarreñohttp://www.blogger.com/profile/07902530246353017161noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-367965570585931502019-02-22T04:06:00.001-08:002019-02-22T04:06:11.376-08:00Infinispan Spring Boot Starter 2.1.4.Final is out!<div dir="ltr" style="text-align: left;" trbidi="on">
Dear Infinispan and Spring Boot users,<br />
<br />
We have just released <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">Infinispan Spring Boot</a> <b>2.1.4.Final</b>.<br />
<br />
<b>2.1.4.Final</b> is using <b>the last Infinispan Release 9.4.8.Final</b> and <b>Spring-Boot 2.1.3.RELEASE</b>.<br />
<div>
<br /></div>
</div>
You can find this release in the maven central repository.<br />
<br />
Please report any issues in our <a href="https://issues.jboss.org/projects/ISPN">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/">Zulip Chat</a> to shape up our next release.<br />
<br />
Enjoy,<br />
<br />
The Infinispan TeamKatia Arestihttp://www.blogger.com/profile/13246438940872219106noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-25391711245917229062019-02-21T08:31:00.000-08:002019-02-21T08:31:33.794-08:00Infinispan 10.0.0.Beta2 and 9.4.8Hello Infinispan users,<br />
<br />
What ? You're wondering where Beta1 is ? And what happened to 9.4.7 ?<br />
Unfortunately, those releases, while tagged and available on your closest Maven Central mirror will only work with Java 11, so we had to rebuild and re-release.<br />
<br />
So, without further ado, I give you 10.0.0.Beta2 and 9.4.8.Final.<br />
<br />
The first change I should outline is one that will impact you if you are building Infinispan from source. The previous build structure required having both JDK 8 and JDK 11 in order to compile a release which worked on both. In order to simplify the build process, as well as ensuring that the output is always consistent we now require Java 11 only. Don't worry: the resulting binaries will still work on Java 8 and greater.<br />
<br />
<h3>
10.0.0.Beta2 </h3>
The first beta of our next major release contains a number of enhancements:<br />
<br />
[<a href="https://issues.jboss.org/browse/ISPN-9847">ISPN-9847</a>] - Extend configuration to allow inline JGroups configuration and inheritance<br />
[<a href="https://issues.jboss.org/browse/ISPN-9699">ISPN-9699</a>] - Cluster member owning no data<br />
[<a href="https://issues.jboss.org/browse/ISPN-8124">ISPN-8124</a>] - ServerNG: Initial implementation<br />
<br />
We will soon be posting about these features individually.<br />
<br />
The work on persistent storage long-term compatibility is progressing with<br />
[<a href="https://issues.jboss.org/browse/ISPN-9845">ISPN-9845</a>] - Stop exposing InternalMetadata via the persistence SPI <br />
<br />
Notable fixes:<br />
<br />
[<a href="https://issues.jboss.org/browse/ISPN-4075">ISPN-4075</a>] - State transfer should preserve the creation timestamp of entries <br />
<br />
And if you were still using the old Distributed Executor, that has been finally removed in<br />
[<a href="https://issues.jboss.org/browse/ISPN-9784">ISPN-9784</a>] - Remove Distributed Executor<br />
<br />
<h3>
9.4.8.Final </h3>
Our latest point release contains lots of bug fixes and minor enhancements.<br />
<br />
As usual you can ask questions on the <a href="https://developer.jboss.org/en/infinispan/content" target="_blank">forum</a>, <a href="https://stackoverflow.com/questions/tagged/?tagnames=infinispan&sort=newest" target="_blank">StackOverflow</a> and interactively on our <a href="http://infinispan.zulipchat.com/" target="_blank">Zulip Chat</a>.<br />
Please report any bugs you find on our<a href="https://issues.jboss.org/projects/ISPN/summary" target="_blank"> Issue Tracker</a>Tristan Tarranthttp://www.blogger.com/profile/18394920592885772550noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-35381945417617933532019-01-31T08:55:00.000-08:002019-01-31T08:55:09.675-08:00Infinispan Spring Boot Starter 2.1.3.Final is out!<div dir="ltr" style="text-align: left;" trbidi="on">
Dear Infinispan and Spring Boot users,<br />
<br />
We have just released <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">Infinispan Spring Boot</a> <b>2.1.3.Final</b>.<br />
<br />
<b>2.1.3.Final</b> is using <b>the last Infinispan Release 9.4.6.Final</b> and contains some bug fixes related to Actuator integration.<br />
<div>
<br /></div>
</div>
You can find this release in the maven central repository.<br />
<br />
Please report any issues in our <a href="https://issues.jboss.org/projects/ISPN">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/">Zulip Chat</a> to shape up our next release.<br />
<br />
Enjoy,<br />
<br />
The Infinispan TeamKatia Arestihttp://www.blogger.com/profile/13246438940872219106noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-17078351569211226182019-01-28T01:35:00.001-08:002019-01-28T01:35:14.641-08:0010.0.0.Alpha3 and 9.4.6.FinalHey there,<br />
<br />
the Infinispan team has cooked two releases for you today:<br />
<br />
<h4>
10.0.0.Alpha3</h4>
This release contains 3 features:<br />
<br />
<br />
<ul>
<li>[ISPN-4075] - State transfer should preserve the creation timestamp of entries</li>
<li>[ISPN-9320] - Automatic hot rod client version selection</li>
<li>[ISPN-9625] - Make clustered locks configuration possible by XML</li>
<li>[ISPN-9771] - Support for configuration in JSON format</li>
</ul>
We've also started removing code which was deprecated in the past, so check the <a href="http://infinispan.org/docs/dev/upgrading/upgrading.html" target="_blank">upgrading document</a> to see what you need to adapt in your application. This document will receive further changes during the 10.0 cycle.<br />
<br />
<a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310799&version=12339174" target="_blank">The complete list of issues resolved in 10.0.0.Alpha3.</a><br />
<br />
Some other features are in the works and should be landing during the beta period. Check the <a href="https://blog.infinispan.org/2018/11/the-road-to-infinispan-10-alpha1.html" target="_blank">first of the alpha posts</a> to learn more about the new stuff.<br />
<br />
<br />
<h4>
9.4.6.Final</h4>
The stabilization of 9.4 continues with this micro release.<br />
<br />
Highlights are:<br />
<br />
<ul>
<li>[ISPN-7889] - BaseDistributionInterceptor.remoteGet may cause concurrency issues<br />[ISPN-8889] - Data race in NonTxInvocationContext</li>
<li>[ISPN-9873] - Remove listeners when the lock is removed</li>
<li>[ISPN-9822] - BasicComponentRegistryImpl fails with security manager</li>
<li>[ISPN-9819] - Improve Spring-Session events handling in remote and embedded </li>
</ul>
<br />
<a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310799&version=12340282" target="_blank">The complete list of issues resolved in 9.4.6.Final.</a><br />
<br />
<br />
Please report any issues in our <a href="https://issues.jboss.org/browse/ISPN" target="_blank">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/" target="_blank">Zulip Chat</a> to shape up our next release.Tristan Tarranthttp://www.blogger.com/profile/18394920592885772550noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-77719375337218179962019-01-15T01:52:00.000-08:002019-01-15T01:52:08.869-08:00Infinispan Spring Boot Starter 2.1.2.Final is out!<div dir="ltr" style="text-align: left;" trbidi="on">
Dear Infinispan and Spring Boot users,<br />
<br />
We have just released <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">Infinispan Spring Boot</a> <b>2.1.2.Final</b>.<br />
<br />
<b>2.1.2.Final</b> is using <b>Spring Boot 2.1.2.RELEASE</b> and contains some bug fixes related to JCache and Actuator integration.<br />
<div>
<br /></div>
The starter is now using Infinispan's last stable release: <b>9.4.5.Final</b>.<br />
<br /></div>
You can find this release in the maven central repository.<br />
<br />
Please report any issues in our <a href="https://issues.jboss.org/projects/ISPN">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/">Zulip Chat</a> to shape up our next release.<br />
<br />
Enjoy,<br />
<br />
The Infinispan TeamKatia Arestihttp://www.blogger.com/profile/13246438940872219106noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-52928065225223590212018-12-11T04:43:00.000-08:002018-12-11T04:54:34.518-08:00Infinispan Spring Boot Starter 2.1.1.Final and 1.0.4.Final are out!<div dir="ltr" style="text-align: left;" trbidi="on">
Dear Infinispan and Spring Boot users,<br />
<br />
We have just released <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">Infinispan Spring Boot</a> <b>2.1.1.Final </b>and<b> 1.0.4.Final</b>.<br />
<br />
<b>1.0.4.Final</b> is using <b>Spring Boot 1.5.17.RELEASE</b><br />
<div>
<b>2.1.1.Final</b> is using <b>Spring Boot 2.1.1.RELEASE</b> </div>
<div>
<br /></div>
Both starters are now using Infinispan's <a href="https://blog.infinispan.org/2018/12/infinispan-944final-and-1000alpha2-out.html" target="_blank">last stable release: 9.4.4.Final</a>.<br />
<br />
9.4.4.Final provides full support to <b>JDK 11,</b> Spring 4 <b><u>and</u></b> 5.<br />
Concerning Spring 5, it includes <a href="https://spring.io/projects/spring-session" target="_blank">Spring Session 2.1.2.RELEASE</a> support.<br />
<br /></div>
You can find these releases in the maven central repository.<br />
<br />
Please report any issues in our <a href="https://issues.jboss.org/projects/ISPN">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/">Zulip Chat</a> to shape up our next release.<br />
<br />
Enjoy,<br />
<br />
The Infinispan TeamKatia Arestihttp://www.blogger.com/profile/13246438940872219106noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-38553367881646188902018-12-10T00:05:00.000-08:002018-12-10T07:06:01.121-08:00Infinispan 9.4.4.Final and 10.0.0.Alpha2 out with Spring 5 support!<div dir="ltr" style="text-align: left;" trbidi="on">
We've just released completed a couple of releases:<br />
<br />
Infinispan 9.4.4.Final (<a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310799&version=12340019">release notes</a>)<br />
<br />
<ul style="text-align: left;">
<li>Adds Spring 5 and Spring Boot 2.1 support</li>
<li>Fixes for JDK 11 compatibility. </li>
<li>Improves Cache#size() performance when using shared cache stores.</li>
</ul>
<br />
Infinispan 10.0.0.Alpha2 (<a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310799&version=12339364">release notes</a>) contains same fixes as 9.4.4.Final plus<br />
<br />
<ul style="text-align: left;">
<li>Removes the CLI cache loader</li>
<li>RemoteCache#getBulk methods.</li>
</ul>
<br />
Don't forget to checkout the Infinispan 10 road map <a href="https://blog.infinispan.org/2018/11/the-road-to-infinispan-10-alpha1.html">blog post</a> to find out all that's coming.<br />
<br />
Please report any issues in our <a href="https://issues.jboss.org/browse/ISPN">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/">Zulip Chat</a> to shape up our next release.<br />
<div>
<br /></div>
<div>
Cheers,</div>
<div>
Galder</div>
</div>
Galder Zamarreñohttp://www.blogger.com/profile/07902530246353017161noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-23310269499844110992018-11-21T00:57:00.005-08:002018-11-21T00:57:51.646-08:00The road to Infinispan 10 (Alpha1)Dear all,<br /><br />Today we are releasing 10.0.0.Alpha1 and 9.4.2.Final.<br /><br />Infinispan 9.4.2.Final comes with a number of bug fixes and some small additional features:<br /><br /><ul>
<li><a href="https://issues.jboss.org/browse/ISPN-9655" target="_blank">ISPN-9655</a> REST Access Log headers</li>
<li><a href="https://issues.jboss.org/browse/ISPN-8144" target="_blank">ISPN-8144</a> & <a href="https://issues.jboss.org/browse/ISPN-9661" target="_blank">ISPN-9661</a> Cross-Site replication statistics</li>
<li><a href="https://issues.jboss.org/browse/ISPN-9708" target="_blank">ISPN-9708</a> Expose the executor services through JMX</li>
<li><a href="https://issues.jboss.org/browse/ISPN-9732" target="_blank">ISPN-9732</a> Local iteration optimization with write behind is valid for non shared stores</li>
<li><a href="https://issues.jboss.org/browse/ISPN-9717" target="_blank">ISPN-9717</a> Fix Integer overflow for lifespan and maxIdle</li>
</ul>
<br />We have begun working on what will become Infinispan 10. As with all new major releases, this will come with a number of important changes.<br /><br /><ul>
<li><b>New Server</b><br />We are working on a new lightweight server, currently dubbed <i>ServerNG</i>, which will supersede the current WildFly-based offering. The new server will have a smaller disk and memory footprint, a new RESTful admin interface, improved security. It will still use familiar components (Elytron for security, Narayana for transactions, etc) but we hope that the installation and usability experience will be most improved. A dedicated blog post will describe in detail what is coming.</li>
<li><b>Long-term Storage Format</b><br />The persistent storage format will be changed so that it will be easier to transparently make changes to it without requiring further exporters/importers.</li>
<li><b>Non-blocking listeners</b><br />The listener implementation will be replaced with a non-blocking implementation.</li>
<li><b>Asynchronous CacheLoader/Store</b><br />Store operations will be ran in another thread to provide non blocking for main threads</li>
<li><b>Improved statistics</b><br />Infinispan statistics have been traditionally over-simplistic, offering mostly basic averages for writes and reads. We are going to implement percentiles on a histogram as well as recording tracing information so that you will be able to know how much time is being spent in the various subsystems (clustering, persistence, etc.)</li>
<li><b>New API</b><br />The current Infinispan API, based around Java's <i>ConcurrentHashMap</i> design, does not offer the flexibility required to support modern reactive designs as well as the various extensions we've added over the years (counters, multimaps, etc). We are therefore working on a new modern API design which we will be describing with a number of blog posts in the near future.</li>
<li><b>Agroal JDBC Connection Pool</b><br />We are replacing the JDBC connection pool implementation with <a href="https://agroal.github.io/" target="_blank">Agroal</a>.</li>
<li><b>Kubernetes Operators</b> <br />Operators are all the rage in the Kubernetes world, and we are working on an Infinispan Operator which will take care of managing and monitoring the health of an Infinispan cluster, handle scale up/scale down safely, perform upgrades and more.</li>
</ul>
<br />Infinispan 10.0.0.Alpha1 is the first release from our development branch. It currently includes the following features on top of what is in 9.4.2.Final:<br /><br /><ul>
<li><a href="https://issues.jboss.org/browse/ISPN-9666" target="_blank">ISPN-9666</a> Agroal JDBC Connection pool</li>
<li><a href="https://issues.jboss.org/browse/ISPN-9688" target="_blank">ISPN-9688</a> Internal REST server modularization</li>
</ul>
<br /><br />Please report any issues in our <a href="https://issues.jboss.org/browse/ISPN" target="_blank">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/" target="_blank">Zulip Chat</a> to shape up our next release.<br />Tristan Tarranthttp://www.blogger.com/profile/18394920592885772550noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-30965357957364026442018-11-19T04:14:00.001-08:002018-11-19T04:14:56.325-08:00Quick start Infinispan on Kubernetes<div dir="ltr" style="text-align: left;" trbidi="on">
Last week we showed you <a href="https://blog.infinispan.org/2018/11/the-fastest-path-to-running-infinispan.html">how to easily run Infinispan on top of OpenShift</a>. This week we're trying to do the same on Minikube, a tool that makes it easy to run vanilla Kubernetes locally.<br />
<br />
Although we've already covered the topic in the <a href="https://blog.infinispan.org/2016/08/running-infinispan-cluster-on-kubernetes.html">past</a>, we felt the descriptors needed a permanent location and an update to the latest Infinispan releases. Detailed instructions can be found in <a href="https://github.com/infinispan-demos/infinispan-kubernetes">this repository</a>.<br />
<br />
With OpenShift, we took advantage of <a href="https://docs.openshift.com/container-platform/3.11/dev_guide/templates.html">Templates</a> which allow a set of objects to be parameterised.<br />
Templates are OpenShift specific, so Kubernetes does not understand them. Instead, we provide you with the individual descriptors required to run Infinispan (Helm chart to come...). This includes:<br />
<br />
<ul style="text-align: left;">
<li>A <a href="https://github.com/infinispan-demos/infinispan-kubernetes/blob/master/statefulset.yaml">stateful set</a></li>
<li>Two services, for <a href="https://github.com/infinispan-demos/infinispan-kubernetes/blob/master/service-hotrod.yaml">Hot Rod</a> and <a href="https://github.com/infinispan-demos/infinispan-kubernetes/blob/master/service-http.yaml">HTTP REST</a> endpoints)</li>
<li>A <a href="https://github.com/infinispan-demos/infinispan-kubernetes/blob/master/rolebinding.yaml">rolebinding</a> so that Kubernetes API can be queried when forming a cluster.</li>
<li>A <a href="https://github.com/infinispan-demos/infinispan-kubernetes/blob/master/secret.yaml">secret</a> for plain authentication.</li>
</ul>
<br />
Before applying the descriptors, download and install <a href="https://kubernetes.io/docs/setup/minikube/">Minikube</a>. Then, set a profile, select the VM driver, give it enough CPU and memory for your experiments, and start it.<br />
<br />
Once Minikube it's running and you have the corresponding <span style="font-family: Courier New, Courier, monospace;">kubectl</span> command line tool installed, simply call:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ kubectl apply -f .</span><br />
<br />
Once all pods are ready, you should verify the 3-node cluster has formed correctly (find out how in the <a href="https://github.com/infinispan-demos/infinispan-kubernetes/blob/master/README.md">README</a> file).<br />
<br />
When ready, you can start storing and retrieving data. The HTTP REST endpoint is particularly useful for these initial tests, to verify everything works as expected:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">$ kubectl exec \</span><br />
<span style="font-family: Courier New, Courier, monospace;"> -it infinispan-server-0 \</span><br />
<span style="font-family: Courier New, Courier, monospace;"> -- curl -v -u test:changeme -H 'Content-type: text/plain' -d 'test' infinispan-server-http:8080/rest/default/stuff</span><br />
<br />
Then:<br />
<br />
<span style="font-family: "Courier New", Courier, monospace;">$</span><span style="font-family: "Courier New", Courier, monospace;"> </span><span style="font-family: Courier New, Courier, monospace;">kubectl exec -it infinispan-server-1 \</span><br />
<span style="font-family: Courier New, Courier, monospace;"> -- curl -v -u test:changeme infinispan-server-http:8080/rest/default/stuff</span><br />
<br />
Go and try it out and let us know what you think. You can find us on <a href="https://infinispan.zulipchat.com/">this Zulip chat</a> :)<br />
<br />
Cheers,<br />
Galder</div>
Galder Zamarreñohttp://www.blogger.com/profile/07902530246353017161noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-66001201440214642362018-11-15T01:18:00.002-08:002018-11-15T01:18:52.932-08:00Hotrod clients C++ and C# 8.3.0.Final are out!Dear Infinispanners,<br />
<br />
The C++ and C# 8.3.0.Final releases are out!<br />
<br />
Main features contained in this release are:<br />
<ul>
<li>Cache Admin Operations: create and remove cache at runtime;</li>
<li>Counters: clusterwide counters;</li>
<li>Transactions: run a list of operations transactionally;</li>
<li>Media Types: use differents media-types to encode (key,value) pairs.</li>
</ul>
Source code, binaries and docs are available as usual at the links below.<br />
<br />
Thank you for reading,<br />
The Infinispan Team
<br />
<br />
<br />
[1]<a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12314125&version=12339951"> Release notes for the 8.3.0 serie</a><br />
[2++] <a href="https://github.com/infinispan/cpp-client/tree/8.3.0.Final">C++ code for 8.3.0.Final</a><br />
[2#] <a href="https://github.com/infinispan/dotnet-client/tree/8.3.0.Final">C# code for 8.3.0.Final</a><br />
[3] <a href="http://infinispan.org/hotrod-clients/">Downloads</a>
rigazillahttp://www.blogger.com/profile/04086218083589623172noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-90559550967577205572018-11-12T00:41:00.000-08:002018-11-12T00:41:05.328-08:00The fastest path to running Infinispan on OpenShift!<div dir="ltr" style="text-align: left;" trbidi="on">
Creating an Infinispan Server cluster in OpenShift has never been easier! We've just given the OpenShift templates for Infinispan server their biggest makeover yet which should help both Infinispan and OpenShift users:<br />
<br />
The <a href="https://github.com/infinispan/infinispan-openshift-templates">repository</a> has been simplified and flattened out to only leave essential information. <a href="https://www.okd.io/minishift/">Minishift</a> is the preferred way to get started with Infinispan and OpenShift, so we've tailored the instructions for this set up.<br />
<br />
OpenShift templates are now <a href="https://github.com/infinispan/infinispan-openshift-templates/blob/master/infinispan-ephemeral.yaml">YAML based</a> which is less verbose, but more importantly, allows Infinispan Server XML configuration to be shown as-is. This makes it easier to directly modify the XML in the template itself.<br />
<br />
The fastest way to get started with Infinispan and OpenShift is to simply fire up Minishift, set a profile, checkout our Infinipan OpenShift <a href="https://github.com/infinispan/infinispan-openshift-templates">repository</a> and then call:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">oc create -f infinispan-ephemeral.yaml</span><br />
<span style="font-family: Courier New, Courier, monospace;">oc new-app infinispan-ephemeral</span><br />
<br />
These two simple steps will get you a single node Infinispan Server running! A more detailed getting started guide can be found in the repository's <a href="https://github.com/infinispan/infinispan-openshift-templates/blob/master/README.asciidoc">README</a> file.<br />
<br />
Go and try it out and let us know what you think. You can find us on this <a href="https://infinispan.zulipchat.com/">Zulip chat</a> :)<br />
<br />
Cheers,<br />
Galder</div>
Galder Zamarreñohttp://www.blogger.com/profile/07902530246353017161noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-83976595905992954832018-11-09T03:18:00.001-08:002018-11-09T03:22:43.159-08:00Infinispan 9.4.1.Final and Infinispan Spring Boot Starter 2.1.0.Final are out!Dear Infinispan and Spring Boot users,<br />
<br />
We have just released <a href="https://github.com/infinispan/infinispan">Infinispan</a><b> 9.4.1.Final </b>and <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">Infinispan Spring Boot</a> <b>2.1.0.Final</b>.<br />
<br />
Highlights of the <b>Infinispan</b> release include:
<br />
<ul>
<li>Export Data Grid stats to <a href="https://prometheus.io/" target="_blank">Prometheus</a> (<a href="https://issues.jboss.org/browse/ISPN-9558" target="_blank">ISPN-9558</a>)</li>
<li>Upgrade <a href="https://rocksdb.org/" target="_blank">RocksDB</a> version (<a href="https://issues.jboss.org/browse/ISPN-9603" target="_blank">ISPN-9603</a>)</li>
<li>Upgrade <a href="http://narayana.io/" target="_blank">Narayana</a> to version 5.9.0.Final (<a href="https://issues.jboss.org/browse/ISPN-9639" target="_blank">ISPN-9639</a>)</li>
<li>Upgrade to <a href="https://github.com/infinispan/protostream">protostream-4.2.2.Final</a> (<a href="https://issues.jboss.org/browse/ISPN-9654" target="_blank">ISPN-9654</a>)</li>
<li>Update Cassandra Store to Infinispan 9.4(<a href="https://issues.jboss.org/browse/ISPN-9595" target="_blank">ISPN-9595</a>)</li>
<li>Handle ClientCacheEntryExpired into InvalidatedNearCacheListener (<a href="https://issues.jboss.org/browse/ISPN-7087" target="_blank">ISPN-7087</a>)</li>
<li>Bug fixes</li>
<li>Additional <a href="https://github.com/infinispan/infinispan-simple-tutorials" target="_blank">code simple examples</a> such as remote multimap or near caching </li>
</ul>
<br />
Complete release notes can be read <a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310799&version=12339377" target="_blank">here</a>.<br />
<br />
Highlights of the <b>Infinispan-Spring-Boot</b> release include:<br />
<ul>
<li>Upgrade <b>Spring-Boot</b> version to <a href="https://spring.io/blog/2018/10/30/spring-boot-2-1-0">2.1.0</a></li>
<li>Upgrade <b>Infinispan</b> version to 9.4.1</li>
<li>Integration with Spring Actuator, to expose production ready metrics (<a href="https://issues.jboss.org/browse/ISPN-9668">ISPN-9668</a>)</li>
<li>Bug fixes</li>
<li>Additional <a href="https://github.com/infinispan/infinispan-spring-boot/tree/master/infinispan-spring-boot-samples">code examples</a></li>
</ul>
You can find these releases in the maven central repository.<br />
<br />
Please report any issues in our <a href="https://issues.jboss.org/projects/ISPN">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/">Zulip Chat</a> to shape up our next release.<br />
<br />
Enjoy,<br />
<br />
The Infinispan TeamKatia Arestihttp://www.blogger.com/profile/13246438940872219106noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-42583442459898775642018-11-02T01:27:00.000-07:002018-11-02T01:27:44.702-07:00Near caching with Spring-Boot and Infinispan<br />
We have recently released <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">infinispan-spring-boot-starter</a> <b>2.0.0.Final</b>. This version supports <a href="https://spring.io/projects/spring-boot" target="_blank">Spring Boot 2.1</a> and <a href="http://infinispan.org/" target="_blank">Infinispan 9.4.0.Final</a>.<br />
<br />
Before this release, some important features - such as near caching - were only configurable by code.<br />
From now on, we can set all of the Hot Rod client configuration using the <b>hotrod.properties</b> file or the <a href="https://issues.jboss.org/browse/ISPN-9437" target="_blank">Spring application YAML</a>. The latter is an important community requirement we had.<br />
<br />
Let's see how to speed up our applications performance with <a href="http://infinispan.org/docs/stable/user_guide/user_guide.html#near_caching" target="_blank">near caching</a>!<br />
<br />
<br />
<h3>
</h3>
<h2>
</h2>
<h2>
Hot Rod</h2>
<h3>
</h3>
Just as a quick reminder, Infinispan can be used embedded in your application or in <b>client/server</b> mode. To connect you application to a server you can use an <a href="http://infinispan.org/hotrod-clients/" target="_blank">Infinispan Client </a>and the Infinispan <a href="http://infinispan.org/docs/stable/user_guide/user_guide.html#hot_rod_server_usage" target="_blank">“Hot Rod Protocol”</a>. Other protocols are available, such as REST, but Hot Rod is the most recommended way since it is the one that supports most of the Infinispan functionalities.<br />
<br />
<h2>
Near cache</h2>
<div>
<br /></div>
From the Infinispan <a href="http://infinispan.org/docs/stable/user_guide/user_guide.html#near_caching" target="_blank">documentation</a>:
Hot Rod client can keep a local cache that stores recently used data. Enabling near caching can significantly improve the performance of read operations <b>get</b> and <b>getVersioned</b> since data can potentially be located locally within the Hot Rod client instead of having to go remote.<br />
<br />
<h2>
When should I use it? </h2>
<div>
<br /></div>
Near caching can improve the performance of an application when most of the accesses to a given cache are read-only and the accessed dataset is relatively small.<br />
When an application is doing lots of writes to a cache, invalidations, evictions and updates to the near cache need to happen. In this scenario we won't probably get much benefit.<br />
<br />
As I said in the introduction, the good news is that <b>this feature can be activated just by configuration</b>. Code doesn't change, so we can measure the benefits, if such exist, in a very straightforward way.<br />
<br />
<h2>
Spring-Boot</h2>
<div>
<br /></div>
I have created a very simple application, available <a href="https://github.com/infinispan-demos/infinispan-near-cache" target="_blank">here</a>. Maven, Java 8 and an Infinispan server are required to run it. You can <a href="http://downloads.jboss.org/infinispan/9.4.0.Final/infinispan-server-9.4.0.Final.zip" target="_blank">download the server</a> or use <a href="https://hub.docker.com/r/jboss/infinispan-server/" target="_blank">docker</a>.<br />
<br />
<br />
<span style="background-color: black; color: yellow;"><span style="font-family: "courier new" , "courier" , monospace;">Docker: docker run -it -p 11222:11222 jboss/infinispan-server:9.4.0.Final</span></span><br />
<span style="background-color: black; color: yellow; font-family: "courier new" , "courier" , monospace; font-size: x-small;"><br /></span>
<span style="background-color: black; color: yellow; font-family: "courier new" , "courier" , monospace;">Standalone: PATH/infinispan-server-9.4.0.Final/bin/standalone.sh</span><br />
<br />
Once the server is up and running, build the application using maven
<br />
<br />
<span style="background-color: black; color: yellow; font-family: "courier new" , "courier" , monospace;">>> infinispan-near-cache: mvn clean install</span><br />
<div>
<span style="background-color: black; color: yellow; font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<h3>
Writer </h3>
<br />
This application loads the required data to a remote cache: a list of some of the Infinispan contributors over the last decade.<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
</div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 0px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;">
<span style="background-color: black; color: yellow; font-family: "courier new" , "courier" , monospace;">>> writer: mvn spring-boot:run</span></div>
<br/>
<script src="https://gist.github.com/karesti/b78767c42ab5670ebcbe5171744743cd.js"></script>
<br />
<h3>
Reader </h3>
<br />
The reader application does 10.000 accesses to the contributors cache. Using a random id, I call 10.000 times the <span style="font-family: "courier new" , "courier" , monospace;">get</span> method. The job gets done in my laptop in ~4000 milliseconds.<br />
<br />
<span style="background-color: black; color: yellow; font-family: "courier new" , "courier" , monospace;">>> reader-no-near-cache: mvn spring-boot:run</span><br />
<div>
<br /></div>
<script src="https://gist.github.com/karesti/7d24aaae69d3dcebdca644f68395d1d6.js"></script><br />
<h2>
Activating the near cache</h2>
<div>
<br /></div>
<div>
I need to configure two properties:</div>
<ul>
<li><b>Near Cache Mode:</b> DISABLED or INVALIDATED. Default value is DISABLED, so I turn it on with <b>INVALIDATED</b>.</li>
<li><b>Max Entries: </b>Integer value that sets the max size of the near caches. There is no default value, so I set up one.</li>
</ul>
The hotrod client configuration is <u>for each client</u>, <u>not for each cache</u> (this might change in the future). With that in mind, note that configuring the previous properties will activate near caching <b>for all the caches</b>. If you need to activate it just for <b>some of them</b>, add the following property:<br />
<ul>
<li><b>Cache Name Pattern: </b> String pattern. For example "i8n-.*" will activate the near caching for all the caches whose name starts by "i8n-".</li>
</ul>
<br />
Configuration can be placed in the <b>hotrod-client.properties</b>, <b>Spring-boot configuration</b> or <b>code</b>.<br />
<h4>
hotrod-client.properties</h4>
<div>
<span style="font-family: "trebuchet ms" , sans-serif;"><b><span style="color: blue;">infinispan.client.hotrod.near_cache.mode=</span></b>INVALIDATED</span></div>
<div>
<span style="font-family: "trebuchet ms" , sans-serif;"><b><span style="color: blue;">infinispan.client.hotrod.near_cache.max_entries=</span></b>40</span></div>
<div>
<span style="font-family: "trebuchet ms" , sans-serif;"><span style="background-color: white;"><span style="color: blue;"><b>infinispan.client.hotrod.near_cache.cache_name_pattern=</b></span></span>i8n-.*</span></div>
<div>
<br /></div>
<h4>
application.yaml (or properties)</h4>
<div>
<b><span style="color: blue; font-family: "trebuchet ms" , sans-serif;">infinispan:</span></b><br />
<span style="font-family: "trebuchet ms" , sans-serif;"> <b><span style="color: blue;">remote:</span></b></span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"> <b><span style="color: blue;">near-cache-mode:</span></b> INVALIDATED</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"> <b><span style="color: blue;">near-cache-max-entries:</span></b> 10</span><br />
<span style="font-family: "trebuchet ms" , sans-serif;"> <b><span style="color: blue;">near-cache-cache-name-pattern:</span> </b>i8n-.*</span></div>
<div>
<h4>
code </h4>
</div>
With the Infinispan Spring-Boot Starter, I can add custom configuration using the <span style="font-family: "courier new" , "courier" , monospace;"><b>InfinispanRemoteCacheCustomizer</b></span>.
<br />
<br />
<script src="https://gist.github.com/karesti/ee4b0cb3e1a99fdb37dc0cae649bb73b.js"></script>
<br />
<h2>
Results</h2>
<br />
<div>
My dataset contains 25 contributors. If I activate the near cache with max 12 entries and I run my reader again, I get the job done in ~1900 milliseconds, which is already an improvement. If I configure it to hold the complete dataset, I get it done in ~220 milliseconds, which is a big one!<br />
<br />
<h2>
Conclusions</h2>
</div>
<div>
<br /></div>
<div>
Near caching can help us speed up our client applications if configured properly. We can test our tuning easily because we only need to add some configuration to the client. Finally, the <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">Spring-Boot Infinispan Starter</a> helps us build services with Spring-Boot and Infinispan. </div>
<div>
<br /></div>
<div>
Further work will be done to help Spring-Boot users work with Infinispan, so stay tuned! Any feedback on the starter or any requirement from the community is more that welcome. Find us in <a href="https://infinispan.zulipchat.com/" target="_blank">Zulip Chat </a>for direct contact or post your questions in <a href="https://stackoverflow.com/questions/tagged/?tagnames=infinispan&sort=newest" target="_blank">StackOverflow</a>!<br />
<br />
<br />
<br />
<br /></div>
<div>
</div>
Katia Arestihttp://www.blogger.com/profile/13246438940872219106noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-84475132884212858282018-10-31T05:10:00.000-07:002018-10-31T05:10:29.102-07:00Native JSON and Node 8.11 baseline in Node.js client 0.6.0!!<div dir="ltr" style="text-align: left;" trbidi="on">
Infinispan Node.js client 0.6.0 is out now!! :)<br />
<br />
As well as updating the client so that it understand the latest Hot Rod protocols in Infinispan 9.4.0.Final, this version comes with native JSON object support.<br />
<br />
To make the Node.js client backwards compatible, the client still treats key/value pairs as String by default. If you want to use native JSON objects, you have to explicitly configure the Node.js client to do so (see <a href="https://github.com/infinispan/js-client#supported-data-types">example</a>).<br />
<br />
Starting with this version, we've upgraded the base Node version requirement to 8.11, which is the latest stable release branch at the time of writing. With such upgrade, the client no longer needs to use external promise dependency which was know to <a href="https://issues.jboss.org/browse/HRJS-63">leak</a>.<br />
<br />
If you're a Node.js user and want to store data remotely in Infinispan server instances, please give the client a go and tell us what you think of it via our <a href="https://developer.jboss.org/en/infinispan/content">forum</a>, via our <a href="https://issues.jboss.org/projects/HRJS">issue tracker</a> or via <a href="https://zulipchat.com/">Zulip</a> on <a href="https://infinispan.zulipchat.com/">Infinispan channel</a>.<br />
<br />
Cheers<br />
Galder</div>
Galder Zamarreñohttp://www.blogger.com/profile/07902530246353017161noreply@blogger.com0tag:blogger.com,1999:blog-5717179571414330874.post-63662996743517015982018-10-11T00:51:00.001-07:002018-10-12T05:45:06.290-07:00Infinispan Spring Boot 2.0.0.Final is out!<div dir="ltr" style="text-align: left;" trbidi="on">
Dear Infinispan and Spring Boot users,<br />
<br />
We have just released <a href="https://github.com/infinispan/infinispan-spring-boot" target="_blank">Infinispan Spring Boot</a> <b>2.0.0.Final</b>.<br />
If you are wondering why it is worth to use this starter, read Sebastian's article <a href="https://blog.infinispan.org/2016/12/spring-boot-starters.html" target="_blank">here</a>!<br />
<br />
Highlights of this release include:<br />
<ul>
<li>Uses the latest Infinispan <a href="https://blog.infinispan.org/2018/10/infinispan-940final.html">9.4.0.Final</a></li>
<li>Automatic translation of Hot Rod client properties into Spring YAML (<a href="https://issues.jboss.org/browse/ISPN-9437">ISPN-9437</a>)</li>
<li>Bug fixes</li>
</ul>
</div>
<br />
You can find the release in the maven central repository.<br />
<br />
Please report any issues in our <a href="https://issues.jboss.org/projects/ISPN">issue tracker</a> and join the conversation in our <a href="https://infinispan.zulipchat.com/">Zulip Chat</a> to shape up our next release.<br />
<br />
Enjoy,<br />
<br />
The Infinispan TeamKatia Arestihttp://www.blogger.com/profile/13246438940872219106noreply@blogger.com0