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

exp/services/ledgerexporter: Initial draft #5160

Merged
merged 78 commits into from
Feb 27, 2024

Conversation

urvisavla
Copy link
Contributor

@urvisavla urvisavla commented Jan 12, 2024

PR Checklist

PR Structure

  • This PR has reasonably narrow scope (if not, break it down into smaller PRs).
  • This PR avoids mixing refactoring changes with feature changes (split into two PRs
    otherwise).
  • This PR's title starts with name of package that is most changed in the PR, ex.
    services/friendbot, or all or doc if the changes are broad or impact many
    packages.

Thoroughness

  • This PR adds tests for the most critical parts of the new functionality or fixes.
  • I've updated any docs (developer docs, .md
    files, etc... affected by this change). Take a look in the docs folder for a given service,
    like this one.

Release planning

  • I've updated the relevant CHANGELOG (here for Horizon) if
    needed with deprecations, added features, breaking changes, and DB schema changes.
  • I've decided if this PR requires a new major/minor version according to
    semver, or if it's mainly a patch change. The PR is targeted at the next
    release branch if it's not a patch change.

What

see README.md

@urvisavla urvisavla added the WIP label Jan 12, 2024
Copy link
Contributor

@Shaptic Shaptic left a comment

Choose a reason for hiding this comment

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

First pass review! Looks really solid so far! And even has some test coverage 🤌

Have we given any thought to parallel uploads? I'm not sure if it would necessarily provide a performance benefit and it would have a significant add'l complexity, but I'm curious if the idea has discussed.

exp/services/ledgerexporter/exportmanager.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/exportmanager.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/exportmanager.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/exportmanager.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/exportmanager.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/main.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/main.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/main.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/uploader.go Outdated Show resolved Hide resolved
support/storage/mock_storage.go Outdated Show resolved Hide resolved
@urvisavla
Copy link
Contributor Author

Have we given any thought to parallel uploads? I'm not sure if it would necessarily provide a performance benefit and it would have a significant add'l complexity, but I'm curious if the idea has discussed.

By parallel uploads do you mean simultaneously uploading to multiple destinations or concurrently exporting multiple ledger ranges? The former can introduce complexity but the latter can be achieved by running multiple instances of ledger exporter, each handling a distinct range. Currently, the ledgerexporter design doesn't restrict multiple instances from running but the only consideration is the machine capacity to run multiple captive-cores on the same system.

@urvisavla urvisavla force-pushed the HUBBLE-103/ledgerexporter branch from 285b2ae to 79627fe Compare January 19, 2024 02:45
@urvisavla urvisavla marked this pull request as ready for review January 24, 2024 22:05
@urvisavla urvisavla changed the title (WIP) Ledgerexporter: Initial draft Ledgerexporter: Initial draft Jan 24, 2024
@urvisavla urvisavla changed the title Ledgerexporter: Initial draft exp/services/ledgerexporter: Initial implementation Jan 30, 2024
@urvisavla urvisavla changed the title exp/services/ledgerexporter: Initial implementation exp/services/ledgerexporter: Implement MVP Jan 30, 2024
Copy link
Contributor

@Shaptic Shaptic left a comment

Choose a reason for hiding this comment

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

This is really really well-designed, great work so far @urvisavla! 👏 I need some more time to digest the interactions between the channels but here's a smattering of misc. comments for now.

exp/services/ledgerexporter/README.md Outdated Show resolved Hide resolved
exp/services/ledgerexporter/README.md Outdated Show resolved Hide resolved
exp/services/ledgerexporter/README.md Outdated Show resolved Hide resolved
exp/services/ledgerexporter/README.md Outdated Show resolved Hide resolved
exp/services/ledgerexporter/internal/app.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/internal/app.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/internal/app.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/internal/datastore.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/internal/datastore.go Outdated Show resolved Hide resolved
exp/services/ledgerexporter/internal/datastore.go Outdated Show resolved Hide resolved
@urvisavla urvisavla changed the title exp/services/ledgerexporter: Implement MVP exp/services/ledgerexporter: Initial draft Feb 1, 2024
@urvisavla urvisavla force-pushed the HUBBLE-103/ledgerexporter branch from 7aee8a5 to ec4283b Compare February 22, 2024 18:47
@tamirms
Copy link
Contributor

tamirms commented Feb 22, 2024

great job 🎉 !

@urvisavla urvisavla removed the WIP label Feb 27, 2024
@urvisavla urvisavla merged commit 29c49f9 into stellar:master Feb 27, 2024
29 checks passed
@urvisavla urvisavla deleted the HUBBLE-103/ledgerexporter branch February 27, 2024 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants