7158
Jepsen: VoltDB 6.3
Serializability requires transactions appear to execute in some order, but doesn’t specify what that order should be. This allows for some unintuitive behaviors. For instance, read-only transactions may execute at any logical time, regardless of when the query is performed. Under serializability, SELECT COUNT(*) FROM USERS may always return 0, regardless of the number of users currently in the table, because when the table was first created, it had no contents. It could also return the count from five minutes ago. We call these reads-in-the-past stale reads.

Serializable systems are also free to discard write-only transactions by reordering them arbitrarily far into the future. This also applies to read-modify-update. For instance, we can UPDATE videos SET view_count = view_count + 1 WHERE id = 123 at any time, because you can increment any number, and if there’s no row 123, the where clause wouldn’t match. It would be legal to apply this transaction just prior to the heat death of the universe–and if that happened, nobody would see the increment. Therefore, a serializable system is not required to apply this update at all. Similar arguments allow serializable systems to discard transactions whose consequences would be overwritten by some already-executed transaction, and so on.
potks  database 
july 2016
« earlier      
3d advice ai ajax algorithms amazon analytics android animation apache api apple architecture art astronomy audio aws backup bash bigdata biology blogging book books brain browser business byichc camera canon career cartoons cloud code colors communication computing cooking cool css culture data database design development disk distributed diy documentary e-šoping ec2 education electronics email english entrepreneurship esx esxi facebook filetype:jpg filetype:pdf finance firefox flash fonts food free fromtcf fun funny future games general_nonsense google graph graphics gtd hack hacking hacks happiness hardware health history howto html5 humor ideas image inspiration interesting interface internet ios ip ipad iphone ipv6 java javascript jquery js language latex learning lens life lifehacks linux lol ltfe mac macosx management maps marketing math mathematics media:document media:image memory microsoft mobile money monitoring motivation music mysql network networking nexenta opcomm opensolaris opensource optimization oracle osx performance perl phd philosophy photo photography photos photoshop php physics plugin potks predavanja presentation privacy productivity programming psychology python quotes rails reference research ruby rubyonrails s3 scalability science search security server sleep social socialmedia software solaris space sql ssh startup statistics storage sysadmin technology tips tools towatch travel tutorial tutorials tv twitter typography ubuntu ui uncategorized unix usability usb utilities vb via:zite video videos virtualization visualisation visualization vmware web web2.0 web20 webdesign webdev what_i'm_reading wifi windows wordpress work writing xp youtube zfs

Copy this bookmark:



description:


tags: