Dr. Dobb's Journal - November 2007 - (Page 20) d11Conver_p4ma 9/10/07 8:52 AM Page 20 Conversations by Deirdre Blake Distributed Computing: Challenges Ahead Ari Zilka Ari Zilka is founder and Chief Technology Officer at Terracotta (www.terracottatech.com), a company that focuses on enabling distributed Java applications. Prior to that, Ari was Chief Architect at Walmart.com. DDJ: Over the past couple of years, distributed computing has grown to encompass a number of technologies and approaches, including grids, clusters, concurrency, and the like. What do all of these have in common? AZ: Distributed computing delivers to business a nonstop computing platform that can scale on demand, and can be made 100-percent available in that the loss of a few servers doesn’t equate to a loss of application services. Whether partitioning workload across a grid of servers— like Google—or installing the same application on multiple servers in a cluster, everyone is writing programs in a distributed/concurrent way to promise a scalable and highly available operation. It’s a classic divide-and-conquer strategy, yet with no single point of failure. DDJ: Do we currently have the necessary tools for distributed computing? AZ: Many approaches depend on development APIs today. So all the concurrency, replication, and general correctness of business logic when spread across many servers is handled in an expensive manner, directly in every application’s source code. Yet a new approach has emerged to combat the notion that distribution is a matter of copying the data to a cluster, then updating the cluster in a transactional manner. I call this approach “network attached memory” (NAM). Think of it like NAS but for RAM, and the implication is that memory can be durable and scalable. The problem is that writing to disk makes our data available, but slows our app down by bottlenecking on disk I/O. By writing to durable RAM that can be reached by not just one server but many, we can write at faster network speeds, and we can avoid moving data out of application-native format, thus improving latency and throughput. Also with NAM, just like with storage where we get to decide which files are local and which are networked, we can decide which memory is local and which is networked. With NAM, we have the right tools to deliver scalability to the application tier without lots of custom development. DDJ: The focus of your company, Terracotta, is on Java, which was originally designed, generally speaking, as a language for embedded systems. Do we need to begin thinking in terms of more specialized languages when it comes to building large-scale distributed systems? AZ: I don’t think so. Languages are languages and frameworks are frameworks. In the case of Java, the virtual machine is proving very powerful and extensible. It runs Ruby, .NET, PHP, and Python all faster than their native runtimes. So it has performance (and stability) on its side. Java also has succeeded in abstracting most of the platform idiosyncrasies we used to live with. As a result, we can assemble computing environments that are heterogeneous, and write apps that are portable and completely scalable. All this comes from an objectoriented and flexible core, which lets us abstract as necessary. And abstraction is the key to successful distribution. But frameworks exist more to focus thinking and provide well-known patterns than to provide flexibility. I have seen distributed computing use cases that are so different that a good framework in one case could be poor in another. This leads to my strong belief that dis20 Dr. Dobb’s Journal l www.ddj.com l November 2007 tributed computing is a deployment artifact and should not be a design artifact. DDJ: Programming languages aside, what are the biggest challenges to building successful distributed computing systems? “Distributed computing has a high need for shared state and signaling” AZ: My experience shows that there are very few good ways to cluster a database, whereas distributed computing has a high need for shared state and signaling. This is the biggest challenge—scaling stateless applications. Most frameworks assume stateless architecture. This causes a bottleneck on the database leading to clustered database implementations, and it also leads to unnecessary use of transactions to update state in a reliable way. There is another challenge, which I will call “applicability.” When deciding on a replication/partitioning scheme, many frameworks are incompatible with such distribution strategies as including stateless replication to a database or stateful replication over a network. As such, distributed computing cannot even be delivered (it is not applicable) when using those frameworks. In any case, distributed computing, used as a means for scaling applications, requires a low-level infrastructure service that does not affect application development as much as database and network-based approaches do today. DDJ http://www.terracottatech.com http://Walmart.com http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - November 2007 Contents Hmmmm Alia Vox Developer Diaries Developer’s Notebook Smart Compilers - But Smart Enough? Conversations Grid-Enabling Resource-Intensive Applications Distributed Computing: Windows and Linux Adobe AIR: Desktop/Web Convergence Transparency on Demand Reusable Associations Effective Concurrency The Agile Edge Swaine’s Flames Dr. Dobb's Journal - November 2007 Dr. Dobb's Journal - November 2007 - (Page Cover1) Dr. Dobb's Journal - November 2007 - (Page Cover2) Dr. Dobb's Journal - November 2007 - (Page 1) Dr. Dobb's Journal - November 2007 - (Page 2) Dr. Dobb's Journal - November 2007 - (Page 3) Dr. Dobb's Journal - November 2007 - Contents (Page 4) Dr. Dobb's Journal - November 2007 - Contents (Page 5) Dr. Dobb's Journal - November 2007 - Hmmmm (Page 6) Dr. Dobb's Journal - November 2007 - Hmmmm (Page 7) Dr. Dobb's Journal - November 2007 - Hmmmm (Page 8) Dr. Dobb's Journal - November 2007 - Hmmmm (Page 9) Dr. Dobb's Journal - November 2007 - Alia Vox (Page 10) Dr. Dobb's Journal - November 2007 - Alia Vox (Page 11) Dr. Dobb's Journal - November 2007 - Developer Diaries (Page 12) Dr. Dobb's Journal - November 2007 - Developer Diaries (Page 13) Dr. Dobb's Journal - November 2007 - Developer’s Notebook (Page 14) Dr. Dobb's Journal - November 2007 - Developer’s Notebook (Page 15) Dr. Dobb's Journal - November 2007 - Smart Compilers - But Smart Enough? (Page 16) Dr. Dobb's Journal - November 2007 - Smart Compilers - But Smart Enough? (Page 17) Dr. Dobb's Journal - November 2007 - Smart Compilers - But Smart Enough? (Page 18) Dr. Dobb's Journal - November 2007 - Smart Compilers - But Smart Enough? (Page 19) Dr. Dobb's Journal - November 2007 - Conversations (Page 20) Dr. Dobb's Journal - November 2007 - Conversations (Page 21) Dr. Dobb's Journal - November 2007 - Grid-Enabling Resource-Intensive Applications (Page 22) Dr. Dobb's Journal - November 2007 - Grid-Enabling Resource-Intensive Applications (Page 23) Dr. Dobb's Journal - November 2007 - Grid-Enabling Resource-Intensive Applications (Page 24) Dr. Dobb's Journal - November 2007 - Grid-Enabling Resource-Intensive Applications (Page 25) Dr. Dobb's Journal - November 2007 - Grid-Enabling Resource-Intensive Applications (Page 26) Dr. Dobb's Journal - November 2007 - Grid-Enabling Resource-Intensive Applications (Page 27) Dr. Dobb's Journal - November 2007 - Grid-Enabling Resource-Intensive Applications (Page 28) Dr. Dobb's Journal - November 2007 - Grid-Enabling Resource-Intensive Applications (Page 29) Dr. Dobb's Journal - November 2007 - Distributed Computing: Windows and Linux (Page 30) Dr. Dobb's Journal - November 2007 - Distributed Computing: Windows and Linux (Page 31) Dr. Dobb's Journal - November 2007 - Distributed Computing: Windows and Linux (Page 32) Dr. Dobb's Journal - November 2007 - Distributed Computing: Windows and Linux (Page 33) Dr. Dobb's Journal - November 2007 - Distributed Computing: Windows and Linux (Page 34) Dr. Dobb's Journal - November 2007 - Distributed Computing: Windows and Linux (Page 35) Dr. Dobb's Journal - November 2007 - Adobe AIR: Desktop/Web Convergence (Page 36) Dr. Dobb's Journal - November 2007 - Adobe AIR: Desktop/Web Convergence (Page 37) Dr. Dobb's Journal - November 2007 - Adobe AIR: Desktop/Web Convergence (Page 38) Dr. Dobb's Journal - November 2007 - Adobe AIR: Desktop/Web Convergence (Page 39) Dr. Dobb's Journal - November 2007 - Adobe AIR: Desktop/Web Convergence (Page 40) Dr. Dobb's Journal - November 2007 - Adobe AIR: Desktop/Web Convergence (Page 41) Dr. Dobb's Journal - November 2007 - Transparency on Demand (Page 42) Dr. Dobb's Journal - November 2007 - Transparency on Demand (Page 43) Dr. Dobb's Journal - November 2007 - Transparency on Demand (Page 44) Dr. Dobb's Journal - November 2007 - Transparency on Demand (Page 45) Dr. Dobb's Journal - November 2007 - Transparency on Demand (Page 46) Dr. Dobb's Journal - November 2007 - Transparency on Demand (Page 47) Dr. Dobb's Journal - November 2007 - Transparency on Demand (Page 48) Dr. Dobb's Journal - November 2007 - Transparency on Demand (Page 49) Dr. Dobb's Journal - November 2007 - Transparency on Demand (Page 50) Dr. Dobb's Journal - November 2007 - Reusable Associations (Page 51) Dr. Dobb's Journal - November 2007 - Reusable Associations (Page 52) Dr. Dobb's Journal - November 2007 - Reusable Associations (Page 53) Dr. Dobb's Journal - November 2007 - Reusable Associations (Page 54) Dr. Dobb's Journal - November 2007 - Reusable Associations (Page 55) Dr. Dobb's Journal - November 2007 - Reusable Associations (Page 56) Dr. Dobb's Journal - November 2007 - Effective Concurrency (Page 57) Dr. Dobb's Journal - November 2007 - Effective Concurrency (Page 58) Dr. Dobb's Journal - November 2007 - Effective Concurrency (Page 59) Dr. Dobb's Journal - November 2007 - The Agile Edge (Page 60) Dr. Dobb's Journal - November 2007 - The Agile Edge (Page 61) Dr. Dobb's Journal - November 2007 - The Agile Edge (Page 62) Dr. Dobb's Journal - November 2007 - The Agile Edge (Page 63) Dr. Dobb's Journal - November 2007 - Swaine’s Flames (Page 64) Dr. Dobb's Journal - November 2007 - Swaine’s Flames (Page Cover3) Dr. Dobb's Journal - November 2007 - Swaine’s Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.