cancel
Showing results for 
Search instead for 
Did you mean: 

How do we maintain multiuser controls across a "globally distributed database"?

1,592

Hello,

I am running a SQL Anywhere v17 server (actually an HA collection of servers managing multiple databases but to keep things "simple" assume we have only one database) on AWS. Access to the database needs to be available literally from any location across the planet. AWS makes available multiple Regions across the planet in which redundant servers could host the servers and database and this reduces access latency. While I have no detailed knowledge of them, I know that SQL Anywhere v17 offers synch capabilities so that all database copies in these various Regions could be kept "in synch" within a "short" period of time.

However, I have what I think is a very difficult ("unsolvable"?) architectural problem. The clients accessing the database provide "multiuser" access and controls. This has to be done to control simultaneous access when clients all need access to the "same set of data". For example, using the classic textbook example of an inventory system, multiple clients can each fetch the inventory for an item, some with the intent of reducing the item's stock count due to a sale and others with the intent of increasing the stock count due to the arrival of more items. The clients must be built so that the 1st client to access the inventory row "locks it" forcing all others into a read-only mode. All of these types of control are currently working (on our real data not the example inventory data). My question is not about how to manage multiuser access but, given that we must implement multiuser controls, how can I "distribute" a database to multiple locations but still maintain the multiuser controls?

"Simple" database replication obviously won't work here and I suspect that there is no "Sybase supplied" functionality that solves this problem. I am expecting to hear that the only solution is to build some sort of "very fast" messaging system in which we have to manage access that we manually coordinate between database systems. This has to be a "common" (or at least there is some number of others who have the same need) problem.

I'm very interested in everyone's comments and suggestions.

Thank you.

Accepted Solutions (0)

Answers (0)