世界正每秒从移动设备,Web和各种小工具向应用程序推送大量数据。 如今,更多的应用程序必须处理此数据。 为了保持性能,这些应用程序需要快速访问数据层。
在过去的几年中,RAM价格下降了,我们现在可以便宜得多地获得具有TB级RAM的硬件。 好,有了硬件,现在呢? 我们通常使用虚拟化来创建较小的虚拟机,以满足应用程序横向扩展的要求,因为拥有一个TB级的Java应用程序是不切实际的。 JVM Garbage Collection将立即杀死您的应用程序。 有没有想过要对一个TB的堆进行单个完整的垃圾回收需要多少时间? 它将使应用程序暂停数小时,使其无法使用。
BigMemory是在不维护磁盘/ raid配置/数据库的情况下以毫秒为单位访问数TB数据的关键。
BigMemory =大数据+内存中
BigMemory可以利用您的硬件到RAM的最后一个字节。 BigMemory在单个Java进程中最多可以存储TB的数据。
BigMemory以每个节点1 TB的速度提供“快速”,“可预测”和“高可用性”数据。
以下测试使用两个盒子,每个盒子都有1 TB的RAM。 为操作系统留出足够的空间,我们能够分配2 x 960 GB的BigMemory,总共可存储1.8+ TB的数据。 无需面对高延迟的问题,无需使用庞大的横向扩展体系结构即可……直接使用硬件。
测试结果:每秒23K只读事务,延迟为20 ms。
随时间推移的测试吞吐量和周期性等待时间的图表。
只读定期吞吐量图 |
只读定期延迟图 |
参考:来自Billion &Terabytes博客的JCG合作伙伴 Himadri Singh的快速,可预测和高度可用@ 1 TB /节点 。
翻译自: https://www.javacodegeeks.com/2012/06/fast-predictable-highly-available-1.html