I am inserting data into QuestDB using the Go client. I have enabled auto-flushing and I am using the http transport, so retries are automatic in the case of network errors or timeouts, which is convenient as the network is flaky between my clients and my server.
I have several sensors sending data each about every 10 seconds or so. Most of the times all is good, but I have observed sometimes I get some rows that look like a duplicate except for the timestamp, which is a few milliseconds apart. I can confirm my meters don’t send individual data more often than once every 10 seconds or so, so it is impossible that I am sending the duplicate rows. I’ve seen this only on a few rows out of over a billion. It is not a big issue, but still annoying.
My relevant code looks something like this for each row. I use the default autoflush configuration, and the client sends data for several meters, at about 200 events per second.
err = client.Table("smart_meters").
Symbol("device_id", "BAA-142").
Symbol("mark_model", "E23M-V86").
Symbol("status", "OK").
Float64Column("energy_consumption", 415).
Float64Column("power_factor", 0.89).
AtNow(ctx)
Any idea why I might be getting phantom rows?