Class RateLimitedDirectoryWrapper
A Directory wrapper that allows IndexOutput rate limiting using IO context (IOContext.UsageContext) specific rate limiters (RateLimiter).
Note
This API is experimental and might change in incompatible ways in the next release.
Implements
Inherited Members
Namespace: Lucene.Net.Store
Assembly: Lucene.Net.dll
Syntax
public sealed class RateLimitedDirectoryWrapper : FilterDirectory, IDisposable
Constructors
| Improve this Doc View SourceRateLimitedDirectoryWrapper(Directory)
Declaration
public RateLimitedDirectoryWrapper(Directory wrapped)
Parameters
| Type | Name | Description |
|---|---|---|
| Directory | wrapped |
Methods
| Improve this Doc View SourceCopy(Directory, String, String, IOContext)
Declaration
public override void Copy(Directory to, string src, string dest, IOContext context)
Parameters
| Type | Name | Description |
|---|---|---|
| Directory | to | |
| System.String | src | |
| System.String | dest | |
| IOContext | context |
Overrides
| Improve this Doc View SourceCreateOutput(String, IOContext)
Declaration
public override IndexOutput CreateOutput(string name, IOContext context)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | |
| IOContext | context |
Returns
| Type | Description |
|---|---|
| IndexOutput |
Overrides
| Improve this Doc View SourceCreateSlicer(String, IOContext)
Declaration
public override Directory.IndexInputSlicer CreateSlicer(string name, IOContext context)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | name | |
| IOContext | context |
Returns
| Type | Description |
|---|---|
| Directory.IndexInputSlicer |
Overrides
| Improve this Doc View SourceGetMaxWriteMBPerSec(IOContext.UsageContext)
See SetMaxWriteMBPerSec(Nullable<Double>, IOContext.UsageContext).
Note
This API is experimental and might change in incompatible ways in the next release.
Declaration
public double GetMaxWriteMBPerSec(IOContext.UsageContext context)
Parameters
| Type | Name | Description |
|---|---|---|
| IOContext.UsageContext | context |
Returns
| Type | Description |
|---|---|
| System.Double |
Exceptions
| Type | Condition |
|---|---|
| System.ObjectDisposedException | if the Directory is already disposed |
SetMaxWriteMBPerSec(Nullable<Double>, IOContext.UsageContext)
Sets the maximum (approx) MB/sec allowed by all write IO performed by
IndexOutput created with the given IOContext.UsageContext. Pass
null for mbPerSec to have no limit.
NOTE: For already created IndexOutput instances there is no guarantee this new rate will apply to them; it will only be guaranteed to apply for new created IndexOutput instances.
NOTE: this is an optional operation and might not be respected by all Directory implementations. Currently only buffered (FSDirectory) Directory implementations use rate-limiting.
Note
This API is experimental and might change in incompatible ways in the next release.
Declaration
public void SetMaxWriteMBPerSec(double? mbPerSec, IOContext.UsageContext context)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Nullable<System.Double> | mbPerSec | |
| IOContext.UsageContext | context |
Exceptions
| Type | Condition |
|---|---|
| System.ObjectDisposedException | if the Directory is already disposed |
SetRateLimiter(RateLimiter, IOContext.UsageContext)
Sets the rate limiter to be used to limit (approx) MB/sec allowed by all IO
performed with the given context (IOContext.UsageContext). Pass null to
have no limit.
Passing an instance of rate limiter compared to setting it using SetMaxWriteMBPerSec(Nullable<Double>, IOContext.UsageContext) allows to use the same limiter instance across several directories globally limiting IO across them.
Note
This API is experimental and might change in incompatible ways in the next release.
Declaration
public void SetRateLimiter(RateLimiter mergeWriteRateLimiter, IOContext.UsageContext context)
Parameters
| Type | Name | Description |
|---|---|---|
| RateLimiter | mergeWriteRateLimiter | |
| IOContext.UsageContext | context |
Exceptions
| Type | Condition |
|---|---|
| System.ObjectDisposedException | if the Directory is already disposed |