LSM Tree는 많은 비 -sql 엔진에서 성공적으로 사용되었습니다. 데이터는 해싱 테이블과 같은 키별로 정렬되어 kv 저장소를 넘어 많은 잠재적 인 사용을 가능하게합니다. 예를 들어, 시계열 데이터베이스 (TSDB)는 레벨 DB를 엔진으로 사용하는 것이 적합 할 수 있습니다. 전통적인 RDBMS와 많은 테이블 시스템은 어떨까요? 데이터 엔진과 같은 LSM-tree도 잘 맞습니까?LevelDB와 같은 LSM 트리를 RDBMS의 스토리지 엔진으로 사용
1
A
답변
1
경우 일 수 있습니다. leveldb의 강점 (즉, 빠른 순차 읽기)을 이용하는 방식으로 색인을 설계한다면 잘 작동 할 것입니다.
실제로 leveldb (linqdb) 위에 작은 관계형 데이터베이스를 작성했습니다. 여기서 색인은 키 - 값으로 저장된 열의 값만 정렬됩니다. 내 연구 결과는 이러한 구조를 쿼리하는 것이 sqlite의 인덱싱 된 열 (약 40 % 느린)만큼 빠르지는 않지만 큰 차이로 성능이 뛰어나다는 것입니다.
물론 쿼리 속도에는 여러 가지 요소가 있습니다. LSM은 글쓰기에서 가장 빛나는 기본 데이터 구조입니다.
사실 here
추가 정보를 원하시면, 우리는 테이블 시스템을 구축,하지만 읽거나 일괄 쓰기는 일반적인 사용 사례가 될 수있다 위해 노력하고 있습니다. 현재 우리는 메모리 내 해시 인덱스를 사용하고 있지만 범위 쿼리와 정렬 된 쿼리를 지원하지 않습니다. 나는 많은 양의 메모리와 그 키를 저장하지 않기 때문에 LSM을보고있다. –
@bugs king LSM은 디스크 (merge sort로 작성된 데이터의 큰 덩어리)에 가장 잘 맞습니다. 따라서 메모리 인덱스가 – ren
인 가장 좋은 점은 실제로는 lsm-tree 기반의 개발중인 mysql입니다. myrocks라고하지만 성능 및 대기 시간에 대한 통찰력에 대한 리소스가 부족합니다. –