Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 18:50

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



MySQL paralleler zugriff

Discussion on MySQL paralleler zugriff within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
SCORNI's Avatar
 
elite*gold: 26
Join Date: Jun 2009
Posts: 972
Received Thanks: 228
MySQL paralleler zugriff

Heyo,

ich konnte mich nicht ganz zwischen Web Development und General Coding entscheiden, falls ich hier falsch bin bitte verschieben

Und zwar habe ich ein theoretisches Problem welches ich nicht selber recherchieren konnte auf Grund fehlender Suchbegriffe.

Ich habe eine mysql Tabelle mit einem Pool an Werten, die zweite Spalte gibt an, wem dieser Wert zugeordnet ist. Ist die zweite Spalte = null, so ist dieser Wert noch nicht zugeordnet und kann noch vergeben werden.

Nun habe ich zwei SQL Verbindungen die zu genau dem gleichen Zeitpunkt eine Query abschicken um einen freien Wert aus dem Pool zu nehmen und diesen zuzuordnen.
Als Beispiel wird das ganze mit zwei Querys pro Verbindung umgesetzt

Query 1: Liefere mir einen freien Wert
Query 2: Ordne xy dem Wert zu

Im optimalfall läuft das so:

ZeitpunktAktion
t0Verbindung 1 fordert freien Wert aus Wertepool
t1Verbindung 1 erhält ID von freiem Wert (z.B. 10)
t2Verbindung 1 führt update statement auf ID 10 aus und ordnet den Wert zu Verbindung 1 zu
t0Verbindung 2 fordert freien Wert aus Wertepool
t1Verbindung 2 erhält ID von freiem Wert (z.B. 11)
t2Verbindung 2 führt update statement auf ID 11 aus und ordnet den Wert zu Verbindung 2 zu

Was aber, wenn der Scheduler ungünstig zwischen den Threads switcht und das ganze dann so aussieht:

ZeitpunktAktion
t0Verbindung 1 fordert freien Wert aus Wertepool
t1Verbindung 1 erhält ID von freiem Wert (z.B. 10)
t2Verbindung 2 fordert freien Wert aus Wertepool
t3Verbindung 2 erhält ebenfalls freie ID 10, da noch keine Zuweisung von Verbindung 1 stattgefunden hat
t4Verbindung 1 führt update statement auf ID 10 aus und ordnet den Wert zu Verbindung 1 zu
t5Verbindung 2 führt update statement auf ID 10 aus und ordnet den Wert zu Verbindung 2 zu

Ende vom Lied wäre ein Überschreiben der Zuweisung für Verbindung 1 und somit ein kritischer Fehler

Falls sich hier jemand mit thread sicheren DB programmen auskennt wäre ich über Hilfe sehr dankbar.
Normal würde man ja sowas mit semaphoren/mutexen umsetzen aber bei DB Operationen bin ich bei sowas echt ratlos...
SCORNI is offline  
Old 01/08/2018, 22:04   #2



 
Serraniel's Avatar
 
elite*gold: 0
The Black Market: 205/1/0
Join Date: May 2010
Posts: 6,853
Received Thanks: 5,106
Schau dir mal Transactions an:
Serraniel is offline  
Thanks
1 User
Old 01/08/2018, 22:07   #3
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487
Was du suchst sind "Transaktionen". Speziell "Locking Reads" mit "FOR UPDATE"

florian0 is offline  
Thanks
1 User
Old 01/08/2018, 22:17   #4
 
SCORNI's Avatar
 
elite*gold: 26
Join Date: Jun 2009
Posts: 972
Received Thanks: 228
Perfekt, danke euch beiden. Genau das hab ich gesucht!
Scheint garnicht so schwer zu sein wenn man weiß wonach man suchen muss
SCORNI is offline  
Old 01/09/2018, 02:21   #5
 
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487
Quote:
Originally Posted by SCORNI View Post
Scheint garnicht so schwer zu sein wenn man weiß wonach man suchen muss
Ist das nicht immer so wenn man was nicht findet ;D


Du kannst das Ganze natürlich auch mit Lock/Semaphore/Mutex in deiner Anwendung lösen. Dann tritt das Problem aber spätestens wieder auf, wenn du deine Anwendung 2x startest.
florian0 is offline  
Reply


Similar Threads Similar Threads
Mysql funktioniert nicht.. service mysql status mysql does not exist in /etc/rc.d
07/09/2015 - Metin2 Private Server - 8 Replies
Hey, mein Mysql Server funktíoniert von jetzt auf gleich nicht mehr.. Kam aus dem Freibad und alles war down.. Wenn ich den Mysql Server starten will sagt er mir: " service mysql status mysql does not exist in /etc/rc.d or the local startup directories (/usr/local/etc/rc.d) " Und wenn ich meinen Metin Server starte "cant connect to 127.0.0.1" weil der Mysql Server down ist..
[Hilfe] FreeBSD kein zugriff als root / kein FTP zugriff
03/25/2012 - Metin2 Private Server - 5 Replies
Hallo Community, ich beschäftige mich jetzt seit 3 Stunden mit einem Problem auf meinem FreeBSD-Server. Ich Installiere FreeBSD über die .iso in Virtual box und wen es installier ist Loge ich mich mit root ein. Dann aber habe ich mit root keinerlei Zugriffsrechte. Ich kann als normal angelegter User auf den FTP Server zugreifen aber als root nicht. Und ich kann nicht in /etc/ssh/sshd_config die Einlogrechte ändern weil dann Permissen denied kommt. Bitte um Hilfe mein Skype: passilp Ich...
MySql kein zugriff ! Bitte um Hilfe
07/09/2010 - WoW Private Server - 1 Replies
Hallo zusammen ich habe mir den easy Handler v 0.3.9 von Novo geholt. Wenn ich ihn nun starte fährt er auch ganz normal hoch etc in der server console ist auch alles in ordnug. Allerdings im Launcher vom Handler (wo man alles einstellen kann den server starteten kann etc) steht halt mehr oder weniger auch alles normal drinne wie das die ports ok sind usw dann kommt allerdings zugriff verweigert <-- Hir sollte doch eigentlich sowas stehen wie MySql starting Apache starting Hoffe ihr...
MySql zugriff von anderen Ip´s
04/28/2010 - Metin2 Private Server - 13 Replies
Hallo elitepvpers! ich habe schon überall gesucht jedoch war alles immer zu kompliziert. Ich möchte gerne wissen wie man MySQL zugriff freigeben kann damit zum beispiel ein freund von mir auf meine p server datenbank zugriff hat ! (wenn möglich!) vielleicht auch noch ftp zugriff, aber mysql ist im moment wichtiger. Vielleicht könnte da ein Experte in Sachen MySql gut beschreiben wie ich das schaffe ... Ich freue mich auf jede Antwort! greez arzel



All times are GMT +1. The time now is 18:50.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.