Tag: software development

  • Self-aware Instances

    I like the idea of limited self-awareness in our systems.

    I’ve been seeing lots of monitoring solutions written up lately. I saw this blog from Phil Darmanin on SQLServerCentral and we have had numerous articles written over the years on building monitoring solutions. The build vs. buy debate is one that companies regularly have, and if time is an issue, my company, Red Gate, sells a great solution in SQL Monitor that’s worth checking out.

    However most of the solutions I see use a similar architecture. They have a central monitoring server that reaches out to all other servers and gathers information from them, which is rolled up into a database for reporting. That’s fine, but in many cases there isn’t a ton of testing or error handling built into home grown solutions, and when they fail, you lose data for the day. You also either go into fire-fighting mode to get things working, or you just drop data for a few days.

    However I’ve had a different approach in the past. I’ve typically had a set of monitoring scripts that I’ve deployed to each instance, having them run on a schedule that gathers all the data on settings, changes, backups, jobs, etc. for that instance. I then have a central server that just reads that data from each instance, so if I have an issue with my rollup process, I still have the data on each instance. For this Friday, I wanted to ask this question of you:

    Do you like the idea of architecting processes to be more self aware and distributed, or do you prefer some central process that reaches out to control everything?

    It’s an interesting debate, and one that reminds me of an MIT competition years ago. Early in the 90s, there was a competition where different professors were trying to build robots to navigate a space. One team used a central CPU with complex instructions that controlled the legs and eyes and made decisions. The other used smaller, less powerful controllers in each leg and eye and had them “learn” to work together. Both worked well in different ways, but the latter approach always struck me as a more interesting one.

    For your SQL Server, or application code, which approach to you prefer and why? Let us know this Friday.

    Steve Jones


    The Voice of the DBA Podcasts

  • Five Lines of Code

    An interesting story on how a database speeds up by changing some application code. Worth the read for sure.

    I caught this from Andy Warren’s blog, and it shows why we need developers to think for themselves and ask relevant questions, not just meet the spec. If someone had asked if Accuweather needed micro-granularity for location earlier, they might never have had issues.

  • Etiquette

    There is no book for modern etiquette

    The world has changed a lot in my lifetime in the way we communicate with others. I am sure that when the telephone was first invented, or live news broadcasts were available, people felt a similar shift, but the way that technology has allowed us to keep in touch with each other, instantaneously, almost anywhere on the globe, is amazing. I grew up with one phone in the house, with an extra long cord, and now have a Smartphone that gives me not only voice communication, but incredible amounts of data on a regular basis. I find myself communicating with text (Twitter), voice (phone), and even with myself (Evernote) almost every day.

    The shifts have also occurred very rapidly, which has brought with it challenges, and occasionally problems. This Intel survey highlights a few issues, and this PSA shows one that many of us are probably affected by at different times.

    In technology we have to deal with interruptions, and sometimes urgent situations that require immediate attention. We have to respond like a doctor on call for emergency room situations, but the reality is that most of our “alerts” aren’t that critical and no one, or no business, will die if we are a few minutes late. There are exceptions but for in most cases these events aren’t extremely time sensitive.

    As you build monitoring and alerting systems, include a little etiquette . Don’t unnecessarily page people, or alert them for situations that don’t need immediate attention. Bring visibility to problems, but don’t overwhelm someone with a large amount of data, and please, don’t alert people that things are working correctly. At this point in computing, automated systems ought to triage out most of the minor issues without involving humans.

    Our world has changed rapidly, with the speed and accessibility of communications growing quicker than our ability to deal with it. In some sense, I think that the deluge of data that we now have will bring new problems to our world, especially as more and more businesses look to analyze data in real time. We will face challenges that would have seemed like science fiction a decade ago.

    Steve Jones


    The Voice of the DBA Podcasts