안녕하세요?
샤딩의 잇점은 많은 분들이 알고계시지만 실제로 구현하는 것은 쉽지가 않은 기술입니다.
샤딩은 같은 테이블 구조를 가진 데이터를 다수의 데이터베이스에 분산하여 저장하는 방법을 의미합니다.
하나의 물리적인 Shard에 쿼리를 진행하여 효율적이고
하나의 Shard에 높은 데이터 직접도를 실현합니다.
사용자가 많아질수록 확장성이 좋아집니다.
하지만 프로그래밍, 운영적인 복잡도는 더 높아지는 단점이 있습니다.
블록체인 메인넷에 모두 샤딩을 적용하지 않는 이유는 여러가지 이유가 있겠지만
1.위에서도 언급한것처럼 구현의 어려움이 있습니다. 훨씬 복잡해지는 프로그래밍을 구현해야 하고 이것이 DB처럼 정적인 상태가 아닌 P2P상에서 구현을 해야하기 때문에 더 어렵습니다.
또한 샤딩에 대한 크게 6가지 정도의 해결해야하는 문제가 있다고 보고 있는데 그것은 Single-shard takeover attacks,
State transition execution,Fraud detection,Cross shard communication,The data availability problem,
Superquadratic sharding 입니다. 문제 하나하나가 큰 주제입니다.
3.우리 메인넷에 꼭 필요한지 여부입니다. 샤딩을 적용하면 속도와 확장성을 잡을 수 있지만 프라이빗 블록체인에서는 다른 접근으로 풀 수 있는 문제이므로 꼭 샤딩을 적용을 할 필요는 없습니다. 또한 우리의 비즈니스 모델이 엄청난 트랜잭션을 처리하고 단기간내에 확장성 문제가 생길 것 같은지 검토해야 합니다. 이런 요구사항이 없는데 기술적 구현이 용이하지 않은 샤딩을 즉시 적용해야 할 필요는 없겠지요.
감사합니다.