Skip to content

Commit f1fa4f7

Browse files
committed
feat: add in-memory.mdx
1 parent 66672af commit f1fa4f7

File tree

4 files changed

+128
-0
lines changed

4 files changed

+128
-0
lines changed

posts/etc/in-memory.mdx

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
---
2+
title: "In Memory Database vs In Memory Data Grid"
3+
date: "2020-05-23"
4+
tags: ["Etc"]
5+
summary: "Comparison of In Memory Database and In Memory Data Grid"
6+
description: "In Memory Database와 In Memory Data Grid에 대해서 알아보자."
7+
---
8+
9+
:::info
10+
In Memory Computing 기술에 대해서 알아보고, 흔히 혼용해서 사용하는 In Memory Database 와 In Memory Data Grid 에 대해서 정리해보자.
11+
:::
12+
13+
14+
---
15+
16+
### In Memory Computing
17+
18+
19+
`In Memory Computing` 기술은 2010년대 초반에 가장 큰 화두가 되었다. 사실 `In Memory Computing`은 2000년 초반에 도입 되긴 하였지만, <br/>
20+
비싼 메모리 가격과 전체 데이터를 메모리에 올려서 처리할 정도의 어플리케이션이 없었던 문제로 인해 큰 관심을 받지 못하였다.
21+
22+
<div style={{ textAlign: 'center' }}>
23+
<img src="/img/post/study/in-memory/tech.png" alt="tech" style={{ display: 'inline-block' }} />
24+
</div>
25+
26+
27+
하지만, Hard Disk의 입출력 속도가 상대적으로 느리게 발전하게 되면서 전체 컴퓨터 성능 향상 속도의 지연 요인이 되었고, 전체 컴퓨팅 속도 지역을 막기 위한 기술이 다시 주목 받게 되었다.
28+
또한, 메모리의 가격 떨어지면서 대부분의 서버에 대용량 메모리가 지원되었다. <br/>
29+
마지막으로 64bit OS 환경이 일반화가 되면서 Memory size 제약 사항이 소멸하여 데이터나 어플리케이션의 크기에 상관없이 메모리에서 처리가 가능해지면서 다시 관심을 받게 되었다. 더욱이, 2010년대 초반에 **Big Data**가 큰 화제가 되면서 방대한 양의 데이터를 빠르게 처리할 수 있는 기술들에 대해서 각광을 받았으며, 그 중 하나가 `In Memory Computing` 기술이다.
30+
31+
+ Hard Disk 입출력 속도가 느리게 발전
32+
+ Memory 가격의 지속적인 하락
33+
+ 64bit 컴퓨터의 보편화
34+
+ 익스트림 트랜잭션 처리 요구 증가
35+
36+
37+
:::note
38+
64bit OS에서는 2의 64승개의 주소를 표현할 수 있고, 이론상 16 Exa byte의 데이터를 메모리에 적재할 수 있다.
39+
:::
40+
41+
42+
`In Memory Computing`은 데이터를 하드디스크에 저장하고 관리하는 디스크 기반 컴퓨팅과는 다르게, **전체 데이터를 메모리에 적재하여 사용하는 것**이다.
43+
컴퓨팅 시스템의 공식 기록 시스템으로 하드디스크를 사용하는 것이 아니라, 메모리를 사용하는 것이고,
44+
데이터를 메모리에 보관, 처리하여 하드디스크에 데이터를 안전하게 보관하기 위해 사용하는 구조다.
45+
46+
:::note
47+
<b>In Memory Computing</b> 은 방대한 양의 데이터를 메모리에서 관리, 처리하여 데이터 처리 시간을 단축하고 데이터를 안전하게 보관한다.
48+
:::
49+
50+
51+
---
52+
53+
### In Memory Database
54+
55+
**In Memory Database** 는 메모리에 데이터를 저장하는 데이터베이스를 의미한다. 주 메모리를 이용해서 **Main Memory DBMS(MMDB)**라고도 한다.
56+
**휘발성** 이라는 단점이 있어서, 임시 데이터 저장 용도로 주로 사용된다.
57+
물론, DMBS의 속성 중 하나인 **Durability** 를 보장하기 위하여 메모리에 INSERT/UPDATE/DELETE 된 값들을
58+
모두 디스크에 로그로 기록하여 메모리에 DBMS 구조를 재구축하기도 한다.
59+
60+
<div style={{ textAlign: 'center' }}>
61+
<img src="/img/post/study/in-memory/imdb.jpg" alt="imdb" style={{ display: 'inline-block' }} />
62+
</div>
63+
64+
출처 : developedia
65+
66+
67+
:::note
68+
<b>In Memory Database</b>를 이용하여 <b>OLTP(Online Transaction Processing)</b> 및 <b>OLAP(Online Analytical Processing)</b> 을 향상 시킬 수 있다.
69+
:::
70+
71+
72+
+ 주요 제품
73+
- Amazon ElastiCache
74+
- Redis
75+
- Altibase
76+
- Kairos
77+
- SAP HANA
78+
- SunDB
79+
- TimesTen
80+
81+
---
82+
83+
### In Memory Data Grid
84+
85+
**In Memory Data Grid** 는 각각의 메모리를 공유하여 클러스터에서 동작하는 모든 애플리케이션들과 함께 사용할 수 있도록 하는 컴퓨터 클러스터를 의미한다.
86+
영구적으로 데이터 관리가 어려우며, 용량이 상대적으로 제한적이라는 **In Memory Database** 의 단점은 **In Memory Data Grid** 의 등장으로 극복되었고,
87+
현재는 대용량 고성능 데이터 저장소로 발전하였다.
88+
89+
<div style={{ textAlign: 'center' }}>
90+
<img src="/img/post/study/in-memory/imdg.jpg" alt="imdg" style={{ display: 'inline-block' }} />
91+
</div>
92+
93+
출처 : hazelcast
94+
95+
+ 특징
96+
- 여러 서버에 분산하여 데이터를 저장
97+
- 각 서버는 active 모드
98+
- key-value
99+
- 서버 확장성 용이
100+
- Lock, Transaction, Sharding
101+
- DBMS의 부하를 분산하여 병목 구간 해결 가능
102+
103+
104+
+ 주요 제품
105+
- Hazelcast
106+
- Terracotta Enterprise Suite
107+
- VMware Gemfire
108+
- Oracle Coherence
109+
- Gigaspaces XAP Elastic Caching Edition
110+
- IBM eXtreme Scale
111+
- JBoss Infinispan
112+
- GridGain Data Grid
113+
114+
115+
---
116+
117+
### In Memory Database vs In Memory Data Grid
118+
119+
IMDG와 IMDB는 기술적으로 상당히 차이가 있다.
120+
+ In Memory Database는 컬럼 스토리지에 최적화 되어 있다.
121+
+ In Memory Data Grid는 key-value 저장소를 JVM(Java Virtual Machine)에서 임베디드 오브젝트로 사용한다.
122+
123+
| 구분 | In Memory Data Grid | In Memory Database |
124+
|--|--|--|
125+
| Existing Application | Changed | Unchanged |
126+
| Existing RDBMS | Unchanged | Changed or Replaced |
127+
| Speed | Yes | Yes |
128+
| Scalability | Yes | No |
16.7 KB
Loading
20.7 KB
Loading
27.2 KB
Loading

0 commit comments

Comments
 (0)