james_anderson
Joined 9 years ago
Joined 9 years ago
These cloud flavours have a compatible SQL dialect, but it's often details like missing features (CDC and Auditing on RDS are good examples) or differences in system objects that make it difficult to support your app on these platforms.
I capture all sql statements, run them through multiple SQL parsers to find all the system objects your app is using (tables, functions, stored procedures, etc). I then check them all against a catalog I have built of all system objects for every version of SQL Server on every platform.
I then give a report to see which platforms your app will work on, which ones it wont work on and which system objects are the problem.
Other database engines will be added once I get it working end to end (almost there).
I also found that not timing myself worked really well. Too many times I would finish a run feeling good, check my time and then feel bad that I didn't beat my pb. Stopped that and every run was positive.
Are you planning to do that in production?
I'd love to hear from anyone who is even just thinking of doing this.
> dynamically adding Always On Availability Group read-only replicas
Yeah I doubt scaling SQL Server out dynamically will ever make monetary sense, but it might be cool to just get it working.
I'm thinking of creating a Helm chart for K8s that allows you to dynamically scale the SQL Server pod up and down. I think I'll need to use some undocumented DBCC commands (or call the API) to freeze IO, so I can replicate the data files to the new secondary as it spins up.
Horizontally scaling SQL Server would be cool. Maybe if the hosts were licensed so we could run as many containers as we wanted, it could make sense...