"What's a multi-tenant database ? "
Ah, really ? You already described the concept so I thought you understood tenant data separation in a single DB. Let me know and I will re-post your comment :)
"It appears to me that the only level of isolation for tenant data that would work, would be to provide completely separate databases for separate tenants."
Actually in our case for our low end hosting, customers are on the same machine with separate DB's and web app instances.
In the Enterprise tier they get their own machine just for their apps.
However to users it's transparent.
Back to the the original topic.
Cloud hosting on i, Windows and Linux allows services to be transparent. Pick your platform. They all will work just fine :)
Won't necessarily cause IBM i to grow, but if it's working for you stay with it.
Regards,
Richard Schoen
RJS Software Systems Inc.
Where Information Meets Innovation
Document Management, Workflow, Report Delivery, Forms and Business Intelligence
Email: richard@xxxxxxxxxxxxxxx<mailto:richard@xxxxxxxxxxxxxxx>
Web Site:
http://www.rjssoftware.com<
http://www.rjssoftware.com/>
Tel: (952) 736-5800
Fax: (952) 736-5801
Toll Free: (888) RJSSOFT
------------------------------------------------------------------------------
If I were writing brand new, I would make the database
multi-tenant by using a tenant or company ID.
That sounds quite vague. What is a multi-tenant database? Embed Tenant ID in tables, partitions, or schemas? If so, then you wouldn't be providing adequate separation and isolation of tenant data. If one tenant were to make an emergency call to restore data from the nightly backup, you wouldn't want to do the same for all tenants. Tenants hate the thought of co-mingling their data with other tenants.
It's not really that hard. Why you complicate grasshopper ? :-)
It appears to me that the only level of isolation for tenant data that would work, would be to provide completely separate databases for separate tenants. That either leads you to separate virtual machine instances, or coming up with mechanisms for managing separate connection parameters for individual users. That leads to writing your own connection pool managers. How do you identify a specific user with a separate tenant? If User ID "JOE" is used by tenant #1, does that mean that the name (ID) JOE is unavailable for tenant #2? Tenants wouldn't like that.
Considering the stateless nature of Web interfaces, when JOE from Tenant #1 signs on to your web portal, how do you keep his "state" separate from that of JOE from Tenant #2?
-Nathan
As an Amazon Associate we earn from qualifying purchases.