Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PIP 76: Streaming Offload(Part I) #9096

Merged
merged 15 commits into from
Jan 26, 2021
Merged

Conversation

Renkai
Copy link
Contributor

@Renkai Renkai commented Dec 30, 2020

This PR contains the new interface and implementation of the offloader in the below PIP

Unit test is still in progress

  • StreamingDataBlockHeaderImpl
  • StreamingBlobStoreBackedReadHandleImpl
  • BufferedOffloadStream
  • BlobStoreManagedLedgerOffloader
  • StreamingOffloadIndexBlock

PIP 76: https://github.com/apache/pulsar/wiki/PIP-76:-Streaming-Offload

@sijie sijie added this to the 2.8.0 milestone Dec 30, 2020
@sijie sijie changed the title PIP : Streaming Offload PIP 76: Streaming Offload Jan 4, 2021
@sijie
Copy link
Member

sijie commented Jan 4, 2021

@Renkai I have assigned PIP-76 to this PIP and copied the content to the wiki page. https://github.com/apache/pulsar/wiki/PIP-76%3A-Streaming-Offload

Feel free to send the PIP to the dev@pulsar.apache.org mailing list.

@sijie sijie self-requested a review January 4, 2021 17:39
@Renkai Renkai marked this pull request as ready for review January 6, 2021 05:18
@Renkai
Copy link
Contributor Author

Renkai commented Jan 6, 2021

/pulsarbot run-failure-checks

@Renkai Renkai changed the title PIP 76: Streaming Offload PIP 76: Streaming Offload(Part I) Jan 6, 2021
@Renkai
Copy link
Contributor Author

Renkai commented Jan 6, 2021

/pulsarbot run-failure-checks

Copy link
Contributor

@codelipenghui codelipenghui left a comment

Choose a reason for hiding this comment

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

I left some comment, please check. And we have migrated to a new code generation lib at #9046, please rebase to the master branch and resolve the conflicts.

Copy link
Member

@sijie sijie left a comment

Choose a reason for hiding this comment

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

@Renkai overall the change looks good to me. Left a couple of comments for clarifications.

@Renkai
Copy link
Contributor Author

Renkai commented Jan 18, 2021

@sijie PTAL, again

return;
}

for (GroupedReader groupedReader : groupedReaders) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Please double confirm the groupedReaders are sorted by ledger Id, entry id, Otherwise, this will bread the entry read in order guarantee

Copy link
Contributor Author

Choose a reason for hiding this comment

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

double confirm code added

Signed-off-by: Renkai <gaelookair@gmail.com>
Signed-off-by: Renkai <gaelookair@gmail.com>
Signed-off-by: Renkai <gaelookair@gmail.com>
Signed-off-by: Renkai <gaelookair@gmail.com>
@Renkai
Copy link
Contributor Author

Renkai commented Jan 20, 2021

/pulsarbot run-failure-checks

Signed-off-by: Renkai <gaelookair@gmail.com>
Signed-off-by: Renkai <gaelookair@gmail.com>
@Renkai
Copy link
Contributor Author

Renkai commented Jan 21, 2021

/pulsarbot run-failure-checks

1 similar comment
@Renkai
Copy link
Contributor Author

Renkai commented Jan 21, 2021

/pulsarbot run-failure-checks

Copy link
Contributor

@codelipenghui codelipenghui left a comment

Choose a reason for hiding this comment

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

The change looks better now, just left some minor comments.

@Override
public CompletableFuture<LedgerInfo> getLedgerInfo(long ledgerId) {
CompletableFuture<LedgerInfo> result = new CompletableFuture<>();
final LedgerInfo ledgerInfo = ledgers.get(ledgerId);
Copy link
Contributor

Choose a reason for hiding this comment

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

And please consider returns a copy of LedgerInfo to void be modified from external?

/**
* The data block header in code storage for each data block.
*/
public class StreamingDataBlockHeaderImpl implements DataBlockHeader {
Copy link
Contributor

Choose a reason for hiding this comment

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

Have you checked this comment @Renkai?

Signed-off-by: Renkai <gaelookair@gmail.com>
@Renkai
Copy link
Contributor Author

Renkai commented Jan 25, 2021

/pulsarbot run-failure-checks

Signed-off-by: Renkai <gaelookair@gmail.com>
Signed-off-by: Renkai <gaelookair@gmail.com>
@Renkai
Copy link
Contributor Author

Renkai commented Jan 25, 2021

/pulsarbot run-failure-checks

2 similar comments
@Renkai
Copy link
Contributor Author

Renkai commented Jan 25, 2021

/pulsarbot run-failure-checks

@Renkai
Copy link
Contributor Author

Renkai commented Jan 25, 2021

/pulsarbot run-failure-checks

@Renkai
Copy link
Contributor Author

Renkai commented Jan 25, 2021

/pulsarbot run-failure-checks

1 similar comment
@Renkai
Copy link
Contributor Author

Renkai commented Jan 25, 2021

/pulsarbot run-failure-checks

@Renkai
Copy link
Contributor Author

Renkai commented Jan 26, 2021

/pulsarbot run-failure-checks

3 similar comments
@Renkai
Copy link
Contributor Author

Renkai commented Jan 26, 2021

/pulsarbot run-failure-checks

@Renkai
Copy link
Contributor Author

Renkai commented Jan 26, 2021

/pulsarbot run-failure-checks

@Renkai
Copy link
Contributor Author

Renkai commented Jan 26, 2021

/pulsarbot run-failure-checks

@codelipenghui codelipenghui merged commit 17f399e into apache:master Jan 26, 2021
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