빅데이터가 다양한 가치를 만들어내기 시작하면서, 더 다양하면서도 막대한 량의 데이터를 수용할 수 있는 데이터베이스가 필요하게 되었다. 그래서 기존 RDBMS의 복잡도와 용량 한계를 극복하기 위한 목적으로 NoSQL 데이터베이스가 등장하게 되었고, 그 중 대표적으로 MongoDB가 많이 사용되며, 오픈 소스로 제공되고 있다. MongoDB에서 사용되는 B-트리 인덱스는 데이터양이 증가함에 따라 그 성능이 현저히 떨어진다. Fractal 트리 인덱스는 B-트리의 삽입 알고리즘을 개선하여 상당한 성능향상을 가능하게 한다. 이 논문에서는 MongoDB에서 B-트리 인덱스를 사용하는 경우와 Fractal 트리 인덱스를 사용하는 경우를 구별하여 그 성능을 비교해 본다.
빅데이터가 다양한 가치를 만들어내기 시작하면서, 더 다양하면서도 막대한 량의 데이터를 수용할 수 있는 데이터베이스가 필요하게 되었다. 그래서 기존 RDBMS의 복잡도와 용량 한계를 극복하기 위한 목적으로 NoSQL 데이터베이스가 등장하게 되었고, 그 중 대표적으로 MongoDB가 많이 사용되며, 오픈 소스로 제공되고 있다. MongoDB에서 사용되는 B-트리 인덱스는 데이터양이 증가함에 따라 그 성능이 현저히 떨어진다. Fractal 트리 인덱스는 B-트리의 삽입 알고리즘을 개선하여 상당한 성능향상을 가능하게 한다. 이 논문에서는 MongoDB에서 B-트리 인덱스를 사용하는 경우와 Fractal 트리 인덱스를 사용하는 경우를 구별하여 그 성능을 비교해 본다.
As Big data began to produce a variety of values, a database that allows for huge amount of data with varieties became to be needed. Therefore, for the purpose of overcoming the limitations of the complexity and capacity of the existing RDBMS, NoSQL databases were introduced. Among the different typ...
As Big data began to produce a variety of values, a database that allows for huge amount of data with varieties became to be needed. Therefore, for the purpose of overcoming the limitations of the complexity and capacity of the existing RDBMS, NoSQL databases were introduced. Among the different types of NoSQL databases, MongoDB is most commonly used and is offered as open sources. The B-Tree index, used in MongoDB, experiences a significant decrease in performance as the amount of data increases. The fractal tree index enables to enhance the performance of B-Tree substantially by improving B-Tree's insertion algorithm. In this paper, the performances of MongoDB when using B-Tree Index and when using Fractal Tree Index are compared.
As Big data began to produce a variety of values, a database that allows for huge amount of data with varieties became to be needed. Therefore, for the purpose of overcoming the limitations of the complexity and capacity of the existing RDBMS, NoSQL databases were introduced. Among the different types of NoSQL databases, MongoDB is most commonly used and is offered as open sources. The B-Tree index, used in MongoDB, experiences a significant decrease in performance as the amount of data increases. The fractal tree index enables to enhance the performance of B-Tree substantially by improving B-Tree's insertion algorithm. In this paper, the performances of MongoDB when using B-Tree Index and when using Fractal Tree Index are compared.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 대표적인 NoSQL인 MongoDB를 이용하여, B-트리 인덱스를 사용하였을 때와 Fractal 트리 인덱스를 사용하였을 때의 성능을 비교해 보기 위해 두 종류의 실험을 수행하였다.
B-트리 인덱스 구조는 데이터양이 증가할수록 연산 속도가 현저히 떨어지게 되는데, MongoDB의 B-트리 인덱스를 Fractal 트리 인덱스로 대치하여 그 성능을 현저하게 개선한 사례를 발표하였다[1]. 이 논문에서는 MongoDB에서 B-트리 인덱스를 사용하는 경우와 Fractal 트리 인덱스를 사용하는 경우를 구별하여 그 성능을 실험을 통하여 다시 비교 분석해 보고자 한다.
가설 설정
이제 Fractal-트리 인덱스를 설명하기 위해 데이터 크기로 N개의 행들이 있다고 가정하자. 이경우 Fractal-트리 인덱스는 log2N개의 배열을 준비한다.
제안 방법
실험1에서는 삽입 연산 속도를 측정한다. B-트리 인덱스와 Fractal 인덱스를 적용하였을 때의 속도를 비교하여 본다. 하나의 스레드를 생성하여 삽입 연산을 수행한다.
MongoDB에서 B-트리 인덱스를 사용하였을 때와 Fractal 인덱스를 사용하였을 때의 삽입 속도, 삽입과 검색을 병행했을 때의 처리 속도에 대한성능을 비교해 보기 위해 실험을 수행한다.
범위검색은 매 60초 마다 수행하는데, 랜덤 정수 (N)를 생성하여, 이 값과 같거나 큰 (NO >= N) 문서를 1,000개 검색하는 범위 검색을 수행하고, 걸린 시간을 측정한다.
실험1에서는 문서 삽입 성능만을 비교하고, 실험2에서는 문서 삽입과 검색을 병행한 성능을 비교하였다. 실험1에서는 Fractal 트리 인덱스를 적용하였을 때 약 1,989%의 향상된 성능을 보였다.
실험1에서는 삽입 연산 속도를 측정한다. B-트리 인덱스와 Fractal 인덱스를 적용하였을 때의 속도를 비교하여 본다.
대상 데이터
범위검색은 매 60초 마다 수행하는데, 랜덤 정수 (N)를 생성하여, 이 값과 같거나 큰 (NO >= N) 문서를 1,000개 검색하는 범위 검색을 수행하고, 걸린 시간을 측정한다. 문서 삽입 쓰레드는 5,000만 건의 문서를 삽입하고 종료한다. 범위 검색 쓰레드는 삽입이 종료될 때까지 수행한다.
사람들은 매일 250경 바이트의 데이터를 생성하고 있으며, 지난 2년 동안에만 현재 전 세계에 존재하는 데이터의 90%에 달하는 방대한 데이터들이 생성되었다. 이렇게 기존 데이터베이스 관리 도구로 데이터를 수집, 저장, 관리, 분석할 수 있는 역량을 넘어서는 대량의 정형 또는 비정형 데이터들을 관리하기 위한 기술로 NoSQL이 등장했다.
그래프를 보면 삽입 성능이 확연 하게 차이가 난다는 것을 알 수 있다. 실험1에서, B-트리 인덱스는 초당 평균 536건의 문서를 삽입 하였고, Fractal 트리 인덱스는 초당 평균 11,196건의 문서를 삽입하였다. 결과적으로 Fractal 트리 인덱스를 적용하였을 때, 약 1,989%의 향상된 성능을 보였다.
실험2의 삽입 실험에서, B-트리 인덱스는 초당 평균 1,496건의 문서를 삽입하였고, Fractal 트리 인덱스는 8,045건의 문서를 삽입하였다(그림 5). 삽입 연산과 검색 연산이 동시 병행되어 이루어지기 때문에 초당 문서 삽입 속도가 실험1보다 떨어지는 것을 알 수 있다.
성능/효과
B-트리 인덱스는 데이터양이 증가할수록 연산 속도가 현저히 떨어지게 되는데, Fractal 트리 인덱스를 사용하면 데이터양이 매우 증가하더라도그 성능이 조금 떨어지지만 B-트리 인덱스의 성능과 비교하면 매우 우수함을 확인하였다. 이전에 발표한 성능 측정 비교 결과와 이 연구의 결과로, Fractal 트리 인덱스를 빅데이터용 데이터베이스에서 도입할 가치가 있는 인덱스 구조라는 것을 확인할 수 있다.
실험1에서, B-트리 인덱스는 초당 평균 536건의 문서를 삽입 하였고, Fractal 트리 인덱스는 초당 평균 11,196건의 문서를 삽입하였다. 결과적으로 Fractal 트리 인덱스를 적용하였을 때, 약 1,989%의 향상된 성능을 보였다.
B-트리 인덱스는 1,000 개의 문서를 검색하는데 평균 32,212ms가 걸렸고, Fractal 트리 인덱스는 평균 222ms가 걸렸다(그림 6). 결과적으로 Fractal 트리를 이용하였을 때, 약 14,409%의 향상된 성능을 보였다.
삽입 연산과 검색 연산이 동시 병행되어 이루어지기 때문에 초당 문서 삽입 속도가 실험1보다 떨어지는 것을 알 수 있다. 결과적으로 Fractal 트리를 이용하였을 때, 약 438%의 향상된 성능을 보였다.
실험1에서는 문서 삽입 성능만을 비교하고, 실험2에서는 문서 삽입과 검색을 병행한 성능을 비교하였다. 실험1에서는 Fractal 트리 인덱스를 적용하였을 때 약 1,989%의 향상된 성능을 보였다. 실험2에서도 역시 Fractal 트리 인덱스에서 삽입 연산에서 약438%, 범위 검색에서 약 14,409%의 성능 향상을 보였다.
실험1에서는 Fractal 트리 인덱스를 적용하였을 때 약 1,989%의 향상된 성능을 보였다. 실험2에서도 역시 Fractal 트리 인덱스에서 삽입 연산에서 약438%, 범위 검색에서 약 14,409%의 성능 향상을 보였다.
B-트리 인덱스는 데이터양이 증가할수록 연산 속도가 현저히 떨어지게 되는데, Fractal 트리 인덱스를 사용하면 데이터양이 매우 증가하더라도그 성능이 조금 떨어지지만 B-트리 인덱스의 성능과 비교하면 매우 우수함을 확인하였다. 이전에 발표한 성능 측정 비교 결과와 이 연구의 결과로, Fractal 트리 인덱스를 빅데이터용 데이터베이스에서 도입할 가치가 있는 인덱스 구조라는 것을 확인할 수 있다.
후속연구
빅데이터를 잘 활용하기 위해서는 이를 처리하는 데이터베이스의 성능이 매우 중요하다. 빅데이터를 위한 데이터베이스가 매우 많이 출시되고 있는 시점에 기존의 인덱스 성능을 향상한 새로운 인덱스의 출현이 빅데이터 처리를 더 용이하게 할 것이라 기대한다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.