In-Memory Computing Blogs and Events

IMCPlanet.org presents in-memory computing blogs and events from around the world. Read the latest in-memory computing news here. Submit your RSS feed or post your upcoming events and help the in-memory computing community stay up to date on the latest developments.

Mar
03
2014
Posted by Distributed Thoughts on Monday 3 March 2014, 18:57

Data loading usually has to do with initializing cache data on startup. However, quite often caches need to be loaded or reloaded periodically and not only on startup. In cases when you need to load lots of data, either at startup or at any point after, using standard cache put(...) or putAll(...) operations is generally inefficient, especially when transactional boundaries are not important. This is especially true when data has to be partitioned across the network, so you don't know in advance on which node the data will end up.For fast loading of large amounts of data GridGain provides a cool mechanism called data-loader (implemented via GridDataLoader). The data loader will properly batch keys together and collocate those batches with nodes on which the data will be cached. By controlling the size of the batch and the size of internal transactions it is possible to achieve very fast data loading rates.The code below shows an example of how it can be done:// Get the data loader…

Mar
03
2014
Posted by Distributed Thoughts on Monday 3 March 2014, 18:57

Clustering and failing-over web sessions is certainly not a new topic, but time proves that this topic never gets old either.  No e-commerce site wants to loose any customers in case of a server crash. The old approach of sticky sessions does not seem to do the trick anymore, as it often causes uneven load distribution across cluster with certain servers being overloaded while others being almost idle.Web session clustering provides freedom of load balancing user sessions to any app server without losing intermediate user session data. Why? Because underneath it takes advantage of in-memory distributed caching technology which ensures that user sessions are available in memory regardless of which server is hit. With this approach fault tolerance comes automatically - if a server crashes, simply go to another server and your session will still be available. All of this happens transparently to user who simply continues to browse and add items to the shopping cart as if nothing…

Dec
14
2012
Posted by Technology By Sample on Friday 14 December 2012, 22:02

Summary:  Gridgain is advanced software middleware that combines compute and data grid capabilities to provide a framework for processing large data sets.    Gridgain implements a well known parallel design pattern developed by Google, called MapReduce.   It’s zero deployment feature allows it to be used for building high performance cloud applications.   In honor of the presidential election,  a fictitious Vote counting problem is used to showcase the  distributive computing features in Gridgain.   This article is the first of a series that will explore various characteristics of Gridgain.
Prerequisites: If you would like to obtain this article’s complete sample, it…

Sep
30
2012
Posted by Technology By Sample on Sunday 30 September 2012, 20:06

Summary: Unit testing involves testing business logic in isolation.  In many situations,  Java classes  will have a natural dependency on other classes.  These dependent classes can be replaced with mock objects.   Mock objects are instances of test provided classes.
For example, let’s say you would like to unit test an algorithm that calculates a company’s credit score based on credit history.  With EasyMock , it is  unnecessary to use the actual external service to retrieve the company’s credit information.  EasyMock is an open source framework that  dynamically generates mock objects using  developer provided interfaces.
Prerequisites: If you would like to obtain this article’s complete sample, it may be obtained from our…

Aug
25
2012
Posted by Technology By Sample on Saturday 25 August 2012, 05:49

Summary: In this post, we will implement RESTful style web services using Jersey. Jersey is an open source, production grade, JAX-RS (JSR 311) Reference Implementation for building RESTful web services.  RESTful style web services was first introduced in Roy Fielding’s research paper,  “Architectural Styles and the Design of Network-based Software Architectures” in 2000.  As a result of its simplicity, RESTful style web services have become  the preferred web service design model.
Prerequisites: If you would like to obtain this article’s complete sample, it may be obtained from our GitHub repository. All samples…

Jun
20
2012
Posted by Technology By Sample on Wednesday 20 June 2012, 19:23

Summary: In this post, we use JGAP (pronounced “jay-gap”), an open source Genetic Algorithm (GA) framework, to select an optimal set of movies based on our interests. A Genetic algorithm (GA) is a type of search algorithm that simulates the process of natural evolution. This type of algorithm is used to select an optimal solution among potentially thousands (or more) solutions for a problem domain.
Prerequisites: If you would like to obtain this article’s complete sample, it may be obtained from our GitHub repository. All samples are Maven based java projects.
Let’s Get Started! Before we can begin, let’s examine the high level…

May
22
2012
Posted by Technology By Sample on Tuesday 22 May 2012, 15:30

Summary: In this post we utilize Esper, a Complex Event Processing  (CEP) engine, to monitor a fictitious data stream of gas prices to determine when and where to buy gas.  Event processing with Esper involves ‘real time’ tracking, analyzing, and responding to streams of information.    These data streams could be sales orders, Twitter feeds, stock market feeds, weather reports, traffic reports, or in our use case, gas prices. 

Prerequisites: If you would like to obtain this article’s complete sample, it may be obtained from our GitHub repository.  All samples are Maven based java projects.
Let’s Get Started! Before we can begin…

May
09
2012
Posted by Technology By Sample on Wednesday 9 May 2012, 19:35

Summary: This article highlights the steps involved in creating as well as processing custom annotations in Java.    Annotations are typically used to provide  additional information about the software.   This valuable information can be utilized at compile time, run time, or during the deployment phase.
Prerequisites: If you would like to obtain this article’s complete sample, it may be obtained from our GitHub repository.  All samples are Maven based java projects.
Let’s Get Started!  We will create a custom annotation  called @NotNullable.  This annotation will be applied to variables that cannot be null.  Next, we will…

May
04
2012
Posted by Technology By Sample on Friday 4 May 2012, 14:54

Summary: This article highlights Spring 3.1’s new Cache Abstraction.    In many enterprise applications, there are data access methods that return the same result for the same input parameters.   For these types of use cases, Spring 3.1’s Cache abstraction can reduce method invocations and improve overall application responsiveness.
Prerequisites: If you would like to obtain this article’s complete sample, it may be obtained from our GitHub repository.  All samples are Maven based java projects.
Spring ‘s Cache Abstraction: The Spring Framework provides annotations to enable a developer to transparently apply caching to new and existing applications.  The…

Apr
22
2012
Posted by Technology By Sample on Sunday 22 April 2012, 12:49

Summary: JUnit is the standard unit testing framework for Java.  JUnit 4.x further reduces the complexity for unit testing by utilizing annotations.  As a result, software developers are ‘freed’  from inheriting from specific classes as well as applying specific naming conventions to methods. This post will describe how to make use of some of the key features within JUnit 4.x.
Prerequisites: If you would like to obtain this article’s complete sample, it may be obtained from our GitHub repository.  All samples are Maven based java projects.
JUnit Testing: JUnit 4.x uses annotations to select methods that have been chosen…