Multi-scope ReaderGroup
See original GitHub issueProblem description This issue relates to a feature improvement that would allow an RG to read streams across numerous scopes. For example, we may wish to create an RG that reads from ‘A/Foo’ and ‘B/Bar’ (where ‘A’ is a scope and ‘Foo’ is a stream).
For another example, imagine a scenario where a scope ‘A’ contains a stream that is writable by party ‘X’ and readable by party ‘Y’, with the additional constraint that ‘Y’ is disallowed from writing or creating streams in ‘A’. Assume that ‘Y’ is allowed to create and write streams in another scope ‘B’.
Suggestions for an improvement
Option 1:
Rework ReaderGroupManager
interface to accept fully-qualified stream names. e.g.:
interface Stream { String getScope(); String getStreamName(); }
interface ReaderGroupManager {
ReaderGroup createReaderGroup(String groupName, ReaderGroupConfig config, Set<Stream> streamNames);
}
Option 2:
Add scope
to ReaderGroupConfig
to override the scope associated with the data stream(s). This option would allow for an RG to use a different scope for its sync stream, but would not solve the general problem.
Issue Analytics
- State:
- Created 6 years ago
- Comments:8 (8 by maintainers)
Top GitHub Comments
With PR: https://github.com/pravega/pravega/pull/2374 getting in, ReaderGroupConfig#stream method now expects a full qualified stream name or a Stream object. This implies that a Readergroup can read from multiple streams across various Scopes. For e.g:
Note: Related issue https://github.com/pravega/pravega/issues/2397 is still present. i.e. the current code expects a scoped stream name (
scope/streamName
) as part of the ReaderGroupConfig. Once issue 2397 is resolved , the default scope (scope1
in the above e.g) will be used if the scoped stream name is not provided to theReaderGroupConfig
. (i.e. if just “streamx” is provided then it will be considered as “scope1/streamx”)This feature is done AFAIK.