토쿠MX

TokuMX
토쿠MX
개발자토쿠텍
안정적 해제
2.0.0 / 2014년 9월 30일; 7년(2014-09-30)
리포지토리
유형데이터베이스
면허증GNU Affero 일반 공중 라이센스([1]버전 3)
웹사이트www.tokutek.com

TokuMXMongoDB[2] 오픈소스 분포로, 무엇보다도 기본 MongoDB 분포에서 발견되는 기본 B-트리 데이터 구조프랙탈 트리 지수로 대체한다.프랙탈 트리 인덱싱과 관련된 확장성 및 성능 향상을 제공하는 MongoDB(애플리케이션 "있는 그대로 실행")의 드롭인 교체다.또한 문서 레벨 잠금, AIDMVCC와의 거래 지원, 복제 최적화에 대한 지원도 추가하며, 전체 텍스트 검색은 지원하지 않는다.

TokuMX는 쓰기 집약적인 워크로드의 고성능을 위해 특별히 설계되었다.그것은 40년 된 B-트리 색인을 대체하고 캐쉬에 민감한 알고리즘을 기반으로 하는 [3]프랙탈 트리 색인을 사용하여 이를 달성한다.기억력 효율적인 시스템을 구축하기 위한 이러한 접근방식은 원래 매사추세츠 공과대학교,[4] 러트거스 대학교,[5] 뉴욕 주립 대학교(SUNY)의 연구원들이 공동으로 개발했다.[6]TokuMX는 MongoDB의 확장 가능한 AID 및 MVCC 호환 배포로, 인덱싱 기반 쿼리 개선, 온라인 스키마 수정, 하드 디스크 드라이브플래시 메모리 모두의 슬레이브 지연 감소 등을 제공한다.또한 MVCC와 AID 신뢰성이 있는 거래를 어떤 MongoDB 애플리케이션에도 추가해, 훨씬 더 광범위한 솔루션에 MongoDB가 적합하게 되었다.[7]

대부분의 TokuMX 소스 파일은 GNU Appero General Public License(AGPL)의 조건에 따라 사용할 수 있게 된다.TokuKV 프랙탈 트리 인덱싱 라이브러리는 GNU GPL(General Public License) 버전 2의 조건에 따라 사용할 수 있으며, 추가 특허 라이선스 부여가 가능하다.

B-tree

대부분의 관계형 데이터베이스는 질의 성능을 높이기 위해 색인을 사용한다.데이터베이스는 인덱스를 활용하여 쿼리에 응답하는 동안 검사하는 데이터의 양을 크게 줄일 수 있다.인덱스는 1970년에 처음 기술된 데이터 구조인 B-tree와 함께 일반적으로 구현된다.B-트리 데이터 구조는 데이터 삽입과 정렬된 순서 반복과 같은 작업을 허용하는데, 이는 색인에 의해 사용되는 기본 연산이다.작업 부하 및 구현에 따라 Disk의 랜덤 I/O 특성에 의해 B-tree 성능이 제한될 수 있다.또한 새로 로드된 데이터베이스는 순차적 동작이 좋은 경향이 있지만, 데이터베이스가 커질수록 이러한 동작을 유지하기가 점점 어려워져 랜덤 I/O 및 성능 문제가 더 많이 발생한다.

빅데이터의 등장과 21세기의 데이터베이스 수요 증가와 함께 50년 된 B-트리 인덱싱의 한계를 극복하기 위해 많은 틈새 데이터베이스가 만들어졌다.여기에는 읽기에 최적화된 데이터베이스, 쓰기에 최적화된 데이터베이스 및 좁은 문제 세트를 위해 설계된 일련의 기타 특수 목적 데이터베이스가 포함된다.[8]

프랙탈 트리 인덱스

개요

프랙탈 트리 인덱싱 기술은 B-tree를 대체하는 새로운 인덱싱 접근법이다.

프랙탈 트리 인덱스는 B 트리와 동일한 연산을 구현하므로 B 트리를 위한 드롭인 대체품이다.프랙탈 트리 인덱스는 작고 빈번한 쓰기를 더 크고 덜 빈번한 쓰기로 효과적으로 대체하여 압축 및 삽입 성능을 향상시킬 수 있다.[9][10]프랙탈 트리스는 또한 칼럼을 추가하거나 떨어뜨리거나 색인을 추가하는 등의 스키마 변경을 온라인과 백그라운드에서 할 수 있도록 메시지를 트리에 주입하는 것을 허용한다.[11]이에 따라 실적 하락 없이 더 많은 지수를 유지할 수 있게 됐다.데이터를 인덱스에 추가하면 B-tree의 성능을 강조하는 경향이 있지만 프랙탈 트리 인덱스에서는 좋은 성능을 발휘하기 때문이다.[12]프랙탈 트리 색인을 수정해도 데이터베이스 파일이 단편화되지 않으므로, 컴팩트한 파일에 대한 정기적인 유지관리가 필요하지 않다.[13]

사용하다

프랙탈 트리 인덱스는 스트리밍 데이터의 실시간에 가까운 분석이 특징인 다수의 애플리케이션에 적용할 수 있다.그것들은 데이터베이스의 스토리지 계층 또는 파일 시스템의 스토리지 계층으로 사용될 수 있다.데이터베이스에서 사용할 경우 성능 향상과 함께 B-트리가 사용되는 모든 설정에서 사용할 수 있다.예로는 네트워크 이벤트 관리, 온라인 광고 네트워크, 웹 2.0 및 클릭스트림 분석, 항공 교통 관제 관리 등이 있다.[14]다른 용도로는 소셜 미디어 사이트의 검색 엔진에 대한 가속 크롤러 성능을 포함한다.또한 인덱스 및 컬럼을 온라인으로 작성하는 데도 사용할 수 있어 전자상거래 개인화를 위한 질의 유연성이 가능하다.또한 트랜잭션 웹 사이트의 성능 향상 및 기존 부하 감소에도 적합하다.일반적으로 로그 파일 데이터를 동시에 저장하고 임시 쿼리를 실행해야 하는 애플리케이션에서 우수한 성능을 발휘한다.

참고 항목

참조

  1. ^ "TokuMX README". Retrieved 2014-03-19.
  2. ^ "TokuMX – High-Performance MongoDB Distribution". Tokutek. Retrieved 2014-03-10.
  3. ^ "How TokuDB Fractal Tree Databases Work". O'Reilly. Retrieved 2011-01-17.
  4. ^ "Cache-Oblivious Search Trees Project". Massachusetts Institute of Technology. Retrieved 2011-01-17.
  5. ^ "Cache-Oblivious B-trees" (PDF). Rutgers University. Retrieved 2011-01-17.
  6. ^ "Cache Oblivious B-trees". State University of New York (SUNY) at Stony Brook. Retrieved 2011-01-17.
  7. ^ "TokuMX is MongoDB on steroids". Percona. Retrieved 2014-04-30.
  8. ^ "Cache Oblivious B-trees". State University of New York (SUNY) at Stony Brook. Retrieved 2011-01-17.
  9. ^ "TokuMX VS MongoDB Bake Off Based on a Primary AOL Use case" (PDF). Meetup / AOL. Retrieved 2014-04-30.
  10. ^ "Insert benchmark for InnoDB, MongoDB and TokuMX and flash storage". Retrieved 2014-04-30.
  11. ^ "Covering Indexes: Orders-of-Magnitude Improvements" (PDF). Percona. Retrieved 2011-01-17.
  12. ^ "Detailed review of Tokutek storage engine". Percona. Retrieved 2012-02-22.
  13. ^ "NoSQL Battle of the East Coast - Benchmarking MongoDB vs TokuMX Cluster". SeveralNines. Retrieved 2014-04-30.
  14. ^ "Air traffic queries in MyISAM and Tokutek (TokuDB)". MySQL Performance Blog. Retrieved 2011-01-17.

외부 링크