apple / apple/foundationdb

The multi-threaded client cannot use multiple threads with the same cluster file using go bindings

Open
#6,498 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.