4ae3665ad8
DBD::Mysql provides a mysql_auto_reconnect flag. Using it avoids the time required to do a $dbh->ping(). Benchmarks: use Modern::Perl; use C4::Context; for ( 1 .. 1000 ) { $dbh = C4::Context->dbh; } * without this patch on a local DB: perl t.pl 0,49s user 0,02s system 98% cpu 0,525 total * without this patch on a remote DB: perl t.pl 0,52s user 0,05s system 1% cpu 37,358 total * with this patch on a local DB: perl t.pl 0,46s user 0,04s system 99% cpu 0,509 total * with this patch on a remote DB: perl t.pl 0,49s user 0,02s system 56% cpu 0,892 total Testing the auto reconnect: use Modern::Perl; use C4::Context; my $ping = $dbh->ping; say $ping; $dbh->disconnect; $ping = $dbh->ping; say $ping; Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Comment: Real improvement. No koha-qa errors prove t/db_dependent/Circulation_issuingrules.t produces no error prove t/db_dependent/Context.t produces no error Test 1) dumped Koha DB, load it on a non-local server 2) run sample script whit and without patch, local and remote use Modern::Perl; use C4::Context; for ( 1 .. 100000 ) { my $dbh = C4::Context->dbh; } Main difference I note is with remote server a) without patch real 0m16.357s user 0m2.592s sys 0m2.132s b) with patch real 0m0.259s user 0m0.240s sys 0m0.012s I think this could be good for DBs placed on remote servers Bug 10611: add a "new" parameter to C4::Context->dbh When dbh->disconnect is called and the mysql_auto_reconnect flag is set, the dbh is not recreated: the old one is used. Adding a new flag, we can now force the C4::Context->dbh method to return a new dbh. Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Bug 10611: Followup: remove useless calls to dbh->disconnect These 3 calls to disconnect are done at the end of the script, they are useless. Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com> Signed-off-by: Paul Poulain <paul.poulain@biblibre.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com> |
||
---|---|---|
.. | ||
Acquisition | ||
Circulation | ||
data | ||
Koha | ||
Labels | ||
LDAP | ||
Members | ||
Record | ||
Reports | ||
Serials | ||
www | ||
00-strict.t | ||
Accounts.t | ||
Acquisition.t | ||
Amazon.t | ||
Auth.t | ||
Auth_SearchHistorySession.t | ||
Auth_with_cas.t | ||
AuthoritiesMarc.t | ||
BackgroundJob.t | ||
Barcodes.t | ||
Biblio.t | ||
Bookseller.t | ||
Borrower_Debarments.t | ||
Branch.t | ||
Budgets.t | ||
Category.t | ||
check_sysprefs.t | ||
Circulation.t | ||
Circulation_Branch.t | ||
Circulation_issue.t | ||
Circulation_Issuingrule.t | ||
Circulation_issuingrules.t | ||
Circulation_OfflineOperation.t | ||
Circulation_transfers.t | ||
ClassSource.t | ||
Context.t | ||
CourseReserves.t | ||
Csv.t | ||
External_BakerTaylor.t | ||
Heading_MARC21.t | ||
Holds.t | ||
HoldsQueue.t | ||
Holidays.t | ||
ILSDI_Services.t | ||
Installer.t | ||
Items.t | ||
KitchenSinkPlugin.kpz | ||
Koha.t | ||
Koha_Authority.t | ||
Koha_borrower_modifications.t | ||
Koha_Database.t | ||
Koha_template_plugin_Branches.t | ||
Koha_template_plugin_KohaDates.t | ||
Languages.t | ||
Letters.t | ||
Linker_FirstMatch.t | ||
Log.t | ||
MarcModificationTemplates.t | ||
Members.t | ||
Members_columns.t | ||
PatronLists.t | ||
Plugins.t | ||
Ratings.t | ||
Record.t | ||
RecordProcessor_EmbedSeeFromHeadings.t | ||
Reports.t | ||
Reports_Guided.t | ||
ReportsGuided.t | ||
Reserves.t | ||
rollingloans.t | ||
RotatingCollections.t | ||
Search.t | ||
Search_SearchHistory.t | ||
Serials.t | ||
Serials_2.t | ||
Service.t | ||
ShelfBrowser.t | ||
SIP_ILS.t | ||
SQLHelper.t | ||
SuggestionEngine_ExplodedTerms.t | ||
Suggestions.t | ||
sysprefs.t | ||
Tags.t | ||
UploadedFile.t | ||
VirtualShelves.t | ||
VirtualShelves_Page.t | ||
XISBN.t | ||
zebra_config.pl |