Database sharding
- 하나의 거대한 데이터베이스 테이블을 수평 분할(Horizontal Partitioning)하여 여러 개의 작은 단위로 나눈 후, 물리적으로 다른 위치에 분산하여 저장·관리하는 기술
- 수평 분할된 1개의 작은 테이블을 샤드(Shard)라고 하는데, 이 샤드를 여러 분산 서버에 분산시킴
Sharding의 장점
- 처리 속도 향상 : 초당 트랜잭션 수를 크게 늘려 DB쿼리 응답시간 개선
- 비용 절감 : 원래 데이터베이스는 고사양의 컴퓨터가 필요한데, 데이터 샤드는 여러 서버에 분산할 수 있어서 유지비용이 저렴하고 HW,SW 요구사항 제한이 거의 없음
- 보안 강화 : 사용자별로 특정 데이터 영역에 대해 좀 더 세분화된 접근통제 가능
Sharding의 문제점
- 가용성 : 특정 지점에서 샤드가 오프라인 상태가 되면, 시스템 상태가 모든 샤드에 복제되지 않음
- 거래 검증 : 샤딩을 사용하면 잠재적으로 나쁜 행위자가 입력은 같지만 출력은 다른 두 개의 입력으로 추가 트랜잭션을 만들어 이중 지출 트랜잭션을 만들 수 있는 가능성이 있음
- 크로스 샤드 통신 : 판매자가 트랜잭션을 생성하면, 개별 샤드에서 거래가 확인되고, 남은 고객 잔액에 대한 정보는 반드시 샤드와 공유해야 함. 서로 다른 샤드가 두 계정을 처리하는 경우, 빈번한 크로스 샤드 통신 및 상태 교환이 필요하므로 성능이 저하될 수 있음
※ 출처
https://jibrel.network/ko/blog/blockchain/sharding/
'Security & IT terms' 카테고리의 다른 글
[Day 126] EDR(Endpoint Detection and Response) (0) | 2020.12.14 |
---|---|
[Day 125] 정보공유분석센터(Information Sharing & Analysis Center) (0) | 2020.12.13 |
[Day 34] Race Condition Attack (0) | 2020.09.13 |
[Day 26] DML, DDL, DCL, TCL (0) | 2020.09.05 |
[Day 25] SAC(Server Access Control or System Access Control) (0) | 2020.09.04 |