lance-format / lance-format/lance

Bench: Lance point lookup vs LMDB

Open
#4,374 13 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
7.1k
Forks
852
Avg merge
3d 18h
Merged PRs (30d)
272

Description

Environment

Bench code

Code, designed by @ddupg.

The bench is ran on "memory://test.lance", which means all data is stored in memory.

Bench result

link

Simple Analysis

  1. As the batch size increases, the gap between Lance and LMDB narrows.
  2. With the increase in batch size and value size, version 2.1 shows a performance regression compared to version 2.0.

Future work

Recently, there has been a performance optimization(https://github.com/lancedb/lance/issues/4090) where Lance can benefit a lot in single-point lookup scenarios. I'm going to test it.

Related to https://github.com/lancedb/lance/issues/3983

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked benchmark code in ddupg/lance-perf-test and compare its Lance and LMDB point-lookup measurements under the stated memory-backed environment. Read the optimization described in issue #4090 and the related issue #3983, then rerun the benchmark to determine whether the reported performance gap and regression remain.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, rust
Domain
databases, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.