Earlier today we launched the latest versions of our v2 and v1 API endpoints with new performance improvements and in the case of the v2 API new features too. We've updated both our Web Interface page and our API Documentation page to take full advantage of the new features. Below we've included some of the development process we went through.
In testing the average lookup time of a single IP with the inference engine turned off and VPN checks disabled has been reduced from 42ms to under 1ms. This is a huge decrease in database transaction latency which is due to our new on-server custom in-memory database program we wrote last month.
We did initially have some teething issues with the new database software in February which is why we took a very cautious approach to the rollout by spending many weeks gathering data and making changes to make sure the software was stable and consistent in its performance.
When dealing with sub-millisecond data retrieval from other programs you start to see variance in performance caused by the operating system kernel and we saw these performance fluctuations mostly on our weaker node ATLAS when our custom process and our web-server interacted.
It took some time to find out the cause (kernel pausing new application connections due to high processor load) and to create a solution that would scale from our 32 threaded monster node (PROMETHEUS) to our weakest four threaded node (ATLAS). We were able to solve the problem two weeks ago but we allowed the new API version to run under our development cluster for a few more weeks so we could gather more data and be sure the variance we found was solved by our changes which it happily was.
So that brings us to today, both the v2 and v1 API endpoints are utilising the new process. Next on our agenda is to improve VPN checks which are quickly becoming a large quantity of the lookups we perform due to the popularity of the VPN tag in queries. We've already added sophisticated multi-level caching to ASN lookups which has lead to a dramatic improvement in lookup speed there but there is more we can do for those kinds of lookups aswell.
We hope everyone enjoys the new features, as we said at the top of this post the API Documentation page has been updated with all the new flags, these are only included on the v2 API and we will soon be showing a message in your dashboard if your most recent query was to our v1 API. We're still going to be offering the v1 API for many years and updating it to maintain functionality but all new features (such as new flags) will only be included on the v2 API moving forward.
Thanks for reading and we hope everyone has a great weekend!