Skip to content

[RNTuple] Support Intel DAOS as storage backend#6825

Merged
jblomer merged 12 commits intoroot-project:masterfrom
jalopezg-git:jalopezg-rntuple-daos
May 3, 2021
Merged

[RNTuple] Support Intel DAOS as storage backend#6825
jblomer merged 12 commits intoroot-project:masterfrom
jalopezg-git:jalopezg-rntuple-daos

Conversation

@jalopezg-git
Copy link
Copy Markdown
Contributor

@jalopezg-git jalopezg-git commented Nov 17, 2020

The changes in this pull request allows RNTuple to use Intel DAOS as storage backend (through libdaos). This support is still experimental.

Currently, each page is assigned a sequential OID at the time it is commited; reserved OIDs are used to store the header, the footer, and the anchor. Each DAOS container cannot contain more than one ntuple.

We expect at least three different follow-up pull requests that will address the following:

  • Commit/load of sealed pages.
  • Transition from the naive one-OID-per-page mapping to something more appropriate, e.g., map clusterIdx to dkey; akey might be the page number within the cluster.
  • Multiple ntuples per DAOS container.

@phsft-bot
Copy link
Copy Markdown

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1015/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Copy Markdown

Build failed on ROOT-fedora30/cxx14.
Running on root-fedora30-2.cern.ch:/home/sftnight/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T11:58:19.689Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RDaos.cxx.o
  • [2020-11-25T11:58:20.206Z] /home/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory
  • [2020-11-25T11:58:20.206Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RPageStorageDaos.cxx.o
  • [2020-11-25T11:58:20.605Z] /home/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory

@phsft-bot
Copy link
Copy Markdown

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T12:10:12.132Z] /home/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory
  • [2020-11-25T12:10:13.730Z] /home/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory

@phsft-bot
Copy link
Copy Markdown

Build failed on mac1015/cxx17.
Running on macphsft20.dyndns.cern.ch:/Users/sftnight/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T12:11:29.039Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RDaos.cxx.o
  • [2020-11-25T12:11:29.299Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: 'daos.h' file not found
  • [2020-11-25T12:11:30.129Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RPageStorageDaos.cxx.o
  • [2020-11-25T12:11:30.390Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: 'daos.h' file not found

@phsft-bot
Copy link
Copy Markdown

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1015/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Copy Markdown

Build failed on ROOT-fedora30/cxx14.
Running on root-fedora30-1.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T12:16:02.416Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RDaos.cxx.o
  • [2020-11-25T12:16:02.416Z] /build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory

ROOTVecOps
)

# TODO(jalopezg): make daos support optional
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Thanks, @oshadura! I took that shortcut as we needed to present some results for the Intel DAOS User Group meeting last week. Thanks for the information, it will save me some time! :-)

@phsft-bot
Copy link
Copy Markdown

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T12:28:43.192Z] /home/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory

@phsft-bot
Copy link
Copy Markdown

Build failed on mac1015/cxx17.
Running on macphsft20.dyndns.cern.ch:/Users/sftnight/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T12:29:43.586Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RDaos.cxx.o
  • [2020-11-25T12:29:44.156Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: 'daos.h' file not found
  • [2020-11-25T12:29:44.676Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RPageStorageDaos.cxx.o
  • [2020-11-25T12:29:44.936Z] /Users/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: 'daos.h' file not found

@phsft-bot
Copy link
Copy Markdown

Build failed on windows10/cxx14.
Running on null:C:\build\workspace\root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T12:42:25.400Z] C:\build\workspace\root-pullrequests-build\root\tree\ntuple\v7\inc\ROOT/RDaos.hxx(21,10): fatal error C1083: Cannot open include file: 'daos.h': No such file or directory [C:\build\workspace\root-pullrequests-build\build\tree\ntuple\ROOTNTuple.vcxproj]
  • [2020-11-25T12:42:25.400Z] C:\build\workspace\root-pullrequests-build\root\tree\ntuple\v7\inc\ROOT/RDaos.hxx(21,10): fatal error C1083: Cannot open include file: 'daos.h': No such file or directory [C:\build\workspace\root-pullrequests-build\build\tree\ntuple\ROOTNTuple.vcxproj]

@phsft-bot
Copy link
Copy Markdown

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1015/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Copy Markdown

Build failed on ROOT-fedora30/cxx14.
Running on root-fedora30-1.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T13:05:58.285Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RDaos.cxx.o
  • [2020-11-25T13:05:58.546Z] /build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory
  • [2020-11-25T13:05:58.806Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RPageStorageDaos.cxx.o
  • [2020-11-25T13:05:58.806Z] /build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory

@phsft-bot
Copy link
Copy Markdown

Build failed on mac1015/cxx17.
Running on macphsft18.dyndns.cern.ch:/Users/sftnight/build/jenkins/workspace/root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T13:09:31.021Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RDaos.cxx.o
  • [2020-11-25T13:09:31.588Z] /Users/sftnight/build/jenkins/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: 'daos.h' file not found
  • [2020-11-25T13:09:32.415Z] FAILED: tree/ntuple/CMakeFiles/ROOTNTuple.dir/v7/src/RPageStorageDaos.cxx.o
  • [2020-11-25T13:09:32.673Z] /Users/sftnight/build/jenkins/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: 'daos.h' file not found

@phsft-bot
Copy link
Copy Markdown

Build failed on ROOT-debian10-i386/cxx14.
Running on pcepsft10.dyndns.cern.ch:/build/workspace/root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T13:18:58.319Z] /home/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory
  • [2020-11-25T13:19:00.110Z] /home/sftnight/build/workspace/root-pullrequests-build/root/tree/ntuple/v7/inc/ROOT/RDaos.hxx:21:10: fatal error: daos.h: No such file or directory

@phsft-bot
Copy link
Copy Markdown

Build failed on windows10/cxx14.
Running on null:C:\build\workspace\root-pullrequests-build
See console output.

Errors:

  • [2020-11-25T13:24:34.020Z] C:\build\workspace\root-pullrequests-build\root\tree\ntuple\v7\inc\ROOT/RDaos.hxx(21,10): fatal error C1083: Cannot open include file: 'daos.h': No such file or directory [C:\build\workspace\root-pullrequests-build\build\tree\ntuple\ROOTNTuple.vcxproj]
  • [2020-11-25T13:24:34.020Z] C:\build\workspace\root-pullrequests-build\root\tree\ntuple\v7\inc\ROOT/RDaos.hxx(21,10): fatal error C1083: Cannot open include file: 'daos.h': No such file or directory [C:\build\workspace\root-pullrequests-build\build\tree\ntuple\ROOTNTuple.vcxproj]

@Axel-Naumann
Copy link
Copy Markdown
Member

drop fail-on-missing or communicate this feature with LCG

Can we not use the usual approach? If daos is not turned off, look for daos, leave daos on if found. If not found, turn it off, unless fail-on-missing where we'd error out.

@jalopezg-git jalopezg-git force-pushed the jalopezg-rntuple-daos branch from 6566c69 to f779c1c Compare April 28, 2021 16:14
@phsft-bot
Copy link
Copy Markdown

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

@phsft-bot
Copy link
Copy Markdown

@jblomer jblomer marked this pull request as ready for review April 28, 2021 19:55
@jblomer
Copy link
Copy Markdown
Contributor

jblomer commented Apr 29, 2021

@jalopezg-r00t Please rebase to the latest master

Copy link
Copy Markdown
Collaborator

@oshadura oshadura left a comment

Choose a reason for hiding this comment

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

LGTM from CMake point of view (I just added small suggestion/comment)

…ont_open`

Try to create the container before the `daos_cont_open()` call.  The `daos_cont_create()` call should not fail if the container already exists.
libdaos_mock provides an implementation for a small subset of libdaos that
enables in-memory storage. This is especially interesting for testing
environments that do not have access to a DAOS deployment.
As suggested in the code review, we demote the `RDaosObject` class template
in favor of simpler code. Therefore, we will only support `std::uint64_t`
as dkey/akey.

This is a separate commit so that we can recover the old templated version if
need be.
@jalopezg-git jalopezg-git force-pushed the jalopezg-rntuple-daos branch from f779c1c to a8b3422 Compare April 29, 2021 11:11
@phsft-bot
Copy link
Copy Markdown

Starting build on ROOT-debian10-i386/cxx14, ROOT-performance-centos8-multicore/default, ROOT-fedora30/cxx14, ROOT-fedora31/noimt, ROOT-ubuntu16/nortcxxmod, mac1014/python3, mac11.0/cxx17, windows10/cxx14
How to customize builds

@jblomer jblomer merged commit 59e4b3b into root-project:master May 3, 2021
@jalopezg-git jalopezg-git deleted the jalopezg-rntuple-daos branch December 15, 2022 15:00
@jalopezg-git jalopezg-git assigned jalopezg-git and unassigned jblomer Aug 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants