2016-07-15 19 views
0

Wir Einfügen von Zeilen in einer PostgreSQL-Datenbank mit 1000 Zeilen Transaktion/begehen auf einer Pentaho-Löffel-Transformation.Einsätze blockieren andere Tabellen

Die Tabelle mehrere Felder/Einschränkungen als Fremdschlüssel hat, muss das heißt customer_id auf Kundentabelle und similars existieren.

Von Zeit zu Zeit, dass wir einen Deadlockfehler bekommen ...

ERROR: se ha detectado un deadlock 
    Detail: El proceso 29996 espera ShareLock en transacción 6643574; bloqueado por proceso 31826. 
El proceso 31826 espera ShareLock en transacción 6643573; bloqueado por proceso 29996. 
    Hint: Vea el registro del servidor para obtener detalles de las consultas. 
    Where: sentencia SQL: «SELECT 1 FROM ONLY "public"."customer_table" x WHERE "id" OPERATOR(pg_catalog.=) $1 FOR SHARE OF x» 

Wir hatten nicht erwartet, unsere Einsätze die anderen Tabellen zu blockieren. Der einzige Grund, den ich mir vorstellen kann, ist sicher zu stellen, dass der Kundendatensatz nicht während der verstrichenen Zeit der Transaktion gelöscht wird.

Da wir ziemlich sicher, dass kein Kundendatensatz sind, wird (keine Möglichkeit, unsere Benutzer können das tun) gelöscht wird, gibt es eine Möglichkeit, die gemeinsame Sperre zu vermeiden?

Auch wenn ther nicht der Fall, würde ich kein Licht zu schätzen wissen, was passiert :)

Thks

Antwort

0

Die INSERT muss die Zeile in customer_table sperren, um sicherzustellen, dass niemand sie löschen oder in anderer Weise modifizieren die id bis die Einfügetransaktion abgeschlossen ist und die neue Zeile für alle sichtbar wird.

Es könnte jede UPDATE oder DELETE auf customer_table sein, die die INSERT blockiert.

Ich empfehle ein Upgrade auf PostgreSQL 9.3 oder höher, dann ist die INSERT eine SHARE Sperre auf der übergeordneten Zeile nicht nehmen, sondern eine FOR KEY SHARE Sperre, die auf nicht customer_table mit UPDATE s Konflikt, hat keinen Einfluss auf jede Spalte mit einem eindeutigen Constraint . Das verbessert die Parallelität und vermeidet möglicherweise die Deadlocks, die Sie erleben.

Verwandte Themen