InfoQ Homepage Concurrency Content on InfoQ
-
Software Transactions: A Programming Language Perspective
Erlang has recently generated a lot of interest as a language that can deal both efficiently and elegantly with concurrency. In particular, there is no shared memory between "process" instances which only communicate via asynchronous messages. Nevertheless, Shared Memory Concurrency remains an intense research subject especially for multicore applications.
-
Common Ruby MVM API research kicked off
Research on the topic of Multiple VM (MVM) Ruby will be conducted at the University of Tokyo together with Sun's JRuby team. The work will investigate issues such as communication between VMs and a common API across all Ruby implementations, with solutions provided initially for Ruby and JRuby.
-
Rubinius adds Multi-VM support
Rubinius adds a new feature called "Multi-VM", which allows to run multiple Ruby VMs inside an OS process. We talked with Evan Phoenix of the Rubinius project about the benefits and implementation of this feature.
-
Consistency vs. availability: eventual consistency by Werner Vogels
Until the mid nineties, achieving distribution transparency and data consistency has often been the priority. As large Internet systems started to arise, availability became another important concern to be taken into consideration. Werner Vogels outlines some principles, abstractions and consistency/availability trade-offs related to large scale data replication with focus on eventual consistency.
-
Parallel Processing Framework JPPF offers Load Balancing, Failover and J2EE Integration
Java Parallel Processing Framework (JPPF) project team recently announced the first Release Candidate (RC1) of Version 1.0 of the product. JPPF is an open source grid computing framework that can be used to run Java applications in parallel in a distributed execution environment. JPPF team is planning on Version 1.0 GA release next month.
-
Confusing unit-of-work with threads
Most server-side applications and many desktop applications contains data that is tied to a particular task that’s being executed. A common solution is to keep that kind of data in thread-local storage; to keep the data in variables bound to the executing thread. Convenient, but a practice based on a faulty assumption.
-
Stephan T. Lavavej on the future of C++
On the Microsoft Visual C++ blog Stephan T. Lavavej, a library developer, speculates about the future of the C++ language.
-
Programming for Parrallelism: The Parallel Hierarchies Pattern
Multi-core processors offer new performance opportunities. Shekhar Borkar from Intel highlighted, however, that software development practices have to be retooled to leverage this potential. In this vein, Prof. Jorge L. Ortega-Arjona from the National Autonomous University of Mexico has recently introduced a new architectural pattern for parallel programming: Parallel Hierarchies pattern.
-
Ruby 1.9 adds Fibers for lightweight concurrency
Fibers were recently in the Ruby 1.9 branch. The Coroutine-like concept has many uses, such as implementing lightweight concurrency and others. We look at the concept and influences of Fibers in Ruby 1.9, as well as code samples.
-
Erlang's Mnesia - a distributed DBMS for highly scalable apps
Not every application has the scalability requirements of Google, Flickr or Amazon, however the ideas behind the Mnesia DBMS are compelling: a fast, in-process DBMS that takes advantage of concurrency, with the ability to replicate tables across distributed nodes for high scalability and fault tolerance.
-
Is Erlang the Java for the concurrent future?
The future of computing is going to be concurrent. Even desktop CPUs are multicore nowadays, and when customers are buying more and more CPUs to their servers, they expect their applications to scale well to utilize their new investment. But that's not going to happen with many software systems of today. Can Erlang help?
-
Rubinius Internals: Threading, ObjectSpace, Debugging
We continue the interview with Rubinius creator Evan Phoenix and talk about internals of how the VM uses bytecode manipulation for fast debugging, problems of implementing ObjectSpace and Threading.
-
New Concurrency Features for Java SE 7
Although the contents of Java SE 7 are still in flux, early candidates of concurrency features for inclusion are are already taking shape: a fork/join framework and a transfer queue. InfoQ spoke with Doug Lea about these features and concurrency in Java SE 7.
-
The Futures of Ruby Threading
Ruby's thread system is about to undergo big changes in Ruby 1.9, possibly moving from user space threads to kernel threads. Or not. A recent interview with Matz and Sasada Koichi shows some new ideas that are considered. We take a look at the different possible future Ruby threading systems.
-
Interview: Ezra Zygmuntowicz on Engine Yard and Rails Deployment
Exclusive InfoQ interview with Rails deployment guru Ezra Zygmuntowicz. The topics include scaling Rails, Ruby threading, and Ezra's venture Engine Yard, an interesting new Rails hosting service that employs Xen and virtualization to provide scalable service.