Remove StacktraceStore keys from Meta Store
Since moving to the arcticDB columnar storage we are storing stacktraces by their individual locations IDs again. There's no more need for the stacktrace UUIDs. Therefore, we can probably get rid of this interface. We might to adjust the way we writes profiles into the metastore slightly. https://github.com/parca-dev/parca/blob/39b958f7fee944d38d7f398a57cdc106c139eaeb/pkg/metastore/metastore.go#L45-L49
Hey, can I pick this up?
Removing this interface = removing the composite methods and refactoring wherever they've been used, correct? GetStacktraceByIDs doesn't seem to deal with UUIDs though, so why are we removing it? Also, can you point me a bit towards how/where stacktraces are being stored by individual location IDs? Would this be in pkg/parcacol? Saw stacktraces included in rows created from FlatProfile and some more instances in arrow.go. Haven't read too deeply into them and where these functions are being used yet, but seems this is the correct place as they use the Sample.Location, and if so, I'll refer them for refactoring the older code.
I'm not actually convinced we should remove this just yet. I think this could come in very handy to optimize transferring stacktraces in the future. As in, instead of having a client send the full stacktrace, we send a hash of it, and only if the stack is unknown do we send the whole stack.
That assumes that we do change the stacktrace keys we store slightly and use only the locations, without the labels to identify it.