The multi-threaded client cannot use multiple threads with the same cluster file using go bindings
- Dominant language
- C++
- Stars
- 16.7k
- Forks
- 1.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 126
Description
The go bindings cache db objects by cluster file path. In order to make effective use of the multi-threaded client, you need at least as many db objects as you have threads. You can't get more than one db object for a cluster file path in the go bindings currently.
You can make copies of your cluster file path, but there's no (convenient) way to use the multi-threaded client with the go bindings.
It looks like the python bindings also have a similar problem (fdb.create_database isn't documented so I assume it's meant to be private). We should check if any other bindings have this problem too.
Contributor guide
Research direction
Start by tracing how the Go bindings cache database objects by cluster file path, then inspect the Python fdb.create_database entry point and compare the behavior of other bindings. Done means the affected bindings have a clear, supported way to obtain multiple database objects for one cluster file path when using the multi-threaded client.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, python
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100