Category: Editorial

  • Who’s Responsible?

    In college and for a short time afterwards, I worked at restaurants in various capacities. I’ve held most of the jobs available and enjoyed my experiences. I had good and bad bosses and sometimes had to endure questionable practices from management. Often I needed money, so I couldn’t take a moral stand and was at the mercy of some manager. I think a bad restaurant manager at a part-time bartending position eventually caused me to choose to leave that industry. With a fulltime day job in technology, I could forgo the extra weekend money to avoid additional stress.

    Bad managers and practices still exist, and I was reminded of this in an article recently. The practice of forcing employees to pay for mistakes is blatantly illegal, and I hope someone gets a few days in jail as a result of the case. However, I started to wonder if this trend might ever make it to our industry. Especially with the changes in services as more systems move to cloud environments.

    I’ve worked in companies that debated my expense reports, and refused payment for some charges. Some of your might have had the same experiences, which often cause you to be very cautious about future expenditures. That could be good or bad for business, but it certainly is a problem for the employee.

    These days I find plenty of employees that will setup or provision some cloud service using their own credit card, expecting to be reimbursed at the end of the month. What happens if the company doesn’t want to pay? A manager decides the service wasn’t necessary. What would you do? What if you provision the wrong service, or forget to terminate something. These are common mistakes in business, but would you pay for the mistake? What if you didn’t pay for the service, but the company wants to deduct the charges made by mistakes from your paycheck. Do you fight this? Bring a lawsuit? Plenty of possible actions might ensure you aren’t financially penalized but could cost you your job.

    I’d like to think that this wouldn’t be an issue for salaried, technology workers, but I wonder. Is there any reason to worry? Let me know what you think.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 3.9MB) podcast or subscribe to the feed at iTunes and Libsyn.

  • Graphing Performance

    We have a lot of different database platforms to choose from when building software. Most of us reading this are SQL Server users, and likely relationally biased. However, key-value stores, document databases, graph databases, and more are out there. If you work with developers that embrace change and new options, likely you’ve been asked about implementing some sort of NoSQL database instead of SQL Server for some project. Maybe you’ve even been asked to migrate away from SQL Server to an Open Source (OSS) NoSQL platform, with the lack of software cost being a factor.

    I do think that there are some domains of problems that relational systems don’t handle well. Certainly at scales (data volume or rate), there are better ways to deal with some data sets in a less structured and tightly coupled way. We see that in the large scale web companies like Google, Twitter, Facebook, etc. If these companies had tried to build their entire system on a RDBMS platform, they would have struggled to grow, and maybe not even reached the size they are.

    I’ve been reading and playing with the new graph capabilities of SQL Server 2017, trying to determine what I think of the concepts. Certainly large scale many-many relationships don’t seem to be a strength of relational databases and I’ve thought there are certain types of queries or data models that might be better handled by a graph database.

    Then I ran across this report from a few researchers that examine how graph database compare to relational ones. After all, we’ve grown accustomed to using RDBMSs in many environments and situations. What better way to evaluate the performance of a specialized database than compare its performance in the problem domain its designed to solve to that of a general database platform.

    The results are a little surprising. Even with a sub-optimal query language, I would have expected the graph database to perform better. Instead, relational seems to handle the reference graph workload better. Raw performance isn’t everything. Ease of development and ability to scale are important. There may be other considerations in your system as well, but I did find this to be an interesting paper.

    We will see how the world of specialized databases handles real world workloads over time as more companies use them, but for now, I’d be skeptical of replacing an existing, working RDBMS with something unproven. I’d need to see a good POC that shows quite a bit of improvement across a variety of metrics, not just scalability.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 4.0MB) podcast or subscribe to the feed at iTunes and Libsyn.

  • The Career Bucket List

    The Bucket List is a fun movie to watch, where two old men get a second chance at life and engage in some activities they’ve always wanted to enjoy. The idea of a bucket list isn’t new, and there are plenty of sites that can help you manage one. Brent Ozar has one on his site that he calls his Epic Life Quest, and I’ve enjoyed watching him tick off items. I got the idea of my own list nearly 20 years ago after hearing Ted Lesonis on the radio. He had a list of 101 things to tackled in life. Since he sold his stake in AOL, he’s had the resources to work on them. I have one, along with my wife, and we’ve worked through a few items over the years, though we were talking recently we need to revisit the list and perhaps revise things.
    Why revise a bucket list? One of the things I’ve learned over time is that I change and the values, goals, and desires I once had will also change. The things I’ve had put on a list at 20 years old would have included owning a Ferrari, a Porsche, and a Lamborghini. At 40+, having owned a Porsche, the other things seem a little silly and vain, not to mention very impractical. At this point in my life, there are other things I find more interesting and captivating. The bucket list of today would be more experience based and likely contain more volunteer oriented goals.
    I think my career has really changed as well, and as I move towards retirement, I don’t know if there are many more goals for me in this area.  However, if I think back, I know I’d have had lots of them when I were younger. There are a few things I’d still like to accomplish, and hopefully I’ll find some time to work on them. For now, I wanted to ask you about your career.
    What’s your career bucket list? Is there something you’d want to accomplish? Build some software? Work in an industry? Get a particular job, position, or work in a location? Maybe you’d like to become an advanced techie on some platform or using some technology. There might even be a goal you have to achieve some recognition for your skills.
    This is a tough question to spring on you in an editorial, but leave a comment if something comes to mind. If it does, maybe you want to jot some notes down that might help you move towards that goal. Even if nothing strikes you, perhaps you want to bookmark this piece and spend some time in the coming weeks thinking about your career. Goals are always good, and they can help drive us in a direction that may ultimately provide some meaning or satisfaction that is lacking.
    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 4.2MB) podcast or subscribe to the feed at iTunes and Libsyn.

  • The Downsides of AI

    I remember reading about AI as a college student, and I always wondered if we’d get computing algorithms that might actually make better decisions than informed humans. As my tech career grew, I saw the advancement in systems, like Deep Blue, that showed we could build better systems that might beat humans at their own games. The recent success of AlphaGo makes me wonder what the next challenge will be?

    Certainly machine learning (ML) and AI-like systems are becoming quite popular in business these days. More and more companies are trying to find ways to use these computer science tools to improve their organizations capabilities. Whether these techniques will continue to be popular remains to be seen, but in the short term, all the efforts of companies like Microsoft and Amazon will get many companies to try to build intelligent systems.

    There is a lot of data being used to fuel these AI and ML applications, so it’s a natural fit that many data professionals will want to be involved. It’s a complex area, where lots of data is used to conduct lots and lots of experiments. That type of work my not suit many of you, but give it a try on one of these platforms and see what you think. Perhaps this is work you will enjoy. However, even if you enjoy the work and become good at it, there’s potentially some issue that may impact the use of these systems.

    We don’t know how most of the applications actually work. That’s because we haven’t programmed them. In some sense, many of these systems learn from data, and with a little guidance, but there isn’t necessarily a debug log that might explain all the actions. That is perhaps the dark secret of AI. We don’t really understand what’s going on.

    The article linked above looks at autonomous cars, which a number of companies are researching and building. One of the issues with the complex system(s) that runs the car is that we don’t necessarily know how it works. This might not bother technical people, but it certainly does bother many people. When there is a problem, and there will be a problem since there are always failures, how do we determine what went wrong and make it better? Add more data and retrain the system? I’m not sure that is a solution that most people will accept.

    Ultimately I think some of the research and work on AI needs to focus on allowing the model to output a set of data on what data is being weighed and the impact on the flow of information that leads to a decision. I know this is a tremendous amount of data, but it is probably the type of analysis that is needed for accountability in these systems. After all, it’s not just cars where this matters. Imagine that your have an AI system that cuts off all AC in the summer, or decides not to order enough resources for a busy time period. How do we explain to management that “the system just decided” on that course of action? I really think we need better tools for analyzing these models.

    Steve Jones

    The Voice of the DBA Podcast

    Listen to the MP3 Audio ( 4.1MB) podcast or subscribe to the feed at iTunes and Libsyn.