Locally hosted API speed

This thread is now closed to new comments.
Some of the links and information provided in this thread may no longer be available or relevant.
If you have a question please start a new post.
8 REPLIES 8
Experienced Partner JohnCro
17 Posts
Experienced Partner
Australia
Experienced Partner

17Posts

1Kudos

0Solutions

Re: Locally hosted API speed

Appreciate the feedback Shaun!
Already using SSD raids and current gen xeon CPUs. It would be great to see $select support in the future, till then we'll sit tight.
Former Staff ShaunWilde
62 Posts
Former Staff
Australia
Former Staff

62Posts

3Kudos

0Solutions

Accepted Solution Solved

Re: Locally hosted API speed

I assume the endpoint queries mean that requesting a single field is not possible?

 

I understand what you mean and it has been discussed when considering implementing the $select support from OData but as it currently stands, no. 

 

For locally hosted API, as the database is file based then you may be able to improve performance by using SSD drives and more CPU grunt to the machine but there are limits to what can be achieved.

Regards

Shaun Wilde
Experienced Partner JohnCro
17 Posts
Experienced Partner
Australia
Experienced Partner

17Posts

1Kudos

0Solutions

Re: Locally hosted API speed

I assume the endpoint queries mean that requesting a single field is not possible? This could cut down the number of joins required and greatly speed up aggregation, but I imagine it wouldn't be feasible to implement in your current structure.
Former Staff ShaunWilde
62 Posts
Former Staff
Australia
Former Staff

62Posts

3Kudos

0Solutions

Re: Locally hosted API speed

The data to build a customer entity doesn't just come from the Card table but from a number of other tables in order to build the whole entity - these then have to be assembled and serialised across the wire.

Regards

Shaun Wilde
Experienced Partner JohnCro
17 Posts
Experienced Partner
Australia
Experienced Partner

17Posts

1Kudos

0Solutions

Re: Locally hosted API speed

As noted, the 1500ms is when retrieving MYOB data, the 48ms is when retrieving MS SQL Server data, so sadly no dice.
Super Partner Nic-acc-addons
507 Posts
Super Partner
Australia
Super Partner

507Posts

27Kudos

0Solutions

Re: Locally hosted API speed

Hi @JohnCro,

 

I may be oversimplifying this or not understanding but....

 

If it takes 1500MS to query a single customer and

48MS to query all of them.

 

Why not query them all, find the one you need and then do what you want with it.

 

To go down that path, i would take one of two approaches.  Either use the format=xml unsupported keyword and then use XPATH and XSLT to do the searching for you.... OR.... convert the JSON to XML and then use the XPATH/XLST THING.....or..... manipulate the JSON yourself (not sure what is possible given your architecture/platform).

 

Regards

 

 

Nic - Lead Developer at Accounting Addons
Home | Blog | BudgetLink | ExcelReportLink | ODBClink | DirectDebitsLink

Email me at nic@accountingaddons.com.au
Phone us on 1300 ADDONS (1300 233667)
Highlighted
Experienced Partner JohnCro
17 Posts
Experienced Partner
Australia
Experienced Partner

17Posts

1Kudos

0Solutions

Re: Locally hosted API speed

Thanks Keran,

Looks like it's not too far off the mark then, right now browsing through customer cards takes a couple of seconds to match CustomerID to a URI, then retrieve customer info (As opposed to SQLServ returning all customer info for all customers in 48ms!).

Sadly I can't do scheduled synchronising as the available credit must be up to the second accurate.

I guess it will just have to stay as is! Unless anyone else has a novel way of approaching the same problem? I'm stumped!
Former Staff KeranM
299 Posts
Former Staff
Australia
Former Staff

299Posts

94Kudos

0Solutions

Re: Locally hosted API speed

Morning

I've just run some tests myself against local databases using AdvancedRest Client

I notice the first hit to any given endpoint is around the 1000ms mark, with subsequent calls dropping to 500-700ms.

The complexity of the filter can impact, but the filter you have there is pretty simple really (and I was doing the exact same call)
Keran McKenzie
Futurist in residence @MYOB

Are you a developer? Check out http://developer.myob.com
Looking for an Add-on? Check out http://myob.com/addons/

Twitter: @myobapi | @keranm
Experienced Partner JohnCro
17 Posts
Experienced Partner
Australia
Experienced Partner

17Posts

1Kudos

0Solutions

Solved: Go to Solution

Locally hosted API speed

Hi all,

 

We're using the API v2 hosted on a local server. It's been integrated with our in-house MS Access/MSSQLS application to retrieve customer details (Over due amounts, credit limits, etc etc) and also to post invoices. All has been working fine for 2 or 3 years now, but from day 1 it has never been _fast_.

I'd love to hear from others here on response times for a simple GET request.

I seem to average around 1500ms for a GET looking like this:

http://[OUR-SERVER]:8080/AccountRight/[OUR ID]/Contact/Customer/?api-version=v2&$filter=DisplayID eq '26272'

What times do you experience?

Didn't find your answer here?
Try using advanced search to find a post more easily Advanced Search
or
Get the conversation started and make a new post Start a Post