We get this question a fair amount. Both products are excellent choices for caching scenarios. They are variations of the same core technology, and their features overlap quite a bit.
Most enterprises will have a place for GemFire and PCC. When you’re modernizing thousands of apps, you’re going to find both products useful. So your evaluation boils down to using the right product for the right scenario.
The defining characteristic you should keep in mind: the deployment model. Will the cache be deployed as a service on Pivotal Cloud Foundry (PCF)? Then you should use PCC. Do you require a standalone caching service? Then GemFire is the logical option.
That’s the summary. But the comparison warrants a closer look. Let’s start with their shared heritage.
PCC and GemFire: A Shared Origin with Apache Geode
Both GemFire and PCC are based on Apache Geode™. In 2015, Pivotal contributed the GemFire codebase to the Apache Software Foundation and Apache Geode was born. Geode was promoted to a top-level project in 2017. As of the Geode 1.0 release, every Pivotal GemFire and PCC release is based on Apache Geode.
Pivotal GemFire: The Gold Standard for Standalone Caching
Hundreds of enterprises depend on GemFire when their high-scale business applications require low-latency and 24x7 availability. This scenario often requires extensive customization, and that’s what GemFire gives you. Moreover, GemFire runs directly on your preferred infrastructure: bare metal or VMs. This offers you lots of configuration and tuning options - essential capability, when you want to fine-tune performance based on the characteristics of your workload. For these use cases, GemFire supports full flexibility with JVM tuning and customization, as well as kernel configuration tuning.
Want to know more about GemFire? Check out case studies, webinars, blog posts, white papers and other resources from the GemFire page on Pivotal.io, at the bottom of which you will see a content stream. You can access the GemFire content stream directly, here.
Pivotal Cloud Cache (PCC): Because Modern Distributed Architectures Need Caching
PCC is ideal for microservices caching. The product uses the core GemFire caching features, and tailors them for use atop PIvotal Cloud Foundry. PCC also inherits key features from the PCF platform, including self-service, on-demand provisioning, and automation of day-2 operations provided in the platform by BOSH, which manages the entire stack - it encompasses the software layer, as well as the control and management of the underlying infrastructure. Examples of operational tasks managed by BOSH include scaling, high availability, and managing upgrades.
PCF is designed to provide high availability at multiple layers, adding to PCC’s own high-availability features. In fact, the combination of all of these availability features and the strong consistency offered by PCC give PCC a unique position with its ability to offer both strong consistency AND very good availability, in addition to partition tolerance (You can read about this in a blog post from my colleague Mike Stolz.). Also, for gaining visibility into the details of the PCC service operation, PCC streams its logs to PCF’s Loggregator Firehose. Standard monitoring and logging tools that integrate to the Firehose via a nozzle can be used for displaying this operational data in dashboards. A common approach across the platform and all services to monitoring, metrics and KPIs offers tremendous productivity over learning different tools for different services.
PCC has seen a surge of interest. We're working to expand its feature set to include the caching features GemFire customers know and love. We’re considering offer these features in future versions of PCC:
Lucene text search: this opens up use cases related to lookups by partial name, social security number, or other attributes stored as free-form text. This blog post showcases a type-ahead use case for this feature in GemFire.
Off-heap memory: the ability to store data off the JVM heap is big boost to performance because it is not subject to Java garbage collection. This can also make it practical to store and manage more data in-memory by an order of magnitude.
Transport layer security (TLS): this ensures that data in motion is encrypted and secure from potential breaches. GemFire uses SSL to secure data in transit.
REST API: allows developers to access the cache’s data management capabilities in languages other than the natively supported Java language.
Backup and restore: this is helpful for system recovery when a cluster fails. In PCC, this will leverage PCF’s BOSH Backup and Restore capabilities. Note: PCC’s architecture creates redundant copies of data to prevent data loss when a node in a cluster fails, even without backup and restore.
Greenplum Connector: enables hybrid transaction and analytical processing by providing a high-speed connector between GemFire and Greenplum. GemFire is the serving layer that process a high-volume of concurrent transactions, while Greenplum surfaces the output of analytics and posts these results in GemFire for consumption by applications.
It’s also worth noting that PCC offers limited JVM tuning and sizing compared to GemFire. The extra configuration options aren’t needed with PCC atop PCF - the JVM sizing in PCC is automated.
Can you use GemFire with apps on PCF? Sure, you can build a Service Broker for that. But PCC is optimized for deployment atop PCF. It’s the best option when you want to inherit the benefits of running on a highly automated platform.
Ready to learn more about PCC? You can access case studies, webinars, blog posts, white papers and other resources from the PCC page on Pivotal.io, at the bottom of which you will see a content stream. You can access the PCC content stream directly, here.
It’s Pivotal GemFire “AND” Pivotal Cloud Cache
As we’ve mentioned previously, you have many, many use cases for caching. And now you know when it makes sense to use Pivotal GemFire in your enterprise app portfolio, and when PCC is a better option.
In both variations, you’re getting a solid core that has been proven in scores of production deployments across multiple industries over the 15+ years of GemFire’s existence. The vast majority of in-memory data grid features are common to both, and both are enterprise-grade products with the scalability and availability features that businesses expect.
Learn about caching and running distributed systems at scale at the cloud event of the year: SpringOne Platform, Sept 24-27 in Washington, DC. We have a impressive line-up of sessions related to Geode and caching, which you can see here. Register now! You can use the following discount code to get a $100 discount on the conference pass: Attendee_Geode_100
About the Author
Jagdish Mirani is an enterprise software executive with extensive experience in Product Management and Product Marketing. Currently he is the Principal Product Marketing Manager for Pivotal’s in-memory data grid product called GemFire. Prior to Pivotal, Jagdish spent 10 years at Oracle in their Data Warehousing and Business Intelligence groups. More recently, Jag was at AgilOne, a startup in the predictive marketing cloud space. Prior to AgilOne, Jag was at Business Objects (now part of SAP), Actuate (now part o OpenText), and NetSuite (now part of Oracle). Jag holds a B.S. in Electrical Engineering and Computer Science from Santa Clara University and an MBA from the U.C. Berkeley Haas School of Business.More Content by Jagdish Mirani