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

Bloom Shipper #10806

Merged
merged 25 commits into from
Oct 10, 2023
Merged

Bloom Shipper #10806

merged 25 commits into from
Oct 10, 2023

Conversation

vlad-diachenko
Copy link
Contributor

@vlad-diachenko vlad-diachenko commented Oct 6, 2023

implemented bloom shipper that allows to iterates over all active blocks
This new component will be used by the bloom-compactor and bloom-gateway.

How BloomShipper works

  1. looks up all Metas
  2. from metas gets list of all blocks
  3. from metas gets list of tombstones
  4. removes tombstoned blocks from the list of all blocks
  5. passes all active blockReferences to bloomClient
  6. once bloomClient returns the downloaded block, it extracts all files from bloom block archive into working directory
  7. creates *BlockQuerier and run a callback function with it
    Note: BlockQuerier will be created using BloomDirectoryReader that will be created using the past from step Bunch of fixes #6

Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
…files

Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
… on top of the client

Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
@vlad-diachenko vlad-diachenko mentioned this pull request Oct 6, 2023
@vlad-diachenko vlad-diachenko changed the title implmented bloom shipper that allows to iterates over all active blocks Bloom Shipper Oct 6, 2023
vlad-diachenko and others added 7 commits October 6, 2023 20:29
…rier

Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Base automatically changed from vlad.diachenko/bloom_shipper to main October 9, 2023 10:43
vlad-diachenko added a commit that referenced this pull request Oct 9, 2023
Implemented BloomClient that allows : 
1. fetch all meta.json files that satisfy the search criteria
2. upload meta.json
3. delete meta.json
4. fetch bloom blocks in bulk
5. upload bloom blocks in bulk 
6. delete bloom blocks in bulk

Bloom shipper was extracted to a separate PR
#10806

---------

Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
# Conflicts:
#	pkg/storage/stores/shipper/bloomshipper/client.go
#	pkg/storage/stores/shipper/bloomshipper/client_test.go
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
@vlad-diachenko vlad-diachenko marked this pull request as ready for review October 9, 2023 12:20
@vlad-diachenko vlad-diachenko requested a review from a team as a code owner October 9, 2023 12:20
@vlad-diachenko vlad-diachenko enabled auto-merge (squash) October 9, 2023 12:20
vlad-diachenko and others added 4 commits October 9, 2023 21:55
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
…racted' into vlad.diachenko/bloom_shipper-extracted
Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
@github-actions github-actions bot added the type/docs Issues related to technical documentation; the Docs Squad uses this label across many repositories label Oct 10, 2023
@vlad-diachenko vlad-diachenko merged commit 8b94439 into main Oct 10, 2023
@vlad-diachenko vlad-diachenko deleted the vlad.diachenko/bloom_shipper-extracted branch October 10, 2023 06:35
rhnasc pushed a commit to inloco/loki that referenced this pull request Apr 12, 2024
Implemented BloomClient that allows : 
1. fetch all meta.json files that satisfy the search criteria
2. upload meta.json
3. delete meta.json
4. fetch bloom blocks in bulk
5. upload bloom blocks in bulk 
6. delete bloom blocks in bulk

Bloom shipper was extracted to a separate PR
grafana#10806

---------

Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
rhnasc pushed a commit to inloco/loki that referenced this pull request Apr 12, 2024
implemented bloom shipper that allows to iterates over all active blocks
This new component will be used by the bloom-compactor and
bloom-gateway.

#### How BloomShipper works
1. looks up all Metas
2. from metas gets list of all blocks
3. from metas gets list of tombstones
4. removes tombstoned blocks from the list of all blocks
5. passes all active blockReferences to bloomClient
6. once bloomClient returns the downloaded block, it extracts all files
from bloom block archive into working directory
7. creates `*BlockQuerier` and run a callback function with it
**Note:** `BlockQuerier` will be created using `BloomDirectoryReader`
that will be created using the past from step #6

---------

Signed-off-by: Vladyslav Diachenko <vlad.diachenko@grafana.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size/L type/docs Issues related to technical documentation; the Docs Squad uses this label across many repositories
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants