steder
I'm not the only one who'd like people to choose frameworks and languages on something other than gut feel and googlefight results, right?
Don't write your own license.
Don't write your own contracts.
Don't write your own legal documents.
There are plenty of solid, well written and unambiguous licenses out there that one can use to offer your users the same freedoms without the WTF.
Of course, this case the number of servers being managed is low enough that there isn't really a going to be much of a performance difference between Chef or Salt so this is likely just the preference of the current maintainers.
MySQL driver 1: http://pythonhosted.org/oursql/ MySQL driver 2: https://github.com/PyMySQL/PyMySQL
Both are well supported drivers. Much nicer to use than the old Python2 only MySQL-python driver, imo.
It fills in the common project search and fuzzy filename search features(amount other things) and otherwise stays out of the way.
http://morepypy.blogspot.com/2012/03/py3k-status-update-2.ht...
So my concern regarding consistency was that during this period after responding to the user but before your queue committed data that a bug or hardware failure would result in some users thinking that there requests were successful but none of their work would be saved.
As long as the user doesn't receive a response until data has been committed to your DB this makes sense.
Now that I understand the flow a bit better I agree that it makes sense. This is similar to what folks were trying to do with MySQL-Proxy. I still think that you're asking for trouble by coupling your components together in the same process and would really encourage you to take it to the next level by factoring out caching and proxying/batching of db access into their own services.
The more I think about this the more it seems like it would be reasonable to build as a separate twisted process and exposed through a api compatible with twisted.enterprise.adbapi... Figuring out reasonable (and general) ways to determine which statements can be safely batched could be quite challenging though.
If netflix cost exactly the same thing as cable I would happily pay because they distributes content in a way that is convenient for me and they don't run commercials to subsidize their income at the cost of my enjoyment.
You've put all your data in one basket. Anything happening to the application server results in data loss. Of course hardware failures happen and all the batching behavior here seems like it exacerbates the problem. A single server handling all writes and reads also makes it particularly difficult to update that server at any point in time. When is it safe to restart this server to apply an update or fix a bug?
Basically the author has avoided using a NoSQL database by reinvented a bunch of things to provide all of the downsides of a NoSQL database (eventual consistency, no ACID semantics) without any of the upsides (high availability, replication).
Alternative solutions to the "handle many requests" on top of a SQL server problem?
Have more application servers. You don't need to service all user requests from a single machine. You don't need to have user 10 wait on user 1s database write if they're independent. Multiple servers have other benefits like rolling updates...
Use memcache.
Use a (durable) message queue to offload work from a the web servers and do non-essential updates/inserts offline.
And of course: Just use a NoSQL database and design your application appropriately.
Ah yes, at midnight I'll just go walk over to my "dormitories" on my "plantation" and wake my "employees" and tell them to get to work harvesting cotton. In exchange for their 12 hour work day (and a comfy dormitory in which to live) I'll give them tea and a biscuit!
I don't understand why the "Average" American won't come work for me given these perks.
Is the argument simply that the app market is less crowded? Is a comparison of the number of websites on the internet(apples) to the number of android applications(oranges) that compelling?
Unfortunately I find many technology people are programmed to discount or deprecate any and all "soft" skills.
On a related note why bother to use Windows if you don't plan on purchasing other Windows-only software? Is the author also planning to pirate Visual Studio and the like as well? If no Microsoft software is being used why not try Linux or Mac?