I was talking to some people today about the concept of Autonomous Databases. The idea is that the database platform can do most, if not all, of the work of storing and managing data by itself.
These are a few of the concepts that were shared, primarily as discussion points, but you have to be in complete denial if you think that no one is working on such a thing:
Self-driving: The platform could do all the mundane tasks like tuning queries, adding more resources, backing up databases, patching, etc. Without your intervention.
Self-healing: When system errors occur, the system could heal itself. It might handle high availability for you in case of crashes, then rebuild the replica.
Self-securing: Detecting any external and internal attacks. For example, a user just happens to be selecting all the data from all your tables. It might also detect personal information being stored and encrypt that data for you.
Self-scaling: Scaling up and down based on your needs.
Self-cost managing: Making sure you spend the least amount of money needed.
Self-designing: You tell the server what you want to store, and then it could create tables and interfaces for you.
If you search for the term, you will likely find a lot about Oracle’s product of the same name which is a start of this. Azure SQL DB does some of this too. But think of the concept as going all the way into each of these concepts.
This all really starts to sound very Skynet, right? The machines are taking over! Sort of, maybe. There will likely be a day when we can create an AI that rolls up the knowledge of all the great data architects and DBAs in this world. This AI will be able to manage many databases on many servers and platforms better than most people.
I don’t see platforms becoming truly autonomous anytime soon, if ever. There is just too much that needs to be known about how a system will be used for an AI to operate. What data are you storing, when is this used, when do you expect large numbers of users, and what to do if you need to spend more than a certain amount? But what if the AI just said, “Transactions are very high; can I scale higher than the current spending threshold will allow”?
Clearly, there is a lot of control that you would have to give up and plenty of concerns. My question for you to think about (and reply to in the comments is this: As a DBA, what control would you give to AI to manage your databases?