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

[master] FieldCodec in Measurement is limited the count of fieds #6869

Closed
li-ang opened this issue Jun 18, 2016 · 1 comment
Closed

[master] FieldCodec in Measurement is limited the count of fieds #6869

li-ang opened this issue Jun 18, 2016 · 1 comment
Assignees
Milestone

Comments

@li-ang
Copy link

li-ang commented Jun 18, 2016

The FieldCodec type declaration as following
https://github.com/influxdata/influxdb/blob/master/tsdb/shard.go#L799-L802

type FieldCodec struct {
    fieldsByID   map[uint8]*Field
    fieldsByName map[string]*Field
}

fieldsByID is a map struct, the key type is uint8. That means only 255 fields are stored in fieldsByID.
I remember that FieldCodec is used in 0.9.x version based BoltDB storage engine with 255 fields limitation. Now, only some influx_inspect code use FieldCodec info and MeasurementFields. So, could we delete the FieldCodec ?


The is a another bug about FieldCodec as following:

Bug report

System info: [InfluxDB : 551cb61 ]

Steps to reproduce: Writing new points(in only one series) with new fields continuously, the wait time is longer and longer and the CPU usage is quickly increase.

The trouble code cause the bug.

Now I have two method fix the bug, deleting the FieldCodec or fix the trouble code.If you can give me some suggestion that whitch method is better, I would like to focus on the issue and open a Pull Request.

@li-ang
Copy link
Author

li-ang commented Jun 18, 2016

@jsternberg
@jwilder

jsternberg added a commit that referenced this issue Jun 20, 2016
Updated `influx_inspect` to use the `FieldDimensions` method instead
(more reliable anyway). The `influx_tsm` program used its own vendored
copy of `FieldCodec` so it is not affected by this change. `FieldCodec`
was only used for the `b1` and `bz1` engines which were removed in 0.12,
but the code that created the field codec was never removed. This
limited the maximum number of fields to 255 even though that restriction
was removed with the `tsm1` engine.

Fixes #6869.
@timhallinflux timhallinflux added this to the 1.0.0 milestone Dec 20, 2016
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

No branches or pull requests

3 participants