Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exchange network backend from Gsocket to libfabric #124

Open
wants to merge 61 commits into
base: master
Choose a base branch
from

Conversation

JBenda
Copy link
Contributor

@JBenda JBenda commented Oct 28, 2021

gains:

  • utilization of infinyband and other communication routs
  • TCP performance is similar
  • utilization of rdma

JBenda added 30 commits October 29, 2021 13:25
* start implementing jfabric functions
test case assumed communication via GSocket, we need to redesign this
test to work with the new api
* fixes bufnr usage
* proper shutdown behavior
* offset hack for 0 based address
* tcp connections have default request key
* tcp memory reads are identified via key and not address!
@michaelkuhn
Copy link
Member

Could you please rebase this to current master? There are quite a few conflicts. It seems the PR includes the (already merged) port changes as well, so those should be dropped.

@JBenda JBenda force-pushed the feature/add_libfabirc branch from 7bdfa9d to 919ff5c Compare October 31, 2021 12:12
sudo pip3 install meson
sudo apt --yes --no-install-recommends install ninja-build pkgconf libglib2.0-dev libbson-dev liblmdb-dev libsqlite3-dev libleveldb-dev libmongoc-dev libmariadb-dev librocksdb-dev libfuse-dev libopen-trace-format-dev librados-dev libfabric-dev
sudo apt --yes --no-install-recommends install python3 python3-pip python3-setuptools python3-wheel
sudo pip3 install meson
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add libfabric to dependencies

# libfaibrc don't work on Ubuntu 20.04
- os:
dist: ubuntu-20.04
dependencies: system
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Disable system test because libfabric won't start properly

sudo pip3 install meson
sudo apt --yes --no-install-recommends install ninja-build pkgconf libglib2.0-dev libbson-dev liblmdb-dev libsqlite3-dev libleveldb-dev libmongoc-dev libmariadb-dev librocksdb-dev libfuse-dev libopen-trace-format-dev librados-dev libfabric-dev
sudo apt --yes --no-install-recommends install python3 python3-pip python3-setuptools python3-wheel
sudo pip3 install meson
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add libfabric to dependencies

@@ -280,9 +284,9 @@ jobs:
run: |
. scripts/environment.sh
./scripts/setup.sh start
./scripts/test.sh
./scripts/test.sh || (journalctl GLIB_DOMAIN=JULEA && $(exit 1))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Print journal from SERVER if test fails

@@ -1109,7 +1109,7 @@ _backend_schema_get(gpointer backend_data, gpointer _batch, gchar const* name, b
return TRUE;

_error:
if (G_UNLIKELY(!j_sql_reset(thread_variables->sql_backend, prepared->stmt, NULL)))
if (G_UNLIKELY(!thread_variables || !prepared || !j_sql_reset(thread_variables->sql_backend, prepared->stmt, NULL)))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thread_variables and/or prepared may be NULL if initialization failed. Therefore, we must check it in error handling

@@ -110,9 +111,14 @@ gchar const* j_configuration_get_backend_path(JConfiguration*, JBackendType);
guint64 j_configuration_get_max_operation_size(JConfiguration*);
guint16 j_configuration_get_port(JConfiguration*);

/// size of data segment which should be injected in message
guint64 j_configuration_get_message_inject_size(JConfiguration*);
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reduces RMA reads of small segments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants