SQL’s not end

Today, in a distributed cloud environment, there is no good DB that can have both ACID and SQL support, at the same time keep the performance scale. So, there is NoSQL.

NoSQL means Not Only SQL. It does not means NO SQL. MongoDB-like applications have set up a bad example for its followers. A NoSQL DBMS might not use SQL as its base query language, but it at least should support SQL as a higher layer query language, just like what FoundationDB tries to do. Of course, the problem is ACID with the flexibility of SQL language, which is a rather difficult problem for a sharding DB, who becomes more and more common since cloud computing is conquering the server world. SQL language itself is not difficult to carry out, ACID with the ability to support complex SQL is.

But ACID is a must-have feature in many apps, not only bankers needs ACID, all app developer who wants to make a robust app must have transaction as one of their basic tools. No one can accept an app if it only acts normally when the user is lucky. Those who want to throw away ACID will only find they are implementing their own ACID solutions later.

There are many ways to overcome ACID implement problem. In the cloud, locking is an unacceptable way, unless there is some way to lock and sync at a very small, accurate level, which is not an easy job for 100+ sharding servers. Log and check(MVCC) is another way, which is easier than locks, and implemented in many DB solutions.

If ACID is possible in a cloud, SQL will be, too. But it may exist as a layer on an ACID system based on some simpler API. Whatever, SQL will not be ended by NoSQL and cloud, it will still be used in many places for whoever wants to keep data update easy(or even possible). Maybe one day there will be only copied and not reference in DB world, but I think the day has not come yet.

Book review homework

“Pride and prejudice” is an impressive classical English literature that tells a story about the relationship around the dutiful Jane, the quick-witted Elizabeth, the rich gentleman Darcy, and his friend Bingley.

The book tells a story about Darcy, who is the one that split Jane and Bingley because of his worries about their marriage, falls in love with Elizabeth, but is refused by her because of his pride attitude. Mr. Darcy then leaves a letter for Elizabeth in order to explain himself. After some incidents, Elizabeth forgave Mr. Darcy’s pride, and her prejudice disappeared. She accepts Mr. Darcy’s marriage proposal, and they live happily ever after.

It’s a book full of charm in which the author has picturized the capitalist society of England during the seventeenth century, in which people’s life was controlled tightly by the money and status. But the author selected a unique view, which showed people that below the cold surface of a man, there could be a warm heart. The story is awesome and full of surprises. And though it, we can find the power of true love can never be stopped by pride, prejudice, or any other thing. It will always surpass those emotions and finish their purpose.

DoS defense

Now, this site is free from small DoS attack. I use iptables, evasive, and some other techs to protect this site. Iptables will kill most DoS links after it reached some condition. I think any DoS attacker with only one IP can’t flood my site now. Cheers!

New server for new app

Well, a new Linode server with LUKS has been build to support this website and a branch of new applications. Build a LUKS encrypted system on a VPS is an exciting experience. However, sometimes, it seems stupid to do so. Since an admin who records every keystroke will easily record the password for LUKS. But my password is not for Linode, but for its hardware maintainer. I do not think Linode will record custom’s keystroke in their Lish console, at least not publicly. If they record it privately, it will only be available to a little part of their organization. So that if a disgraceful programmer wanted to record every file created in all Linode systems, he/she would not get my password to do it, though I’m not sure.

Of course, everyone who wants to get the LUKS key can do it by analyzing the memory. But it needs time and attention. So, hopefully, if people can put very sensitive like customers’ credit card numbers on Linode server without any encrypt, perhaps I can put my diary on it too.