샤딩이라는 기술은 어떤식으로 확장성 문제를 해결하는건가요 ?
샤딩이라는 기술을 알게되었습니다.
블록체인의 확장성 문제를 해결하기 위해 네트워크 사딩이라는 기술을 구현한다고 하는데...
이 샤딩이라는 기술이 어떤한 방법 형태로 확장성을 해결하게 되는건가요?
안녕하세요 질문자님
먼저 샤딩에 대해 설명드리겠습니다.
샤딩 : 한 곳에 저장되어 있는 데이터를 여러가지 샤드로 수평분할한 데이터 베이트 테이블에 중복저장하는 기술
블록체인 기술을 실현할 때 많은 사람들이 트랜잭션 처리 속도에 대한 중요성에 대해서 말하곤 합니다. 보통 TPS(초당 처리속도)를 말하며 초당 얼마만큼의 트랜잭션을 일으킬 수 있는 지에 대해 많은 암호화폐들이 강조하고 있으며, 비트코인과 이더리움의 확장성 문제를 해결하기 위한 방법으로 샤딩의 기술을 이용한 TPS를 높인 암호화폐들이 나오고 있습니다.
블록체인 상에서 샤드(노드)를 나뉘어 분할한 뒤 각 샤드에 거래를 수행할 수 있게 병렬처리하여 확장성을 문제를 해결할 수 있습니다. 직렬이 아닌 병렬 방식을 택함으로써 확장성의 문제를 해결할 수 있는 것 입니다.
예를 들어 , 10개의 트랜잭션이 발생했을 시 샤드를 5개로 나뉘어 2개씩의 트랜잭션을 처리할 수 있도록 하면 확장성의 문제, 처리속도의 문제를 해결할 수 있습니다.
이렇기 때문에 현재 블록체인에서 가장 확장성의 문제를 해결할 수 있는 좋은 방법으로 샤딩기술을 말하고 있습니다.
질문에 도움이되셨길 바랍니다.
샤딩은 데이터베이스 기술입니다. 하나의 데이터를 여러개에 분산하여 저장하는데 이 분산된 저장소를 shard라고 부릅니다.
따라서 하나의 저장소에 부하가 몰리는 것을 막을수 있습니다. 예를 들어 저장소가 하나이고 만명이 몰리는 경우를 만개의 shard를 두어서 데이터를 분산하면
하나의 shard에는 1/10,000만큼의 시간동안만 접근하면 되기때문에 적어도 데이터를 읽는 측면에서는 기존보다 빠른 속도를 보장할수 있습니다.
반대로 하나의 저장소에 만개의 데이터를 저장하는것도 shard에 나누어 저장하는 것이 훨씬 빠른 읽기를 보장합니다.
결국 확장이란 측면에서 하나의 서버에 하나의 데이터베이스는 한곳으로 집중되는 문제가 있으니 이를 나누어서 확장하겠단 개념입니다.