Entry point for an RNTuple stored in S3-compatible object storage.
The anchor is serialized as a JSON object and stored at the base URL of the ntuple. It contains the information needed to locate and read the header and footer envelopes. The anchor is always the last object written during CommitDatasetImpl, ensuring atomicity: if the anchor exists, the entire ntuple is complete.
Definition at line 38 of file RPageStorageS3.hxx.
Public Member Functions | |
| bool | operator== (const RNTupleAnchorS3 &other) const |
| Field-by-field equality check across all 14 anchor members. | |
| std::string | ToJSON () const |
| Serialize the anchor to a JSON string suitable for storage at the base URL. | |
Static Public Member Functions | |
| static RResult< RNTupleAnchorS3 > | CreateFromJSON (const std::string &json) |
| Deserialize the anchor from a JSON string. Returns an error on malformed or incompatible input. | |
Public Attributes | |
| std::uint64_t | fFooterObjId = 0 |
| Object ID and byte offset of the compressed footer within the S3 object. | |
| std::uint64_t | fFooterOffset = 0 |
| std::uint64_t | fHeaderObjId = 0 |
| Object ID and byte offset of the compressed header within the S3 object. | |
| std::uint64_t | fHeaderOffset = 0 |
| std::uint64_t | fLenFooter = 0 |
| std::uint64_t | fLenHeader = 0 |
| std::uint64_t | fNBytesFooter = 0 |
| Compressed and uncompressed sizes of the footer envelope. | |
| std::uint64_t | fNBytesHeader = 0 |
| Compressed and uncompressed sizes of the header envelope. | |
| std::string | fUrlTemplate |
| Pattern for resolving object IDs to full S3 URLs. | |
| std::uint32_t | fVersionAnchor = 0 |
| Allows evolving the anchor JSON schema in future versions. | |
| std::uint16_t | fVersionEpoch = RNTuple::kVersionEpoch |
| Version of the RNTuple binary format supported by the writer. | |
| std::uint16_t | fVersionMajor = RNTuple::kVersionMajor |
| std::uint16_t | fVersionMinor = RNTuple::kVersionMinor |
| std::uint16_t | fVersionPatch = RNTuple::kVersionPatch |
#include <ROOT/RPageStorageS3.hxx>
|
static |
Deserialize the anchor from a JSON string. Returns an error on malformed or incompatible input.
Construct an anchor from a JSON string.
The anchor version is checked first; if it does not match the current version, parsing fails immediately. All remaining fields are extracted with jsonAnchor.at() which throws on missing keys or type mismatches.
Definition at line 60 of file RPageStorageS3.cxx.
| bool ROOT::Experimental::Internal::RNTupleAnchorS3::operator== | ( | const RNTupleAnchorS3 & | other | ) | const |
Field-by-field equality check across all 14 anchor members.
Used to verify round-trip correctness in tests.
Definition at line 21 of file RPageStorageS3.cxx.
| std::string ROOT::Experimental::Internal::RNTupleAnchorS3::ToJSON | ( | ) | const |
Serialize the anchor to a JSON string suitable for storage at the base URL.
Serialize the anchor to a pretty-printed JSON string (2-space indent).
nlohmann/json handles type conversion, string escaping, and uint64 precision. The output is suitable for direct upload to S3 as the anchor object.
Definition at line 35 of file RPageStorageS3.cxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fFooterObjId = 0 |
Object ID and byte offset of the compressed footer within the S3 object.
Definition at line 56 of file RPageStorageS3.hxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fFooterOffset = 0 |
Definition at line 57 of file RPageStorageS3.hxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fHeaderObjId = 0 |
Object ID and byte offset of the compressed header within the S3 object.
Definition at line 50 of file RPageStorageS3.hxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fHeaderOffset = 0 |
Definition at line 51 of file RPageStorageS3.hxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fLenFooter = 0 |
Definition at line 60 of file RPageStorageS3.hxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fLenHeader = 0 |
Definition at line 54 of file RPageStorageS3.hxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fNBytesFooter = 0 |
Compressed and uncompressed sizes of the footer envelope.
Definition at line 59 of file RPageStorageS3.hxx.
| std::uint64_t ROOT::Experimental::Internal::RNTupleAnchorS3::fNBytesHeader = 0 |
Compressed and uncompressed sizes of the header envelope.
Definition at line 53 of file RPageStorageS3.hxx.
| std::string ROOT::Experimental::Internal::RNTupleAnchorS3::fUrlTemplate |
Pattern for resolving object IDs to full S3 URLs.
${baseurl} is replaced with the anchor URL, ${objid} with the numeric object ID.
Definition at line 48 of file RPageStorageS3.hxx.
| std::uint32_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionAnchor = 0 |
Allows evolving the anchor JSON schema in future versions.
Definition at line 40 of file RPageStorageS3.hxx.
| std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionEpoch = RNTuple::kVersionEpoch |
Version of the RNTuple binary format supported by the writer.
Definition at line 42 of file RPageStorageS3.hxx.
| std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionMajor = RNTuple::kVersionMajor |
Definition at line 43 of file RPageStorageS3.hxx.
| std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionMinor = RNTuple::kVersionMinor |
Definition at line 44 of file RPageStorageS3.hxx.
| std::uint16_t ROOT::Experimental::Internal::RNTupleAnchorS3::fVersionPatch = RNTuple::kVersionPatch |
Definition at line 45 of file RPageStorageS3.hxx.