
Links of Interest
Get flash to fully experience Pearltrees
Gregor Richards introduces Evalorizer, a heuristics based tool which is meant to replace JavaScript eval constructs with safer JavaScript correspondents. Stuart Church discusses applying the theories of species evolution, especially evolutionary and behavioral ecology, to software design. Stuart Church Mar 27, 2013 Ken Rimple shows how to write Spring Roo commands and features using the OSGi-based add-on API and how to extend the Roo shell using various Roo objects such as the FileManager and the ProjectManager.
LMAX - How to Do 100K TPS at Less than 1ms Latency
A simple disruptor based actor
What's so special about a ring buffer?
Recently we open sourced the LMAX Disruptor , the key to what makes our exchange so fast. Why did we open source it? Well, we've realised that conventional wisdom around high performance programming is... a bit wrong. We've come up with a better, faster way to share data between threads, and it would be selfish not to share it with the world. Plus it makes us look dead clever.Fifteen years ago, multiprocessor systems were highly specialized systems costing hundreds of thousands of dollars (and most of them had two to four processors). Today, multiprocessor systems are cheap and plentiful, nearly every major microprocessor has built-in support for multiprocessing, and many support dozens or hundreds of processors. To exploit the power of multiprocessor systems, applications are generally structured using multiple threads. But as anyone who's written a concurrent application can tell you, simply dividing up the work across multiple threads isn't enough to achieve good hardware utilization -- you must ensure that your threads spend most of their time actually doing work, rather than waiting for more work to do, or waiting for locks on shared data structures.
Java theory and practice: Going atomic
Vivek Haldar : Flash Crisis
Flash Crisis Robert X. Cringely absolutely nails it in his recent column about some of the consequences of rapidly reducing IO times on programming languages 1 . His major point was that slow but expressive 2 high-level scripting languages such as Ruby and Python have been getting away with their lack of performance due to slow disks. With super-fast seekless flash expected to replace, or at least complement, spinning disks in the storage hierarchy, the long honeymoon of Python and Ruby will come to an end when profiling reveals that IO is fast, and the runtime or interpreter is the bottleneck. This impending “flash crisis” is well known in system circles.Solaris ZFS Performance Tuning: Synchronous Writes and the ZIL
To mitigate the risk of data corruption during power loss, some storage devices use battery-backed write caches. Generally, high-end arrays and some hardware controllers use battery-backed write cached. However, because the cache's volatility is not visible to the kernel, Red Hat Enterprise Linux 6 enables write barriers by default on all supported journaling file systems. Write caches are designed to increase I/O performance. However, enabling write barriers means constantly flushing these caches, which can significantly reduce performance.
19.2. Enabling/Disabling Write Barriers
Linux, O_SYNC and Write Barriers
We all love Linux... sometimes it is better not to look under its hood though as you never know what you might find. I stumbled across a very interesting discussion on a Linux kernel mailing list. It is dated August 2009 so you may have already read it. There is a related RH bug . I'm a little bit surprised by RH attitude in this ticket.Write-Cache Enabled? - Jason Brome's Weblog
... otherwise known as when is a sync() not a sync()? Recently I ran some performance tests on disk I/O, from both Java and C-based applications. The nature of the applications is such that they require transactional logging for reliability, and therefore need a guarantee that data has been written to disk. After running some simple write tests, I noticed an order of magnitude difference in performance between a couple of machines.Update: Please see this post for updated information about this event This is possibly the fastest that Team FOSS.IN has ever put together an event. As promised in my last post , here is some information about the new event series that we are putting together.
PRODUCTISE.IN: The Successor to FOSS.IN… | Atul Chitnis
E is an object-oriented programming language for secure distributed computing , created by Mark S. Miller , Dan Bornstein , and others at Electric Communities in 1997. E is mainly descended from the concurrent language Joule and from Original-E, a set of extensions to Java for secure distributed programming. E combines message -based computation with Java -like syntax. A concurrency model based on event loops and promises ensures that deadlock can never occur.

