Skip to content

Conversation

@JinHai-CN
Copy link
Contributor

What problem does this PR solve?

Update version info
In 0.7.0, json type and index will be supported. Mmap will be applied on secondary index / hnsw / data files.

Type of change

  • Documentation Update
  • Refactoring
  • Python SDK impacted, Need to update PyPI

zpf121 and others added 4 commits December 16, 2025 11:59
### What problem does this PR solve?

Environment:
```
Ubuntu 25.10
Clang-20/21
Gcc-15.2
```

The `simde` package will introduce error ` definition with same mangled
name ` because of the macro `SIMDE_FUNCTION_ATTRIBUTES` is defined as
`static`, which will lead to multiple definitions under c++ 23 modules.

Issue link:infiniflow#3166

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

---------

Co-authored-by: Ubuntu <[email protected]>
### What problem does this PR solve?

1. Remove all the code related to **BufferObj/BufferManager** and
refactor all FileWorker implementations.
- For FileWorker instances that contain a `char *` payload, we now
manage their loading state directly with **mmap** instead of using a
state machine + LRU.
- For other FileWorker types (curruntly only **HnswFIleWorker**), we
manage their loading state solely with an LRU cache.
2. Becauce the state-machine-based loading management has been
eliminated, we use the `tmp` and `data` directories to handle the part
of state.
- All data generated after previous checkpoint is mmapped into `tmp`.
- During a checkpoint we call `msync`, the copy the data from `tmp` to
`data`.
- This results in higher disk usage while the database is running, and
the copy operation creates a large amount of disk I/O, which can cause
background cleaning to fail (e.g., RocksDB read/write timeouts). To
mitigate the second issue, more frequent checkpoints may be required.
3. For **VersionFileWorker**, the payload is not a `char *`, but we
still manage it purely with `mmap`. This leads to sub-optimal
performance on certain code paths; the issue will be addressed in a
future fix.
4. Comment out all code related `snapshot` and wait for adaptation.
5. There are some bugs in the `show` command.

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
- [x] Breaking Change (fix or feature that could cause existing
functionality not to work as expected)
- [x] Refactoring
- [x] Performance Improvement
- [x] Test cases

---------

Signed-off-by: noob <[email protected]>
Co-authored-by: qinling0210 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci PR can be test

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants