레벨 DB
LevelDB개발자 | Jeffrey Dean, Sanjay Ghemawat, Google Inc. |
---|---|
안정된 릴리스 | 1.23[1] / 2021년 2월 23일; 전 ( |
저장소 | |
기입처 | C++ |
크기 | 350kB(2진수 크기) |
유형 | 데이터베이스 라이브러리 |
면허증. | 새로운 BSD 라이선스 |
웹 사이트 | github |
LevelDB는 구글 펠로우 Jeffrey Dean과 Sanjay Ghemawat이 [2][3]작성한 오픈소스 온디스크 키 가치 스토어입니다.Bigtable에서 [4]영감을 받아 LevelDB는 New BSD License의 GitHub에서 호스팅되며 다양한 Unix 기반 시스템, macOS, Windows 및 [5]Android로 이식되었습니다.
특징들
LevelDB는 임의의 바이트 배열에 키와 값을 저장하고 데이터는 키별로 정렬됩니다.Google의 Snappy 압축 라이브러리를 통한 데이터의 일괄 쓰기, 정방향 및 역방향 반복 및 압축을 지원합니다.
LevelDB가 SQL 데이터베이스가 아닙니다.다른 NoSQL 및 dbm 스토어와 마찬가지로 관계형 데이터 모델이 없으며 SQL 쿼리를 지원하지 않습니다.또한 인덱스를 지원하지 않습니다.LevelDB는 서버 또는 명령줄 인터페이스를 제공하지 않으므로 응용 프로그램은 라이브러리로 사용합니다.
MariaDB 10.0에는 사용자가 MariaDB에서 [6]LevelDB 테이블을 쿼리할 수 있는 스토리지 엔진이 포함되어 있습니다.
역사
LevelDB는 구글의 Bigtable 데이터베이스 시스템의 개념을 기반으로 합니다.Bigtable 시스템용 테이블 구현은 2004년경부터 개발되었으며, LevelDB 코드와는 다른 구글 내부 코드 베이스에 기반하고 있습니다.그 코드 베이스는 오픈 소스 자체가 아닌 많은 구글 코드 라이브러리에 의존하고 있기 때문에 그 코드를 직접 오픈 소싱하는 것은 어려웠을 것이다.Jeff Dean과 Sanjay Ghemawat은 최소한의 의존성을 가지고 오픈 소싱에 적합하며 또한 Chrome for the Indexed에서 사용하기에 적합한 Bigtable 태블릿 스택과 유사한 시스템을 만들고 싶어했습니다.DB의 실장.그들은 2011년 초에 Bigtable 태블릿 스택과 같은 일반적인 디자인을 가지고 LevelDB를 작성했지만 코드를 [7]공유하지는 않았다.
사용.
LevelDB는 Google Chrome의 IndexedDB 백엔드 데이터베이스로 사용되며 [8]Riak에서 지원되는 백엔드 중 하나입니다.또한 Bitcoin Core와 go-ethereum은 LevelDB 데이터베이스를 [9]사용하여 블록체인 메타데이터를 저장합니다.Minecraft Bedrock Edition은 청크 및 엔티티 데이터 [10]스토리지에 수정된 버전을 사용합니다.또한 Autodesk AutoCAD 2016은 LevelDB를 사용합니다.
성능
Google은 다양한 [11]시나리오에서 SQLite 및 Kyoto 캐비닛과 LevelDB의 성능을 비교하는 벤치마크를 제공하고 있습니다.LevelDB는 쓰기 작업 및 순차 읽기 작업 모두에서 SQLite 및 Kyoto 캐비닛을 능가합니다.LevelDB는 배치 쓰기도 뛰어나지만 큰 값을 처리할 때는 SQLite보다 느립니다.이전 [12]버전의 결과에서 SQLite 구성 오류가 발견된 후 현재 공개된 벤치마크가 업데이트되었습니다.업데이트된 벤치마크에서는[13] LevelDB가 Berkeley DB를 능가하는 성능을 보여주지만, 이러한 테스트에서는 OpenLDAP LightningDB가 읽기 작업과 일부 쓰기 유형(예: 배치 및 동기 쓰기, 위의 링크 참조)에서 훨씬 빠른 속도(시나리오에 따라서는 최대 10배)를 나타내며, 나머지 테스트에서는 거의 동일합니다.
위의 모든 벤치마크는 2011년부터 2014년까지 거슬러 올라가며 SQLite의 효율성이 [14]크게 향상되었기 때문에 역사적 의미가 있을 수 있습니다.
버그와 신뢰성
LevelDB에는 데이터베이스 파손 [15][16][17][18][19][20]버그가 있습니다.2014년의 연구에 따르면 오래된(체크섬이 없는) 파일 시스템에서는 크래시 또는 전원 [21]장애 후에 데이터베이스가 손상될 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Release 1.23". 23 February 2021. Retrieved 13 March 2021.
- ^ "Google Research Scientists and Engineers: Jeffrey Dean". Google, Inc.
- ^ "Research Scientists and Engineers: Sanjay Ghemawat". Google, Inc.
- ^ "Google Open-Sources NoSQL Database Called LevelDB". ReadWriteWeb. July 30, 2011. Archived from the original on August 16, 2011. Retrieved July 30, 2011.
- ^ "Google Open Source Blog: LevelDB: A Fast Persistent Key-Value Store". Google, Inc.
- ^ LevelDB 스토리지 엔진
- ^ Jeff Dean. "LevelDB mailing list: "Current Status of LevelDB"".
- ^ 레벨 DBDocs.basho.com 를 참조해 주세요.2013-09-18에 회수.
- ^ Andreas M. Antonopoulos. "Chapter 7. The Blockchain". Retrieved 8 January 2015.
- ^ "Bedrock Edition level format".
- ^ "LevelDB Benchmarks". Google, Inc. Archived from the original on 2011-08-20.
- ^ "LevelDB Benchmark discussion".
- ^ Database Microbenchmarks 2014-08-09년 Symas Corp., 2012-09년 Wayback Machine에서 아카이브되었습니다.2016년 10월 22일 취득
- ^ https://www.sqlite.org/cpu.html.
{{cite web}}
:누락 또는 비어 있음title=
(도움말) - ^ Level DB 복구
- ^ 문제 · google / leveldb · GitHub
- ^ 크롬의 회복 불가능한 손상
- ^ 동기화 손상
- ^ 정전 후 파손
- ^ Ethernet의 파손
- ^ All File Systems Are Not Created Equal: On the Complexity of Crafting Crash-Consistent Applications. 2014. pp. 433–448. ISBN 9781931971164.