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

Revise "Reference: Glossary" #1181

Merged
merged 20 commits into from
Feb 18, 2022
Merged

Revise "Reference: Glossary" #1181

merged 20 commits into from
Feb 18, 2022

Conversation

jdbaldry
Copy link
Member

What this PR does

Revises all the definitions in the glossary and fits the page with the documentation information architecture.

Checklist

  • Documentation added

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
@jdbaldry jdbaldry added the type/docs Improvements or additions to documentation label Feb 12, 2022
@osg-grafana
Copy link
Contributor

Relates to #1102


## Flushing

Flushing is the operation run by ingesters to offload time series from memory and store them in the long-term storage.
Copy link
Contributor

Choose a reason for hiding this comment

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

I think one could argue that "flushing" and "shipping" are two separate operations in the ingester, considering that they get triggered by separate tickers and a failure of shipping does not result in a failure of flushing.

Copy link
Member Author

Choose a reason for hiding this comment

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

Tried a clarification in 56efa6f, what do you think?

Copy link
Collaborator

Choose a reason for hiding this comment

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

I can see you reverted your clarification in 1a11857. Was that intentional?

Copy link
Member Author

Choose a reason for hiding this comment

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

I reverted that because of #1181 (comment) but perhaps I misunderstood?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Right. I think we never came up with a good definition of "flushing". I've always understood it as "from ingesters to long-term storage" because "flush" makes me think we "remove" it from ingesters. I have no strong opinion on this.

Copy link
Contributor

@replay replay left a comment

Choose a reason for hiding this comment

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

One nit, otherwise this LGTM

@osg-grafana
Copy link
Contributor

"Ship" this PR and we have #1150 and #1191 as well.

…ect store

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
@09jvilla
Copy link
Contributor

Love that you have user<>tenant<>org in here.

Copy link
Collaborator

@pracucci pracucci left a comment

Choose a reason for hiding this comment

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

Thanks for working on this. I left a couple of comments I would be glad you to take look. Thanks!

## Blocks storage

Blocks storage is the Mimir storage engine based on the Prometheus TSDB.
Grafana Mimir stores blocks in object stores such as AWS S3, Google Cloud Storage (GCS), or Azure blob storage.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I would list the main supported ones.

Suggested change
Grafana Mimir stores blocks in object stores such as AWS S3, Google Cloud Storage (GCS), or Azure blob storage.
Grafana Mimir stores blocks in object stores such as AWS S3, Google Cloud Storage (GCS), Azure blob storage or Swift.

Copy link
Member Author

Choose a reason for hiding this comment

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

Revised in 0828eab


## Flushing

Flushing is the operation run by ingesters to offload time series from memory and store them as blocks on disk.
Copy link
Collaborator

Choose a reason for hiding this comment

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

This is not correct. We're used to refer as "flushing" the operation to offload time series from ingester memory and/or disk to the long-term storage (eg. S3).

Copy link
Member Author

Choose a reason for hiding this comment

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

Reverted in 1a11857


## Gossip

Gossip is a protocol by which components share data to all members without the need for a central store.
Copy link
Collaborator

Choose a reason for hiding this comment

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

without the need for a central store

I think this is misleading. It still requires a centralized storage (eg. S3). Gossip is a protocol that Mimir use to coordinate between components (yes, we share some data, but it's just about coordination between components).

Copy link
Member Author

Choose a reason for hiding this comment

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

Revised in ba79490

jdbaldry and others added 3 commits February 17, 2022 10:19
… the object store"

This reverts commit 56efa6f.

Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Marco Pracucci <marco@pracucci.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Marco Pracucci <marco@pracucci.com>
Copy link
Collaborator

@pracucci pracucci left a comment

Choose a reason for hiding this comment

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

LGTM, thanks! I just left a non blocking comment on gossip.


## Gossip

Gossip is a protocol by which components coordinate with the need for a centralized [key-value store]({{<relref "#key-value-store" >}}).
Copy link
Collaborator

Choose a reason for hiding this comment

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

What do you mean with "with the need for a centralized key-value store"? Maybe it's just my poor english, but I've the feeling it doesn't clarify that when using gossip you don't have to run any centralized key-value store, because Mimir components just use this p2p protocol to talk each other and coordinate.

Copy link
Contributor

Choose a reason for hiding this comment

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

I agree that this wording is a bit confusing.

Copy link
Member Author

Choose a reason for hiding this comment

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

Sorry yeah that was a typo. It was meant to be "without" 🤦

Perhaps that still isn't the best wording. Happy to replace with something else.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think fixing the typo could be a good start. At least it makes it correct ;)


Churn is the frequency at which series become idle.

A series become idle once it's no longer exported by the monitored targets.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
A series become idle once it's no longer exported by the monitored targets.
A series becomes idle once it's no longer exported by the monitored targets.

Copy link
Contributor

@replay replay Feb 17, 2022

Choose a reason for hiding this comment

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

or

Suggested change
A series become idle once it's no longer exported by the monitored targets.
Series become idle once they're no longer exported by the monitored targets.


## Hash ring

The hash ring is a distributed data structure used by Grafana Mimir for sharding, replication, and service discovery.
Copy link
Contributor

@replay replay Feb 17, 2022

Choose a reason for hiding this comment

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

How is it distributed? I thought (except in the case of memberlist) it's pretty centralized in the k/v store.

Copy link
Collaborator

Choose a reason for hiding this comment

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

We're used to call it distributed data structure, with regards to the fact that we use a centralized KV store just to "share" it but then it's kept in each process memory and each process can take local decisions (based on the ring copy they have in memory) without having to lookup the KV store each time.

Copy link
Contributor

@replay replay left a comment

Choose a reason for hiding this comment

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

LGTM, I just added nits

Copy link
Collaborator

@pracucci pracucci left a comment

Choose a reason for hiding this comment

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

LGTM (modulo fixing the typo in "gossip" definition)


## Flushing

Flushing is the operation run by ingesters to offload time series from memory and store them in the long-term storage.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I can see you reverted your clarification in 1a11857. Was that intentional?


## Gossip

Gossip is a protocol by which components coordinate with the need for a centralized [key-value store]({{<relref "#key-value-store" >}}).
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think fixing the typo could be a good start. At least it makes it correct ;)


## Hash ring

The hash ring is a distributed data structure used by Grafana Mimir for sharding, replication, and service discovery.
Copy link
Collaborator

Choose a reason for hiding this comment

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

We're used to call it distributed data structure, with regards to the fact that we use a centralized KV store just to "share" it but then it's kept in each process memory and each process can take local decisions (based on the ring copy they have in memory) without having to lookup the KV store each time.


Flushing is the operation run by ingesters to offload time series from memory and store them in the long-term storage.

## Gossip
Copy link
Collaborator

Choose a reason for hiding this comment

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

I would also add a ## Memberlist, mentioning to refer to ## Gossip.

jdbaldry and others added 3 commits February 18, 2022 10:57
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: replay <mauro.stettler@gmail.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: replay <mauro.stettler@gmail.com>
Co-authored-by: Marco Pracucci <marco@pracucci.com>
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: Marco Pracucci <marco@pracucci.com>
@jdbaldry
Copy link
Member Author

Thanks for the thorough review!

@jdbaldry jdbaldry merged commit f8d9087 into main Feb 18, 2022
@jdbaldry jdbaldry deleted the jdb/2022-02-glossary branch February 18, 2022 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/docs Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants