I’ve written several articles and presented at the Greater Kansas City NetSuite User Group on the topic of performance. I’ve made suggestions to NetSuite. And now I’ve got some very good news for those of us mildly frustrated waiting on NetSuite transactions to complete.
To be fair to NetSuite, I’m not 100% frustrated with transaction wait times. I’m only 25 to 30% frustrated. The majority of my transactions complete in a reasonable length of time. However, many do not. When I’ve contacted support and complained, they have been very quick to help me find the reason my scripts are running long. And I’ve gone deep into the weeds with them to show them the problem is not with my scripts but with their shared hosting environment. In the end, they’ve fessed up that they are addressing the problem for me. And now… wait for it… here is the secret acronym that is going to fix us, OCI, Oracle Cloud Infrastructure.
From here on out in this post, I’ll sprinkle a little theory into a handful of facts. Then we will draw some conclusions together. I’ll share what I learned at SuiteWorld 2019 along with some personal insight from my 35+ years of experience as a programmer, mainframe system’s programmer, and a network engineer.
Now… I’m reading the tea leaves!
I attended a session titled “The Next Generation of NetSuite Service Delivery and Cloud Infrastructure”, by Anisha Bhatia and Brian Chess. It was very informative.
I’ve written in the past that I’m convinced that spiking server utilization in a shared tenant server environment is the cause of our periodic poor performance. I’ve recommended NetSuite find better ways to change the mix of tenants to even out transaction arrival times. In simple terms, I’m suggesting NetSuite play the shell game with customers who share a server so that they don’t all hit enter at the same time!
Here’s the problem (and here comes the speculation). We all know how long it takes to refresh our sandboxes. It can take several days! As a quick footnote, NetSuite is working very hard to reduce that time to less than 24 hours. Anyway, I digress. It takes a long time to move a company’s data from one provision of NetSuite to another. So reshuffling the mix of customers running on one server might be impossible because of the downtime that comes with that operation.
Now let me throw in a couple of facts that I heard from Brian Chess in his session at SuiteWorld. He used the term “Bare metal” to describe NetSuite’s hosting environment. Hmmm… Bare metal to me means the opposite of a virtualized environment. And we all know that virtualization adds overhead. Is it possible that the NetSuite system, at the application layer, is actually a multi-tenant app?
Let me throw one more fun fact at you that Brian explained in his session. He was describing the current database architecture and how it will be changing with the move to OCI. He said today, all tenants share a common customer’s table. What I heard him say completely reinforces my theory that NetSuite is written to be as performant as possible (according to the laws of physics), sharing common tables, running on bare metal hardware. It should scream!
Brian went into detail regarding how a customer query, like:
select * from customers
was translated (by something, he didn’t say) into:
select * from customers where tenant_id = @TENANT_ID
He elaborated on how database tuning today was done by a throng of DBAs. He explained that the goal with OCI was to move this database schema to separate databases, one per customer (CDB to PDB). He explained how (as someone who manages data centers) he employed a lot of DBAs who are constantly tuning our databases. With the impending move to OCI, his staff has done a number of performance benchmarks, comparing the two scenarios. What they found is that his DBAs are doing a wonderful job of tuning our DBs. The jump to OCI had little effect on performance. Great… I think!
He said the real improvement is this. Once every customer has their own database, the databases can be tuned automatically to perform optimally for the customer that they serve. They will not need to put so much effort into manually DBAing our data.
To me (again, this is speculation), once they break us out into our own databases, they can reshuffle the tenant mix and/or move our data from one data center to another with much less effort. To me, that is exceptional news!
So here’s the plan (and don’t forget Oracles Safe Harbour statement. This is speculation!). Today there are 6 data centers worldwide. Oracle is feverishly working to build 6 more. The old six use the old architecture. The new 6 will use the new OCI architecture. As they complete the new data centers (in pairs for redundancy purposes) they will move customers from old to new and shutter the old. This is part of Oracle’s big investment in NetSuite!
Now… one more fact. Some time ago, prior to SuiteWorld, when I contacted NetSuite support and ran them through our performance numbers, showing how it was their server farm that was slowing 25 to 30% of my transactions, and I suggested some changes. The support rep told me this. Oracle was in the process of making changes to improve the performance of my transactions. They were not focusing on my suggestions, but instead working on their hosting environment, making it faster. I believe this is what they were saying. They are pushing all their chips in on OCI.
Hopefully, you are as excited about this change as I am. I am 100% behind it. Kudos Mark Hurd. Thank you.