| Package | Description |
|---|---|
| org.apache.hadoop.fs.s3a |
S3A Filesystem.
|
| org.apache.hadoop.fs.s3a.impl |
Implementation classes private to the S3A store.
|
| org.apache.hadoop.fs.s3a.s3guard |
This package contains classes related to S3Guard: a feature of S3A to mask
the eventual consistency behavior of S3 and optimize access patterns by
coordinating with a strongly consistent external store for file system
metadata.
|
| Modifier and Type | Method and Description |
|---|---|
ITtlTimeProvider |
S3AFileSystem.getTtlTimeProvider() |
ITtlTimeProvider |
S3AFileSystem.ListingOperationCallbacksImpl.getUpdatedTtlTimeProvider() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
S3AFileSystem.setTtlTimeProvider(ITtlTimeProvider ttlTimeProvider) |
| Modifier and Type | Method and Description |
|---|---|
ITtlTimeProvider |
StoreContext.getTimeProvider()
Get the time provider.
|
ITtlTimeProvider |
ListingOperationCallbacks.getUpdatedTtlTimeProvider()
Get the updated time provider for the current fs instance.
|
| Modifier and Type | Method and Description |
|---|---|
StoreContextBuilder |
StoreContextBuilder.setTimeProvider(ITtlTimeProvider provider) |
| Modifier and Type | Class and Description |
|---|---|
static class |
S3Guard.TtlTimeProvider
Runtime implementation for TTL Time Provider interface.
|
| Modifier and Type | Method and Description |
|---|---|
static void |
S3Guard.addAncestors(MetadataStore metadataStore,
org.apache.hadoop.fs.Path qualifiedPath,
ITtlTimeProvider timeProvider,
BulkOperationState operationState)
This adds all new ancestors of a path as directories.
|
static org.apache.hadoop.fs.RemoteIterator<S3AFileStatus> |
S3Guard.dirListingUnion(MetadataStore ms,
org.apache.hadoop.fs.Path path,
org.apache.hadoop.fs.RemoteIterator<S3AFileStatus> backingStatuses,
DirListingMetadata dirMeta,
boolean isAuthoritative,
ITtlTimeProvider timeProvider,
Function<S3AFileStatus[],org.apache.hadoop.fs.RemoteIterator<S3AFileStatus>> toStatusItr)
Given directory listing metadata from both the backing store and the
MetadataStore, merge the two sources of truth to create a consistent
view of the current directory contents, which can be returned to clients.
|
static MetadataStore |
S3Guard.getMetadataStore(org.apache.hadoop.fs.FileSystem fs,
ITtlTimeProvider ttlTimeProvider)
Create a new instance of the configured MetadataStore.
|
static PathMetadata |
S3Guard.getWithTtl(MetadataStore ms,
org.apache.hadoop.fs.Path path,
ITtlTimeProvider timeProvider,
boolean needEmptyDirectoryFlag,
boolean allowAuthoritative)
Get a path entry provided it is not considered expired.
|
void |
DynamoDBMetadataStore.initialize(org.apache.hadoop.conf.Configuration config,
ITtlTimeProvider ttlTp)
Performs one-time initialization of the metadata store via configuration.
|
void |
LocalMetadataStore.initialize(org.apache.hadoop.conf.Configuration conf,
ITtlTimeProvider ttlTp) |
void |
MetadataStore.initialize(org.apache.hadoop.conf.Configuration conf,
ITtlTimeProvider ttlTimeProvider)
Performs one-time initialization of the metadata store via configuration.
|
void |
NullMetadataStore.initialize(org.apache.hadoop.conf.Configuration conf,
ITtlTimeProvider ttlTimeProvider) |
void |
DynamoDBMetadataStore.initialize(org.apache.hadoop.fs.FileSystem fs,
ITtlTimeProvider ttlTp)
Performs one-time initialization of the metadata store.
|
void |
LocalMetadataStore.initialize(org.apache.hadoop.fs.FileSystem fileSystem,
ITtlTimeProvider ttlTp) |
void |
MetadataStore.initialize(org.apache.hadoop.fs.FileSystem fs,
ITtlTimeProvider ttlTimeProvider)
Performs one-time initialization of the metadata store.
|
void |
NullMetadataStore.initialize(org.apache.hadoop.fs.FileSystem fs,
ITtlTimeProvider ttlTimeProvider) |
static DirListingMetadata |
S3Guard.listChildrenWithTtl(MetadataStore ms,
org.apache.hadoop.fs.Path path,
ITtlTimeProvider timeProvider,
boolean allowAuthoritative)
List children; mark the result as non-auth if the TTL has expired.
|
static void |
S3Guard.makeDirsOrdered(MetadataStore ms,
List<org.apache.hadoop.fs.Path> dirs,
String owner,
boolean authoritative,
ITtlTimeProvider timeProvider)
Deprecated.
this is no longer called by
S3AFilesystem.innerMkDirs.
See: HADOOP-15079 (January 2018).
It is currently retained because of its discussion in the method on
atomicity and in case we need to reinstate it or adapt the current
process of directory marker creation.
But it is not being tested and so may age with time...consider
deleting it in future if it's clear there's no need for it. |
static S3AFileStatus |
S3Guard.putAndReturn(MetadataStore ms,
S3AFileStatus status,
ITtlTimeProvider timeProvider)
Helper function which puts a given S3AFileStatus into the MetadataStore and
returns the same S3AFileStatus.
|
static S3AFileStatus |
S3Guard.putAndReturn(MetadataStore ms,
S3AFileStatus status,
ITtlTimeProvider timeProvider,
BulkOperationState operationState)
Helper function which puts a given S3AFileStatus into the MetadataStore and
returns the same S3AFileStatus.
|
static void |
S3Guard.putAuthDirectoryMarker(MetadataStore ms,
S3AFileStatus status,
ITtlTimeProvider timeProvider,
BulkOperationState operationState)
Creates an authoritative directory marker for the store.
|
static void |
S3Guard.putWithTtl(MetadataStore ms,
Collection<? extends PathMetadata> fileMetas,
ITtlTimeProvider timeProvider,
BulkOperationState operationState)
Put entries, using the time provider to set their timestamp.
|
static void |
S3Guard.putWithTtl(MetadataStore ms,
DirListingMetadata dirMeta,
List<org.apache.hadoop.fs.Path> unchangedEntries,
ITtlTimeProvider timeProvider,
BulkOperationState operationState)
Put a directory entry, setting the updated timestamp of the
directory and its children.
|
static void |
S3Guard.putWithTtl(MetadataStore ms,
PathMetadata fileMeta,
ITtlTimeProvider timeProvider,
BulkOperationState operationState)
Put an entry, using the time provider to set its timestamp.
|
static boolean |
S3Guard.refreshEntry(MetadataStore metadataStore,
PathMetadata pm,
S3AFileStatus s3AFileStatus,
ITtlTimeProvider timeProvider)
We update the metastore for the specific case of S3 value == S3Guard value
so as to place a more recent modtime in the store.
|
void |
DynamoDBMetadataStore.setTtlTimeProvider(ITtlTimeProvider ttlTimeProvider) |
void |
LocalMetadataStore.setTtlTimeProvider(ITtlTimeProvider ttlTimeProvider) |
void |
MetadataStore.setTtlTimeProvider(ITtlTimeProvider ttlTimeProvider)
The TtlTimeProvider has to be set during the initialization for the
metadatastore, but this method can be used for testing, and change the
instance during runtime.
|
void |
NullMetadataStore.setTtlTimeProvider(ITtlTimeProvider ttlTimeProvider) |
Copyright © 2008–2022 Apache Software Foundation. All rights reserved.