Search Postgresql Archives

Re: Duplicate key violation on upsert

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/25/20 5:23 PM, Matt Magoffin wrote:

On 23/03/2020, at 1:10 PM, Adrian Klaver <adrian.klaver@xxxxxxxxxxx <mailto:adrian.klaver@xxxxxxxxxxx>> wrote:

So the query is in the function solardatum.store_datum()?

If so what is it doing?

Yes. This function first performs the INSERT INTO the solardatum.da_datum table that we’re discussing here; then it inserts into two different tables. If it helps, the actual SQL is available here:

https://github.com/SolarNetwork/solarnetwork-central/blob/4fa585929a5526187ade0e842c809837647c6a41/solarnet-db-setup/postgres/postgres-init-generic-datum-x-functions.sql#L203-L242

Well morning and coffee helped some, but not enough to offer blinding insight. Reviewing the function above, the TimescaleDB insert block function and the overview of the TimescaleDB hypertable architecture leads me to believe there is some sort of conflict between the solarnetwork functions and the TimescaleDB hypertable actions. It is a wishy-washy answer as I do not understand the TimescaleDB architecture well enough. You might want to reach to the TimescaleDB community to see if they can offer any further insight.


And could you capture the values and pass them to a RAISE NOTICE?

It would take me some time to get that change deployed. If I was able to, what information do you think would be helpful here, e.g. that jdata_a is NULL or not, or something else?

The duplicate key violation occurs infrequently, and it does seem appropriate to drop the UNIQUE constraint on the da_datum_x_acc_idx given uniqueness is really only wanted on (node_id, ts, source_id). As long as I can confirm that query performance doesn’t decrease, I’d like to recreate the index without UNIQUE. Then I’m hoping this problem, whatever the cause, goes away.

— m@


--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux