skywalking icon indicating copy to clipboard operation
skywalking copied to clipboard

[Feature] [BanyanDB] Support field indexing but not stored

Open wu-sheng opened this issue 3 years ago • 2 comments

Search before asking

  • [X] I had searched in the issues and found no similar feature requirement.

Description

This is a very special feature of ElasticSearch @wankai123 found from Zipkin using ElasticSearch to save spans.

In saving traces, tags are indexed as query conditions to make users easier to locate important traces, but meanwhile, the whole trace segment is already stored as binary(base64 encoded) in the no-indexing field. So most indexed tags are actually duplicated from the data table perspective.

I hope we could have a way to define a field/column of a table indexing(by different index types) but also not stored. All fields in this type are not allowed in projection clearly because they are stored, OAP could read those values from the binary field directly.

@wankai123 is going to propose this in ElasticSearch storage implementation.

Use case

No response

Related issues

No response

Are you willing to submit a PR?

  • [ ] Yes I am willing to submit a PR!

Code of Conduct

wu-sheng avatar Mar 14 '22 10:03 wu-sheng

As I understood, this is what exactly BanyanBD is doing.

We only duplicate indexed tags which can be used in the projection. In the meanwhile, we store the whole binary data in non-indexed tags.

lujiajing1126 avatar Mar 14 '22 10:03 lujiajing1126

The key of this issue is just tracking the tags not stored. I add more to other readers about context only.

wu-sheng avatar Mar 14 '22 10:03 wu-sheng