我在Mac OS X上有Intellij Idea 14 Ultimate.随着默认的1.6JDK打包,字体看起来很棒.但是,在更新Info.plist使用我的机器上安装的1.8 JDK时,字体看起来很糟糕.有关详情,请参见屏幕截图
使用JDK 1.6进行Intellij Idea 14字体渲染 -
使用JDK 1.8进行Intellij Idea 14字体渲染 -
我打算将cassandra用作我的应用程序的nosql数据存储.我有一个使用案例是更新用户的"余额".假设每个用户的余额存储为密钥UID_balance.现在,如果我的应用程序想要更新多个用户的余额,我将如何处理原子性?
我想,在某些时候,应用程序基本上会执行以下操作:
1. for each user u
2. current_balance = read_users_balance(u);
3. new_balance = current_balance + delta_for_user(u);
4. write_users_balance(u, new_balance);
5. end
Run Code Online (Sandbox Code Playgroud)
现在,这里有几个问题:
RDBMS'解决了这些问题,因为它们提供ACID属性,而Cassandra则没有.我最近看到Cassandra(2012年10月)已经开始提供Atomic Batches.我不确定这是否是解决这个问题的正确方法.
这是我和朋友一起集思广益的事情.我们实际上并不更新用户的余额,而是创建一条记录,将更新增量附加到不同的记录.例如:
UID1_balance = {100}
UID1_deltas = {10,20,-40}
Run Code Online (Sandbox Code Playgroud)
为了获得当前的余额,我们只需将增量应用于余额.我们可以有一个脱机过程,将增量应用于用户的余额并修剪增量列表.
这个解决方案起作用并减少腐败状态的可能性,但我认为这是一种矫枉过正.有没有更好的方法来解决这个问题?