B 트리 계열 자료구조의 진짜 경쟁 상대는 트라이 기반 구조임. 버스트 트라이, 최적화된 q-fast·p-fast 트라이, 레벨 압축·버킷형·경로 압축 트라이 등이 있고, 키 길이가 허용한다면 최적화된 계층형 트리인 van Emde Boas 구현도 해당함.
정수·부동소수점·문자열 등은 사전식 순서를 활용하는 구조로 처리할 수 있어, 전적으로 비교에 의존하는 구조가 필요한 경우는 드묾. 특히 트라이는 비현실적인 균등 무작위 데이터에서 로그의 로그 시간 복잡도로 대단히 잘 작동함. 그래서 가장 빠르다는 표현에는 회의적이지만, B 트리는 훌륭하고 이번 작업도 멋짐.
동적인 웹 논문 형식은 교육용 해설에는 좋지만, 여기서는 발명 자체를 읽는 만큼이나 동적 요소를 건너뛰고 사람이 쓴 흔적을 찾는 데 시간을 쓰게 됨. 다행히 그런 흔적은 충분하며, 구성은 다소 기계적이어도 최소한 사람이 문장을 교정한 것으로 보임.
/usr/share/dict/words를 키로, 사전 내 오프셋을 값으로 쓰는 맵에서는 std::collections::BtreeMap보다 RAM을 일관되게 40% 더 사용함. 메모리 사용량이 적다는 주장은 정수에 한정됐으므로, 반박보다는 추가 측정치로 보면 됨.
작성자임. 인라인 키는 모든 종류의 정수와 문자열에 적용되며, 직접 인라인 접두부를 구현할 수 있도록 InlineKey 트레이트도 공개함.
체크리스트는 완료 표시를 잊었을 뿐 모두 구현된 상태임. 해당 항목이 bbtree와 무슨 관련인지 잘 모르겠지만, 표시를 빠뜨린 건 분명한 잘못임.
비슷한 분야를 작업하면서 인트린식과 캐시 라인에 훨씬 적극적으로 집중하고, DRAM을 비동기 블록 장치처럼 다뤄야 한다고 계속 강조해 왔음. 그런데 캐시 일관성 유지 트래픽의 영향을 보여줄 생각은 왜 못 했는지 모르겠음!
시간이 나면 내 기법 몇 가지를 bbtree에 적용해 보고 싶음. 그때 연락할 수 있도록 개인 메시지를 보내주면 좋겠음. https://news.ycombinator.com/item?id=50218616
“형식 검증, 모델 검사, 결정론적 시뮬레이션, 퍼징, 다량의 테스트로 실서비스에 투입할 준비를 마쳤다”고 하는데, 여기서 모델 검사는 무엇을 뜻하나요?
제목과 본문을 읽으면서 젊은 사람, 아마 학생일 것 같다는 느낌이 들었음. 이런 배경을 갖고도 “가장 빠르다”처럼 비과학적인 표현을 쓴다는 게 역설적임. https://xiangpeng.systems/를 보면, 결국 마케팅이나 구직용 홍보에 가까워 보임.
특정 분야에 맞춰 이보다 빠른 맞춤형 B 트리를 만든 사람이 있고, 성능에 기여하는 핵심 기법 일부나 전부도 이미 썼을 거라고 거의 확신함. 특히 프리페칭을 내세울 것 같은데, 이를 사용하는 비공개 구현을 직접 알고 있음.
좀 더 겸손했으면 좋겠음. 자기 잠재력부터 LLM 아래라고 단정해 버리면 더 성장할 이유가 어디 있겠는가? 다음 주에 나올 최첨단 모델이 이 사람이 만든 잠깐 유용한 프로젝트를 능가할 테니, 성장 자체가 불가능하고 무의미하다는 논리인가?
코드를 직접 살펴보면 쉽게 반증할 수 있는 단정임. 코드는 한결같이 끔찍하며, 코드를 읽지 않는 사람만 할 수 있는 말임.
웹사이트 첫 절만 읽어도 AI가 양산한 저질 콘텐츠라는 느낌이 듦. 맨 위 인용문은 본문과 아무 관련도 없어서 우습기도 하고 거슬리기도 함.
Dip에서는 묶음 요청으로 받은 작업의 중복을 제거하는 스마트 배치 처리를 사용하며, 전처리의 “scatter” 단계에서 BTreeMap으로 중복을 제거함.
요청 하나에 20만 건 이상을 삽입하는 대량 쓰기 작업 대부분에서 이 중복 제거가 가장 느린 단계임. 작업 분배, DB 쓰기, 커밋, 결과 수집을 모두 합친 시간보다 최대 3배까지 오래 걸리기도 함. Bbtree로 바꿔서 어떤지 시험해 볼 예정임.