performance results on two terabytes of ram

BIGMEMORY:
PERFORMANCE RESULTS ON TWO
TERABYTES OF RAM
TABLE OF CONTENTS
2Methodology
2 Hardware details
2 Software details
2Configurations
2 Performance measurement
3 Data set size
At the intersection of plummeting RAM prices and exploding data
sets lies an opportunity for businesses to change what is possible
to do with their data––whether that’s multiplying the throughput
of existing applications or bringing new real-time data services
online. Unfortunately, traditional Java® applications are unable to
take full advantage of the terabytes of local memory available to
them today.
4 Data element size
4 Read-write ratio
4Conclusion
BigMemory is a solution that stores big amounts of data in machine memory for ultra-fast access. It
snaps into enterprise applications to deliver high-speed performance at any scale. As data sets grow,
traditional Java applications get bogged down in Java Garbage Collection (GC), database latencies
and complex scale-out schemes. BigMemory, however, uses existing machine RAM outside of the
garbage collector’s reach. Plugging in BigMemory boosts performance, offloads databases and
simplifies scalability.
A major hallmark of an effective in-memory data management system is its ability to maintain
performance while handling ever-larger data sets and a range of access rates and data element sizes.
Terracotta partnered with HP Labs to test BigMemory’s ability to fully utilize the terabytes of RAM
available on HP® servers.
To validate BigMemory’s performance under these different conditions, we tested its throughput and
latency under three test scenarios:
1. Scaling up. Testing performance across a range of in-memory data set sizes from
gigabytes to terabytes.
2. Varying data characteristics. Testing performance across a range of sizes and number of
data elements.
3. Varying data access patterns. Testing performance while changing the ratio of read and
write operations.
WHITE PAPER
BigMemory: Performance Results on Two Terabytes of RAM
Methodology
All tests were performed by the Terracotta performance engineering team on hardware provided by HP
Labs. The test code is available via a public subversion repository here:
https://svn.terracotta.org/repo/forge/offHeap-test/branches/3.7.x/.
Access to the public repository requires a Terracotta community account available at: www.terracotta.org.
Each test used a simple multi-threaded Java application that programmatically initialized four
BigMemory in-memory data stores. Each test run was conducted in a single Java Virtual Machine
(JVM®) and consisted of two phases: a “warm-up”phase and a “testing” phase. During the warm-up
phase, data elements in the form of byte arrays were loaded into memory. Each data element was 4KB
unless otherwise noted. Tests were run on total data set sizes ranging from 2GB to 1.8TB.
After the warm-up phase completed, the test phase ran for 15 minutes. During the test phase, the
application ran both read and write operations, accessing data elements at random. Unless otherwise
noted, the number of elements remained constant during the test phase.
Heap size for the JVM was set to 1.6GB, with 10MB of heap allocated for data storage directly on the
JVM heap. Each test run also allocated 1.9TB of off-heap in-memory storage. All other parameters had
default values.
Hardware details
The test suite ran on a Hewlett Packard DL980 G7 server with the following specifications:
• 8P/80C 2.4GHz (Intel® Xeon® E7-4870)
• 2TB RAM
• 8 x 300GB 15K SAS disks
Software details
• BigMemory Go version 3.7
• Java™ SE Runtime Environment (build 1.6.0_32-b05)
• Java HotSpot™ 64-Bit Server VM (build 20.7-b02, mixed mode)
Configurations
APPLICATION
BigMemory
1.9 TB
<ehcache
name=”cacheManagerName_0”
maxBytesLocalHeap=”10m”
maxBytesLocalOffHeap=”960g”>
<cache name=”mgr_0_cache_0”
overflowToOffHeap=”true”/>
<cache name=”mgr_0_cache_1”
overflowToOffHeap=”true”/>
</ehcache>
<ehcache
name=”cacheManagerName_1”
maxBytesLocalHeap=”10m”
maxBytesLocalOffHeap=”960g”>
<cache name=”mgr_1_cache_0”
overflowToOffHeap=”true”/>
<cache name=”mgr_1_cache_1”
overflowToOffHeap=”true”/>
</ehcache>
Performance measurement
HP DL980 G7 – Xeon E7 – 4870
8 x 10 cores 2.4Ghz
2 TB RAM
Performance testing covered three dimensions:
• Data set size
• Data element size
• Read-write ratio
2
BigMemory: Performance Results on Two Terabytes of RAM
Data set size
Scaling data sets
This test measured throughput and latency while scaling a data set from two gigabytes to 1.8TB.
Figures 1 and 2 show the throughput while warming the data store (Figure 1) and the throughput for
steady-state data access operations with a read-write ratio of 9:1 (Figure 2).
Throughput remained consistently high, essentially independent of the size of the data set. During
the warm-up phase, latency remained within a range of 0.10–0.12 milliseconds with no large garbage
collection pauses. Similarly, during the test phase, latency remained within a range of 0.13–0.15
milliseconds.
z
Figure 1: Scaling Data Sets, Warm-Up Phase
Figure 2: Scaling Data Sets, Test Phase
Figure 3: Data Characteristics
3
BigMemory: Performance Results on Two Terabytes of RAM
Data element size
Throughput for different data characteristics
If data characteristics such as element size can be controlled, it is useful to find its optimal value for
maximizing performance.
This test measured throughput as a function of element size. Since the data set size remained constant,
the number of elements varied in step with the changes to element size.
The results (Figure 3) show that performance peaked or plateaued at an element size of about 100KB.
Throughput was calculated by multiplying the transaction rate by element size.
Read-write ratio
Writing a lot…fast
Some applications must frequently create or update data. Periodic bursts of write-heavy data
operations have the potential to degrade performance for a number of reasons, but an in-memory data
management system should still be able to sustain high performance.
This test measured throughput as a function of the percentage of writes out of the total amount of
read and write operations, starting with a read-only case and progressively doubling the percentage
of writes. Figure 2 shows throughput values as the write percentage increased, maintaining nearly
80 percent of the performance of the read-only case when writes reached a full 64 percent of all
operations. For all cases, latency remained at approximately 120 microseconds.
Figure 4: Write Percentage, Test Phase
Conclusion
Data sizes for most enterprises are exploding at the same time that terabytes of RAM are now available
on servers like those in Hewlett-Packard’s ProLiant series. While traditional Java applications struggle
to handle that data in memory, BigMemory snaps into enterprise applications to deliver consistent
performance at any scale with no special tuning required.
Across a range of data set sizes from a few gigabytes to nearly two terabytes in memory on a single
JVM, we saw throughput remain within a range of approximately 10 percent of the mean with no
garbage-collection induced latency spikes.
We also saw high performance across a range of data element sizes. For all data element sizes
tested––from one kilobyte to one megabyte––we saw throughput greater than 100MB per second. In
some cases, we saw throughput greater than 2.5GB per second. In all tests, BigMemory maintained an
average latency of 120 microseconds, with no garbagecollection induced spikes.
Lastly, we saw BigMemory perform well under both read-heavy and write-heavy conditions. In the readonly case, we saw throughput greater than 180,000 transactions per second. In the write-mostly case,
where write operations were greater than half of the total, we saw throughput at nearly 80 percent that
of the read-only case.
ABOUT SOFTWARE AG
Software AG offers the world’s first Digital Business Platform. Recognized as a leader by the industry’s top analyst firms, Software AG helps you combine existing systems on premises and in the
cloud into a single platform to optimize your business and delight your customers. With Software AG, you can rapidly build and deploy digital business applications to exploit real-time market
opportunities. Get maximum value from big data, make better decisions with streaming analytics, achieve more with the Internet of Things, and respond faster to shifting regulations and threats with
intelligent governance, risk and compliance. The world’s top brands trust Software AG to help them rapidly innovate, differentiate and win in the digital world. Learn more at www.SoftwareAG.com.
© 2015 Software AG. All rights reserved. Software AG and all Software AG products are either trademarks or registered trademarks of Software AG.
Other product and company names mentioned herein may be the trademarks of their respective owners.
SAG_BigMemory_Performance_Results_WP_Dec15