5 ms·
I think the author's take on this is a bit heavy with hyperbole, but there's no doubt Iowa was a mess last night. My son was there working as volunteer, and so
by oblib 7y ago
I think the author's take on this is a bit heavy with hyperbole, but there's no doubt Iowa was a mess last night.
My son was there working as volunteer, and so was his ex-girlfriend, who's still a close family friend. I was chatting with them both throughout the evening and into the wee hours this morning.
They worked different locations in the Des Moines metro area and the results they reported to me were pretty close to the same in both.
I'll say this about it, it's hard to imagine that less than 4500 calls to a server over the course of an hour or two would "crash" it, or even ten times that number. And that I think an SQL db is a poor choice for an app like that.
CouchDB, or most any open source "nosql" db, would've been a better choice and, really, so would a dead simple flat file db to store the data for each precinct in and those are both very easy to build for something as simple as this.
And they didn't even need an "app" per se. All they needed was a password protected web page with a dead simple form.
What happened makes it a bit difficult to avoid pondering if the delays weren't deliberate. Whatever the case may be, the DNC is who ended up taking it on the chin.
- monadic2 7y agoI'm not sure what the db has to do with this, you need to structure the data somehow to be able to tally and breakdown results. SQL databases can certainly handle multiple magnitudes more transactions per second so it doesn't strike me as prima faciae bad decision making.
- eej71 7y agoDatabase? Heck, I would think each precinct could have uploaded their own csv file in a common format. Concatenate all of those, pop it into excel, and pivot table away. But what do I know.
- oblib 7y agoIt's basically a "KISS" issue. The data being submitted is so simple that using an SQL db adds a layer of unnecessary complexity. So did their decisions for authentication, which appears to be where things got stuck.
- brutal_chaos_ 7y ago> Whatever the case may be, the DNC is who ended up taking it on the chin. This should fall on the IDP (Iowa Democratic Party) as they commissioned the app...
- mdavidn 7y agoAny database should work just fine for this application. 1678 precincts. 11 candidates. 2 rounds. That's 37 thousand records to fully represent everything.
- brootstrap 7y agoBut david this is a perfect application for a noSQL db.
- redisman 7y agoYes bad analysis-by-cool-new-tech above. Just throw it in a tiny MySQL instance it's totally fine, this is toy-project levels of data.
- oblib 7y agoWith CouchDB you could have all that data in 1678 human readable files. Or 1678 password protected databases with one or more human readable files in them and let CouchDB handle user auth, which CouchDB makes really easy. You could do the same thing with a simple flat file database using directories and files and system level user access, and it'd be very fast too. This is pretty much the kind of thing CouchDB is designed for though and has tools built-in to make it easy.
- ars 7y agoI have a feeling you haven't used SQL databases very often. This is exactly the kind of thing that SQL database is shine at and noSQL databases do poorly.
- oblib 7y ago> I have a feeling you haven't used SQL databases very often. No, I've not. I just never liked the way it worked so I have to honest and open about my prejudice. > This is exactly the kind of thing that [...] noSQL databases do poorly. That's really not true. I've built web apps that do pretty much exactly what that voting apps does and I use CouchDB to do it because it was built specifically for this kind of thing, and it makes it very easy. That's not the same as saying SQL won't work. Or even that it's a bad choice by design if it's what you're familiar with and good at using it. How much time have you spent with CouchDB? I do know that those coming from a long history of using SQL dbs often have a hard time using CouchDB. I had a hard time with SQL, so maybe it's a right brain/left brain kind of thing. Or maybe it's just not really wanting to learn a different way to do what you already know how to do with a different tool. I chose to use a hand rolled flat file database early on (around 2000) as a backend for my web apps. When CouchDB hit v1.4 I switched to it because it worked very much the same as my db and offered a lot of advantages. It's gotten a lot better over the years since too. So yeah, my view comes from a different perspective.
- marrone12 7y agoIn what way is a sql db a poor choice for this? You do know that there are tens of thousands of businesses that run strictly on postgres/mysql with more throughput than that?
- jessaustin 7y agoI'm not sure that proposing alternate solutions is so enlightening. Even so, they could have just had the person in charge of each location post the results to twitter. Then they wouldn't have had to do any tabulation, because the public would have done the tabulation for them...
- oblib 7y agoI like that idea a lot.