The main purpose of in-memory cache is to to speed up dynamic web applications by eliminating or reducing the amount of time applications spend in reading data from the databases, most commonly relational databases. Read and write operations in relational databases are “slow operations” as they require reading data from the physical disk. In well architected applications, read operations can be moved from the database tier to the caching tier, which is several times faster than the database. Applications such as Wikipedia, LiveJournal and Twitter are read-intensive applications and use in-memory cache systems such as Memcached to reduce the number of reads from the database directly.
CumuLogic Elastic Cache provides users with a fully managed instance of high performance, Memcached-compliant, in-memory cache clusters on premise, on any Infrastructure-as-a-Service (IaaS) cloud or VM pool. CumuLogic Elastic Cache gives you the full functionality of Memcached in-memory cache technology without the need to manage, operate, monitor and scale the cache clusters in the cloud.
CumuLogic Elastic Cache automates the provisioning, configuration, performance optimization, management, failover, security and access control of cache servers, eliminating over 90% of the administrative tasks required to manage distributed in-memory cache clusters in the cloud. CumuLogic’s cache service also applies minor updates and patches automatically, thereby eliminating the downtime necessary to manage traditional cache systems.
CumuLogic Elastic Cache is integrated with CumuLogic’s core platform, making it a breeze for developers to deploy applications using caching and database services in scalable architectures.
- Cloud services and platform software portfolio to build Amazon-like cloud services on your private cloud and VMware vSphere environment
- Easily build Dev/Test/QA environments, Disaster Recovery and Business Continuity architectures, Big Data Analysis, Migrate and Manage Custom Web Apps
- Services include Relational and NoSQL Database-as-a-Service, Elastic Load Balancer and Distributed In-Memory Cache-as-a-Service
- Integrated Platform-as-a-Service (PaaS) for Java, Spring, PHP, Python and Grails applications
- All cloud services are fully managed, fault-tolerant, secure and scalable
- Integrates with existing IT assets, including ID management, governance, monitoring and more
- Eliminates vendor lock-in and ensures application portability between clouds
- Simplifies DevOps and application lifecycle management
Features supported by the CumuLogic Elastic Cache include:
Provisioning – Single click or single API call to provision the required number of nodes with the desired configuration and performance parameters optimized for the specific workload.
Pre-optimized nodes – Pre-optimized configuration parameters are used based on the amount of memory available on the node instance. The configuration parameters can be modified using parameter groups.
Failure detection and self healing – Service nodes are monitored in real-time for failures, as well as for performance and utilization metrics. In case of failure, the service controller will identify the failed nodes and will try to restart or re-provision the service. Self healing capabilities guarantee the availability of the appropriate amount of cache for the specific application.
On-demand scaling – Additional nodes can be added to the existing Memcached cluster by launching new nodes from the user interface, or a single API call or simple command line call. Applications can start using new nodes within minutes. The new nodes allow applications to scale during high peak loads without any impact to the performance and user experience.
Automatic minor updates and patches – Based on the user preference, the service controller will apply minor updates and patches to Memcached servers during the maintenance window defined by the user, minimizing downtime and manual operations.
Monitoring – Built in monitoring charts provide visibility into the usage and operation of the caching system and each node. Developers can visualize and optimize the configuration parameters to get the best cache performance.
Get A Free Trial with a Cloud Provider Partner
Minimal management tasks: CumuLogic Elastic Cache eliminates over 90% of distributed cache management tasks for developers and administrators, while providing the flexibility to control the performance, scalability and performance of the cache nodes.
Single-click deployment: It’s very easy to spin up new cache nodes whether for development, QA/Testing or production purposes. Memcached instances can be provisioned using the developer UI or an API call. Deployment and lifecycle control of Memcached instances can be easily automated by using command line tools.
Low cost of operation: Memcached instances are fully managed and monitored, eliminating the need for manual installation, configuration, patching and scaling, thus lowering the cost of application operations by over 90%.
On-demand scalability: CumuLogic Elastic Cache can instantly scale instances by adding new cache nodes for handling all read-only database operations. Cache node sets can be added on-demand based on the current workload requirements and scaled down when not needed, therein eliminating costly over provisioning of resources.
Reliability: You can improve reliability by deploying multiple instances of clustered nodes. Multiple cluster nodes not only provide reliability and failover, but also greatly enhance the scalability of applications. Self healing features of cache nodes allow you to recover lost nodes and eliminate hiccups in application performance.
Security: Cache instances are secured using the firewall settings and security groups of IaaS clouds. Cache nodes can also be configured to only use secured connections.
Compatibility: CumuLogic Elastic Cache is fully compatible with standard open source versions of Memcached, therefore applications require no code changes when using the CumuLogic cache service.
Integrated with PaaS: Applications deployed on the CumuLogic platform can easily be configured to connect to any database instances managed by the CumuLogic database service, allowing cache nodes to be configured to be used in conjunction with the database nodes.
Multi-cloud support: CumuLogic’s platform abstracts the underlying APIs of the different Infrastructure-as-a-Service clouds, including Citrix CloudPlatform, Apache CloudStack, OpenStack, Eucalyptus, VMware vCloud and vSphere. This enables users to deploy CumuLogic platform and cloud services on any of the supported private clouds and public clouds from the same platform.
Memcached is the most commonly used object caching technology to improve read performance of relational databases such as MySQL. It is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls or page rendering. Developers of large scale applications extensively rely on in-memory caching systems such as Memcached to read data from the cache instead of hitting the database for every read operation. If application workloads are read-intensive, in-memory cache eliminates any latencies in the application, ensuring high scalability and improving the user experience. The larger the size of available cache, the higher the amount of data that can be cached to avoid doing any database read operations or low latency disk read operations. Memcached supports distributed in-memory architecture which allows developers to use system memory from several smaller systems or virtual machines as a cohesive single cache cluster. Distributed in-memory cache clusters provide low-cost options for database acceleration, which scale equally well as any commercial caching systems.
You can read more details about Memcached and its use at memcached.org.
With CumuLogic Elastic Cache, users can launch one or more instances or nodes of Memcached servers and start using them in their applications within minutes without the need for any application code changes. CumuLogic’s platform manages the health of the cache nodes, monitors them for performance and can help optimize the parameters to suit the workload types. In the event of a failure, the system will detect and re-provision the failed nodes to maintain the level of cache used by the applications.
CumuLogic in-memory cache service can scale out by allowing users to add additional cache nodes on-demand as needed. New nodes can be added by a single API or command line call to CumuLogic’s platform or within a couple of clicks from the Developer Console.
CumuLogic abstracts the underlying APIs of the various IaaS clouds such as Apache CloudStack, Citrix CloudPlatform, OpenStack, VMware vCloud, vSphere, XenServer, KVM, Eucalyptus and many others. This enables users to deploy CumuLogic’s platform and database services on any of the supported private clouds and public clouds.
Working with CumuLogic Elastic Cache
With CumuLogic cache service, you can start by launching a cache cluster of the desired memory size and the number of virtual nodes using the User Console, an API call or a command line call. A cache cluster is a logical collection of individual Memcached nodes. All virtual nodes present the system memory to form a collection of large memory chunk available for cache. To use this logical memory for cache, you can use any Memcached client in your application code.
When you deploy an application on Cumulogic PaaS, the cache nodes will be configured appropriately to allow you access to the cache in your application. You will require to source environment variables CL_CACHE_NODES to obtain IP addresses or DNS names of your cache nodes and start using them right away. All security and access group settings are configured and you need not worry about internal mechanism of the cache nodes. If you prefer to manually launch and configure the cache nodes, you can simply launch the nodes, configure the security and access groups, and you’re ready to use the cache nodes in minutes.
Use the following steps to launch a cache cluster for either existing or new applications:
- Launching a cache node or a cluster: From the CumuLogic User Console or command line tool, launch a cache node instance and select the number instances and their type. For example, if you choose a small instance node (most commonly 1.75GB or 2GB memory on public clouds), you will get approximately 1.5GB of memory for the cache. If you need more than 1.5GB, choose the appropriate number of cache node instances. The total memory for cache is equal to the sum of memory in each individual node.
- Configuring access: Configure security and access groups on nodes. By default, security groups or firewall settings are configured to close access to the cache nodes. You can use access groups to allow access to your cache nodes from your application servers, web servers or from the IP address of the nodes where you application is deployed.
- Configuring Memcached client: In your Memcached client you will need to provide IP address or DNS names and port numbers of your Memcached nodes. The Memcached client will use a policy defined in your configuration to store data in the cache nodes. Refer to Developer Guide on our Documentation Center for details and sample code with Memcached service.
- Monitoring and analyzing: Using CumuLogic Console, you can monitor the metrics for cache utilization such as cache hits, misses, etc. to help you optimize the cache configuration for the best performance.
- Optimizing cache: You can use Cache Parameter groups to optimize certain performance parameters of cache nodes to further fine tune the cache.