In-Memory Computing Opens New Doors in Government IT
Many government organizations are discovering new benefits of moving data into memory as enterprise adoption of in-memory computing slowly begins. So what additional benefits are government IT agencies realizing from IMC?
Here are just a few.
Improved Cluster Synchronization
The most prevalent mechanism for scaling enterprise applications today is through a combination of horizontal scaling of the business tier and vertical scaling of the resource tier. Horizontal scaling in this context means adding more instances of your application and middleware servers as the user base grows (also known as clustering). To provide high availability, the system must support seamless session fail-over to another server instance when one instance goes down. Therefore, user session information must be shared among the cluster. Today, session synchronization is not done at all, or is done in a proprietary way, depending on the vendor implementation and often relies on multicast or a messaging product to keep the cluster synchronized by pushing out session updates from the user’s current server to other servers in the cluster.
IMC provides a better approach to cluster synchronization: Using a hybrid local + shared memory cache, a user’s server puts the user’s session data into its local memory cache. In the background, that session data is sent to the cluster’s cache. In a fail-over situation, the user is redirected to a different server in the cluster and that server can then automatically retrieve the user’s session data from the central shared memory cache, put it into its local memory cache, and the user perceives no disruption of service. The difference in this scenario is that each server does not have to receive and store session updates for every user session in progress. This reduces local memory requirements and network congestion, and provides a more standardized clustering approach that can be reused across application server vendors.
Organizations have flocked to big data solutions such as Hadoop and similar static big data analysis solutions that analyze data that could not be easily analyzed with previous tools that required the data to be brought into main memory. To bridge the crunch the large amounts of data they need in a reasonable time frame, many forward-thinking organizations are turning to IMC. There are IMC vendors in the market today with products that support putting terabytes of data in memory. Analytics can be performed on data that, just a few years ago, was too large to manage. As an alternative to creating such large caches (and incurring the cost of all that additional memory), many companies are creating hybrid solutions that use IMC solutions to augment their static data analyses. This hybrid approach serves as an excellent means of incrementally growing out an IMC capability.
Powerful but Simple NoSQL
Programming trends come and go, but some seem to have exceptional staying power. One such trend is the use of XML and JSON for web-based data interchange. Indeed, a variety of data stores have evolved into NoSQL databases that are able to handle the unstructured nature of these formats. The attraction stems from their ability to handle and query data that can’t be easily translated into a structured or relational database due to its dynamic nature. NoSQL also eliminates the need to translate the data prior to persistence such as through an object-relational mapping used in many enterprise systems today.
Of course the benefits of a NoSQL database have their price. In this case, that price is CRUD performance. There are several different NoSQL data models and describing all of them would be exhausting, but to generalize, they typically don’t have the same overall CRUD/query performance of modern RDBMs. In steps IMC, to save the day! IMC products play a dual part in speeding up databases.
First and foremost, they increase the performance of all data store types (NoSQL/RDBMS/File/etc.) by off-loading the data store through caching on the business tier. Caching common query results sets in-memory on the business tier and provides applications requesting a cached query with almost instantaneous access to it, reducing response times, and increasing the amount of the overall throughput of the system. Caching also reduces the number of queries to the database, which cuts the load on the database and therefore decreases the response time of the queries it does receive. Lastly, results cached by the application do not incur the overhead of network serialization and the network cost of a round trip to the data store, thereby reducing internal network traffic congestion and increasing overall system throughput.
IMC also acts as its own simplified NoSQL database. Several IMC vendors built out their query capabilities so they can serve as their own unstructured database. Similar to a NoSQL data store, IMC implementations typically use a key-value approach to storing data. The unstructured data can often be queried directly or housed in a wrapper object, containing meta-data that can be queried, all of which is highly customizable and dependent upon the vendor and the data architecture. Since all of the data to be queried is in memory, the search retrieval times are usually going to be much faster that a RDBMs or NoSQL implementations, assuming the vendor has implemented a scalable search mechanism.
As IMC continues to evolve, new benefits will arise. Unlike many other revolutionary technologies, IMC does not require a whole new way of looking at things or mandate a rip and replace approach for utilization. On the contrary, it provides an easy way to enhance and extend the current architecture. In the case of the database-offloading example, organizations realize exceptional performance gains through the use of IMC integration with less than 50 lines of code. Consider for a moment, the case of the HealthCare.gov website. It was in the national news for months in Fall 2012, due to its inability to support the thousands of concurrent users that flocked to the site to sign up for the new healthcare system. Knowing that re-architecting the system would take too long to meet the sign-up deadline, the team turned to IMC to meet the performance demands of the overloaded system. Within a few weeks, the system was up and running without any major problems, with average response times reduced from tens of seconds to a few hundred milliseconds and handling up to 250,000 requests per minute.
About the Author
Chris Steel is Chief Solutions Architect for Software AG Government Solutions, a leading software provider for the US federal government, helping it integrate and dramatically enhance the speed and scalability of its IT systems. Steel has more than 20 years of experience in IT, successfully directing, developing, and delivering mission-critical systems, products, and services for financial, telecommunications, defense, healthcare, and software companies. He can be reached on Twitter at @CSteel and [email protected]