Re: Domino REST performance analysis

Csaba Kiss has published blogpost http://xpagexplorer.org/domino-rest-performance-analysis/ about his findings regarding performance of various REST technologies available on Domino now.

Just a couple of remarks:

  • use case for reading 10000 documents at once is probably very far from most real world scenarios
  • some may argue ReadViewEntries method is not REST service per se. And it is a core function deep in the HTTP server, probably developed in C. That's something we can't beat I guess
  • SmartNSF doesn't (yet?) support reading data from ViewEntries. We are currently discussing if/how to implement it.

Comments

10K?

10K? who has such small data-sets?

Re: 10K?

Have you read the original blogpost? Total number of docs in test db is bigger. Problem is in my opinion in reading 10K of docs "at once", can't think of use case for this.

10K is small

Martin, I think it should be from point of view of using Domino as a database store like MongoDB is. If you are using SmartNSF or Domino REST APIs to get the data and having the data processed using a different service, I think 10K is very small.

10K

Martin

10,000 documents is not unrealistic for certain types of applications.

Re: 10K

REST service sending 10K documents in one go? Why not paged?

10K

How would you present 10000 rows of information to user in a way that is useful?

Not so uncommon for a Notes Client application

Our CRM (and probably many applications more) work like this. You have a view with thousands of documents (e.g. customers) and you start with the Notes type-ahead that filters the first column (which in this case is a search column).
This works quite good as does the search with full-text search which basically runs on a view with many documents.

Now I won't recommend doing this for the web but I could see where it comes from. If you are using something like DataTables you are sometimes tempted to just load hundreds or thousands of documents because client side filtering works quite well (bandwidth problems or server side filtering options ignored).

Now all benchmarks aside, if Domino is positioned as a Rest data store it should be competitive, especially when compared to free as in beer solutions.

Re: Not so uncommon for a Notes Client application

People are doing a lot of crazy things, but that does not make it right. Not caring about bandwidth is one of them. Mimicking Notes Client behaviour on the web is another one. I wouldn't say Domino is being positioned as Rest data store, it is just the only way we can keep using it and not live deep in the technological past.

I don't think its that

I don't think its that uncommon, especially if we are talking about system to system or application to application type integration. But I agree, delivering 10k dox/entries at once to a front-end is (in general) bad design. And if you are required to export large amount of data at once there are better ways to do it.

But it's probably a good (and perhaps even low) number to use for performance tests and to get an understanding of how fast and performat a service is (what it's suited for).

Other common aspects (and probably more important) to consider when implementing a restful API infrastructure might be concurrent access, throttling (limiting no of requests), authorization (URL signatures) authentication, API versioning, usage monitoring and so on. All will sooner or later be critical requirements for your API services (I have learnt this the hard way :))

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
15 + 3 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.