Re: [Maria-discuss] New Question: Non-blocking calls from PHP
Hi, I removed dependencies on the perfschema, I removed the `threads` table, the queue is now FIFO. The queue() proc now also populates @query_list, with queries in order as they were submitted. You can submit a bunch of queries then call wait_all() to wait for each submitted query, and return results, in the order that the queries were queued. --Justin On Wed, Feb 24, 2016 at 11:34 AM, Justin Swanhart <greenl...@gmail.com> wrote: > oops, didn't copy the list. > > -- Forwarded message -- > From: Justin Swanhart <greenl...@gmail.com> > Date: Wed, Feb 24, 2016 at 11:34 AM > Subject: Re: [Maria-discuss] New Question: Non-blocking calls from PHP > To: Federico Razzoli <federico_...@yahoo.it> > > > Hi, > > For now, if you want FIFO, just change the ORDER BY q_id DESC to ORDER BY > q_id. The execution is parallel, it shouldn't starve queries. I will > probably change this anyway by changing the structure of the `q` table to > have a primary key that sorts by the completion status and a unique key for > the auto_increment columns, then it can naturally be FIFO without causing > lock contention due to locking scanned rows in InnoDB. > > The workaround for GET DIAGNOSTICS is to change it to not use that and > just put a generic error in the table. You can't use conditional version > syntax in stored procs, and I don't want to have two different versions of > the script, since everyone really should be using 5.6+ or MariaDB 5.5+ IMHO. > > I will remove count_running_threads, it isn't really needed because the > metadata locks held by the stored proc enforce that no more than > 'thread_count' threads can run. I will remove that code shortly. I wasn't > using metadata locks when I started writing the tool. This will remove the > dependency on global variables and the processlist. > > It is version 1.0 and is still experimental :) Thank you for the feedback. > > --Justin > > On Wed, Feb 24, 2016 at 10:58 AM, Federico Razzoli <federico_...@yahoo.it> > wrote: > >> Yes, GET DIAGNOSTICS is in 5.5 (and anyway, a workaround for older >> versions should be possible, correct?). >> >> Some comments: >> >> 1) The LIFO tables sounds to me a little dangerous. Of course >> "asynchronous" means "asynchronous", but under certain circumstances some >> queries could wait too much... don't you agree? Maybe the direction could >> depend from an option... >> >> 2) SELECT queries are "materialized", which is cool. But I don't >> understand how the user can associate an async query with the results table. >> >> 3) In MariaDB, the P_S is disabled by default, and a user can still >> disable it in MySQL. Also, in MariaDB global_status is in I_S, while MySQL >> has it in P_S (another funny incompatibility developed by Oracle). The >> first problem can probably be addressed with CONNECT (SRCDEF='show >> processlist') and the second with a view in async schema. Would you accept >> a patch? >> >> Probably more comments/questions will come. In the meanwhile, thanks for >> your work (again). >> >> bye >> Federico >> >> >> >> Mer 24/2/16, Justin Swanhart <greenl...@gmail.com> ha scritto: >> >> Oggetto: Re: [Maria-discuss] New Question: Non-blocking calls from PHP >> A: "Federico Razzoli" <federico_...@yahoo.it> >> Cc: "Maria Discuss" <maria-discuss@lists.launchpad.net> >> Data: Mercoledì 24 febbraio 2016, 16:04 >> >> Hi, >> It is >> completely native. It consists of a queue table, a thread >> state table, a settings table, a stored procedure worker, an >> event to execute the worker (more than one run in parallel) >> and procs to drop off, check on, and get the results of a >> SQL statement (which always waits if the SQL is not done >> yet). >> I don't know >> if MariaDB 5.5 or 10 adds GET DIAGNOSTICS, but it will work >> with any version that has it. You can comment that out and >> just put a generic error into the table if it isn't >> supported, and it will work with any version that has >> SIGNAL. >> --Justin >> On Wed, Feb 24, 2016 at >> 10:01 AM, Federico Razzoli <federico_...@yahoo.it> >> wrote: >> Hi >> Justin! >> >> The name reminds me a a fatal trap for developers and sys >> admins (async npm module), but the tools sounds useful. >> >> Is it publicly available? Is it entirely implemented via >> stored procedures + event scheduler? >> >> >> >> bye
Re: [Maria-discuss] New Question: Non-blocking calls from PHP
Hi Justin! The name reminds me a a fatal trap for developers and sys admins (async npm module), but the tools sounds useful. Is it publicly available? Is it entirely implemented via stored procedures + event scheduler? bye Federico Mer 24/2/16, Justin Swanhart <greenl...@gmail.com> ha scritto: Oggetto: Re: [Maria-discuss] New Question: Non-blocking calls from PHP A: "AskMonty KB" <nore...@askmonty.org> Cc: "Maria Discuss" <maria-discuss@lists.launchpad.net> Data: Mercoledì 24 febbraio 2016, 15:32 Replying here in addition to the web page (ugh Frankenstein's monster)... I just finished the first version of 'async' which runs queries in the background (in parallel!) using a queue table, a crafty stored procedure for a worker thread, and an event which executes the workers. http://swanhart.livejournal.com/138754.html On Sun, Feb 21, 2016 at 8:55 AM, AskMonty KB <nore...@askmonty.org> wrote: Hello, A new question has been asked in " MariaDB Connector/C API Functions" by shestero. Please answer it at http://mariadb.com/kb/en/non-blocking-calls-from-php/ as the person asking the question may not be subscribed to the mailing list. I want to use non-blocking API ( https://mariadb.com/kb/en/mariadb/non-blocking-api-reference ) from PHP. Is it possible now? If no, can anybody give me directions how to implement my own PHP-extension in C (using Connector/C) or update the existing module? I don't think it's very complex, do I need to add just wraper-like implementations using blocking function as samples, don't I? To view or answer this question please visit: http://mariadb.com/kb/en/non-blocking-calls-from-php/ ___ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp -Segue allegato- ___ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp ___ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
Re: [Maria-discuss] New Question: Non-blocking calls from PHP
Replying here in addition to the web page (ugh Frankenstein's monster)... I just finished the first version of 'async' which runs queries in the background (in parallel!) using a queue table, a crafty stored procedure for a worker thread, and an event which executes the workers. http://swanhart.livejournal.com/138754.html On Sun, Feb 21, 2016 at 8:55 AM, AskMonty KBwrote: > Hello, > > A new question has been asked in " MariaDB Connector/C API Functions" by > shestero. Please answer it at > http://mariadb.com/kb/en/non-blocking-calls-from-php/ as the person > asking the question may not be subscribed to the mailing list. > > > I want to use non-blocking API ( > https://mariadb.com/kb/en/mariadb/non-blocking-api-reference ) from PHP. > Is it possible now? > If no, can anybody give me directions how to implement my own > PHP-extension in C (using Connector/C) or update the existing module? I > don't think it's very complex, do I need to add just wraper-like > implementations using blocking function as samples, don't I? > > > To view or answer this question please visit: > http://mariadb.com/kb/en/non-blocking-calls-from-php/ > > ___ > Mailing list: https://launchpad.net/~maria-discuss > Post to : maria-discuss@lists.launchpad.net > Unsubscribe : https://launchpad.net/~maria-discuss > More help : https://help.launchpad.net/ListHelp > ___ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp
[Maria-discuss] New Question: Non-blocking calls from PHP
Hello, A new question has been asked in " MariaDB Connector/C API Functions" by shestero. Please answer it at http://mariadb.com/kb/en/non-blocking-calls-from-php/ as the person asking the question may not be subscribed to the mailing list. I want to use non-blocking API ( https://mariadb.com/kb/en/mariadb/non-blocking-api-reference ) from PHP. Is it possible now? If no, can anybody give me directions how to implement my own PHP-extension in C (using Connector/C) or update the existing module? I don't think it's very complex, do I need to add just wraper-like implementations using blocking function as samples, don't I? To view or answer this question please visit: http://mariadb.com/kb/en/non-blocking-calls-from-php/ ___ Mailing list: https://launchpad.net/~maria-discuss Post to : maria-discuss@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-discuss More help : https://help.launchpad.net/ListHelp