官术网_书友最值得收藏!

Achieving High Performance

In traditional web application architecture, we deploy our application into multiple nodes and each node connects to a relational database to store data. The following diagram depicts the traditional system architecture; different clients (desktop, mobile, tabs, laptops, smart devices, and so on) are communicating with the system. There are multiple JVMs/nodes to handle the traffic (the load balancer is removed for brevity), but there is only one database instance to store data. DB operations are relatively slow as they interact with the file IO, so this architecture may create a bottleneck if the client requests come faster than the DB prepossessing rate. The database ensures data atomicity, consistency, transaction isolation, and durability, we just cannot run multiple DB instances or replace it:

Adding a new Apache Ignite in-memory data grid layer to the existing N-tier architecture can improve the performance of the system many times over. The in-memory cluster can sit between the JVMs and the database. The JVMs/nodes will interact with the Ignite in-memory grid instead of the database, since the CRUD operations will be performed in-memory the performance will be way faster than direct database CRUDs. Data consistency, atomicity, isolation, and durability, and the transactional nature of operations, will be maintained by the Ignite cluster.

This new architectural style reduces the transaction time and system response time by moving the data closer to the application:

In Chapter 2, Understanding the Topologies and Caching Strategies, we will explore how to write code to interact with an in-memory data grid and then sync up data with a relational database.

主站蜘蛛池模板: 苍溪县| 纳雍县| 凤山市| 陇南市| 达日县| 平南县| 会泽县| 天水市| 菏泽市| 花莲县| 垦利县| 宁安市| 万安县| 成都市| 余庆县| 修水县| 佛冈县| 商水县| 罗山县| 青神县| 乾安县| 苏尼特左旗| 丹巴县| 和硕县| 双城市| 余姚市| 浦江县| 绩溪县| 左权县| 当雄县| 错那县| 台湾省| 泽普县| 腾冲县| 灵宝市| 铅山县| 江山市| 筠连县| 西丰县| 沁源县| 大田县|