-
-
Notifications
You must be signed in to change notification settings - Fork 215
Open
Labels
type: enhancementNew feature or requestNew feature or request
Description
Describe the feature
I'm considering changing the current database format to a duckdb database running the aix extension that provides several useful chess functions we can use.
https://github.com/duckdb/duckdb
https://github.com/thomas-daniels/aix
Why?
The main advantages would be:
- Easily and efficiently query multiple databases at the same time
- No need for manual indexing, duckdb is extremely efficient for the types of queries En Croissant runs
- Better space efficiency, in large part because of the above
- One file database (this used to be the case with En Croissant, but I recently introduced a new custom index file to reduce startup loading times)
- Built-in support for Scoutfish syntax for complex position queries (partial searches, maneuvers, material imbalance, etc.)
- Combining position filters with metadata filters. Our current setup does not allow us to do this very easily.
What's missing?
aixdoesn't yet have an optimized exact query function that matches the performance of the current setup. This is necessary because exact position searches are the most commonly used query and they need to be extremely fast for the opening explorer to feel responsive. (Exact FEN match thomas-daniels/aix#1)aixdoesn't support Chess 960 or games starting from a custom starting position- None of the move encodings provided by
aixsupport nested variations. They could be encoded in a column separate frommovedata, but we would have to consider on how exactly that should look like.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
type: enhancementNew feature or requestNew feature or request