From: Markus F. <in...@fl...> - 2010-04-30 12:54:37
|
..hmm, this seems only to work if you can access directly the database and get the results back? I have to use several methods (like ISSN-mapping) before getting the availability data itself. However this could be a way too... Right now, I am trying to speed up things concurrently, sending the requests over the web using curl: http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/ I can see the requests beeing sent concurrently ... ...but I am still on my way to make this fit into the driver section of Vufind. I think the approach of curl could be of general use for the Drivers in Vufind. Markus Osullivan L. schrieb: > > Hi Markus, > > I have reversed the way getstatus and getstatuses interact. Rather than > having getstatuses split up the item ids and send them to getstatus, I > have getstatus turn the single id into an array and pass that to > getstatuses. > > getStatuses now submits one sql request which is equivalent to select x, > y and z from database where id = 1 and id = 2 and id = 3 etc > > I haven't benchmarked it but it certainly seems to have improved speed. > > Cheers, > > Luke > > *From:* Markus Fischer [mailto:in...@fl...] > *Sent:* Fri 30/04/2010 09:11 > *To:* vuf...@li... > *Subject:* [VuFind-Tech] speeding up getStatuses > > I am trying to speed up the function getStatuses within the driver-section. > > Has anybody already found a solution for the serialised web-requests, > that the drivers do generate? > > getStatuses will issue up to 20 requests one after the other, always > waiting untill the previous has finished before starting a new one. > > Now, with PHP it isn't possible to work truely multithreaded. But are > there some other creative ways of speeding things up? > > What I already did: > > Improve SQL-performance on the side of the "ILS" (only a register, not a > true ILS). There are always two sides... ;-) > > So after that: > > sending 20 serialised request > > ab -n 20 "http://target <http://target/>" results in 5.715 seconds > > while sending 20 requests per 10 concurrent > > ab -n 20 -c "http://target <http://target/>" results in 0.842 seconds > > Is there a way to make this kind of paralellised approach happen for > getStatuses in PHP? > > Markus > > ------------------------------------------------------------------------------ > _______________________________________________ > Vufind-tech mailing list > Vuf...@li... > https://lists.sourceforge.net/lists/listinfo/vufind-tech > |