Le 08/12/2017 à 17:13, Norbert Hartl a écrit :
Hi,
Am 08.12.2017 um 15:32 schrieb Yann Lesage <yannlesag@gmail.com>:
Hello,
I write an driver for Arangodb . So like it's indicated in Arango documentation, I use the HTTP API. The repo is https://github.com/Valtena/Pharango
that is really wonderful. Iâm planning to do that for a long time but didnât find the time yet. Maybe I can find some time to help a little if you are interested. I have see that on the Pharo Discord. I don't had finish a first version, write the road map and contributor.md, so it maybe a little early for that. But I not against a code review in futur or another help.
Now, the problem : Arango using Znclient make around 1 000 requests/second.
And the question : Are there any recommended pratice to have the better performance with ZNClient or a better way to perform lot of HTTP requests ?
I think the biggest benefit comes from caching the ZnClient. It is designed to be used like that. Next could be using keep-alive in order to reduce the number of connections to be made. Finalky I could imagine that pooling the most heavy objects in zinc can remove stress from the garbage collector. I am agree with this. I cache the ZnClient, without that, I don't have more than 400 or 500 request/s. And the keep-alive is the default behavior in Arango et ZnClient.
Norbert
Thanks for your attention,
Yann Lesage
Le 08/12/2017 à 22:14, Stephane Ducasse a écrit :
Yann I do not think that connecting a database via a HTTP client can be as fast as with a FFI or other means. This is mainly why database like Gemstone are superior for accessing a lot of data. Stef
I know that, but I would try to have the better performances. After, user can group requests to limit the cost of http protocol. So, it's not a fatality. I think try to use the arango shell in futur. In first, I will finish the driver with HTTP client because is more easier to write it and more flexible in using with distant server. Yann Lesage