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

feat: CARv2 MultiIndex #63

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

feat: CARv2 MultiIndex #63

wants to merge 4 commits into from

Conversation

alanshaw
Copy link
Member

A multi-index is a CARv2 index format that allows multiple CARv2 indexes to be grouped together in a single index.

CARv2 MultiIndex.md Outdated Show resolved Hide resolved

## Abstract

A multi-index is a CARv2 index format that allows multiple CARv2 indexes to be grouped together in a single index.
Copy link
Member

@travis travis Jun 13, 2023

Choose a reason for hiding this comment

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

I may be missing something and/or this might grow on me, but there's a pedant inside me saying that when we talk about multi* things in the IPFS ecosystem (ie, multihash, multiaddress) we're usually talking about a string of bytes that may be one of a number of different formats, and so when I glanced at this the first thing I thought was "oh this is about a thing that lets you disambiguate different strings of bytes that represent encoded indices" rather than "this is a thing that concatenates different indices together."

Not remotely a blocker, but might be worth clarifying or trying to find a different name - at the very least I just want to confirm that this isn't a multi* thing in the sense of multihashes or multiaddresses, is that right?

Copy link
Member

Choose a reason for hiding this comment

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

Bonus points if you can work a Voltron or Power Rangers reference into the name since this is sort of like a Megazord for indices?
image

Copy link
Member Author

Choose a reason for hiding this comment

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

Not remotely a blocker, but might be worth clarifying or trying to find a different name - at the very least I just want to confirm that this isn't a multi* thing in the sense of multihashes or multiaddresses, is that right?

Yes that is correct - I'm open to a better name suggestion 🙂

CombinedIndex, AggregateIndex...? ...not sure. Want to express that it's not just a joining, since it also carries information about what CAR each index pertains to.

Copy link
Contributor

Choose a reason for hiding this comment

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

This is a good feedback, I also thought about the naming creating some confusion. Could DagIndex or would we want to use this out of the context of representing a Dag? I think that naming could work well given it can be an index for either a root CID having all its blocks, as well as sub-dags that could be optimized.

Copy link
Member Author

Choose a reason for hiding this comment

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

@travis I could get behind ZordIndex...

Copy link
Member Author

Choose a reason for hiding this comment

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

  • CombinedIndex - join or merge to form a single unit or substance
  • CompositeIndex - made up of several parts or elements
  • CompoundIndex - a thing that is composed of two or more separate elements

Would be good to get a name sorted - I'd like to merge this as we're using it in production for rollup indexes in freeway.

Copy link
Member Author

Choose a reason for hiding this comment

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

  • ShardedDAGIndex - for when a DAG is sharded amongst multiple CARs

@alanshaw alanshaw mentioned this pull request Apr 17, 2024
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.

4 participants