Monday, May 28, 2012

NoSQL Data Modeling Techniques



NoSQL databases are often compared by various non-functional criteria, such as scalability, performance, and consistency. This aspect of NoSQL is well-studied both in practice and theory because specific non-functional properties are often the main justification for NoSQL usage and fundamental results on distributed systems like the CAP theorem apply well to NoSQL systems. At the same time, NoSQL data modeling is not so well studied and lacks the systematic theory found in relational databases. In this article I provide a short comparison of NoSQL system families from the data modeling point of view and digest several common modeling techniques.


I would like to thank Daniel Kirkdorffer who reviewed the article and cleaned up the grammar.


To explore data modeling techniques, we have to start with a more or less systematic view of NoSQL data models that preferably reveals trends and interconnections. The following figure depicts imaginary “evolution” of the major NoSQL system families, namely, Key-Value stores, BigTable-style databases, Document databases, Full Text Search Engines, and Graph databases: Good post and discussion of nosql design.

8 Rules For Creating A Passionate Work Culture


Several years ago I was in the Thomson Building in Toronto. I went down the hall to the small kitchen to get myself a cup of coffee. Ken Thomson was there, making himself some instant soup. At the time, he was the ninth-richest man in the world, worth approximately $19.6 billion. Enough, certainly, to afford a nice lunch. I looked at the soup he was stirring. “It suits me just fine,” he said, smiling.
Thomson understood value. Neighbors reported seeing him leave his local grocery store with jumbo packages of tissues that were on sale. He bought off-the-rack suits and had his old shoes resoled. Yet he had no difficulty paying almost $76 million for a painting (for Peter Paul Rubens’s Massacre of the Innocents, in 2002). He sought value, whether it was in business, art, or groceries. Please read more here

Monday, March 26, 2012

On Learning Concurrency...

Abstract from the article: Every Java programmer I have met knows that they should know more about concurrency. But it is a topic that is quite hard to learn. In this newsletter I give some tips on how you can become proficient in concurrency. Read more...

Thursday, March 8, 2012

Useful Lesser Known Java Classes


A recent reddit Java thread is titled "Share a useful class from the standard Java Class Library!" and starts with the comment, "There are so many available classes and sometimes ones exist that you don't realize. Share one that you use that the rest of us may not be aware of!" In this post, I look at some of the (mostly JDK) classes mentioned in the forty (at time of this writing) responses to this request.

Several respondents provided concurrency-related Java classes such as Executors,java.util.concurrent.CountDownLatch, java.util.concurrent.atomic.AtomicInteger, ThreadLocal, and "anything in the packages" java.util.concurrent and java.util.concurrent.atomic.

More read this blog...

http://marxsoftware.blogspot.in/2012/03/recent-reddit-java-thread-is-titled.html

Monday, October 17, 2011

Best Java Coding Standards

javapractices.com offers concise presentations of Java practices, tasks, and designs, illustrated with syntax-highlighted code examples. - http://www.javapractices.com/home/HomeAction.do

Thursday, June 16, 2011

Java Cloud Development: What Developers Need to Know

If you are a Java developer and your organization is jumping on the cloud computing bandwagon, you have to change the way you build and deploy applications. In this article, I will examine what is in store for you with each cloud delivery model and with both public and private cloud scenarios.

Performance Improvements: Caching

If you're looking at performance and you want to get some quick wins, the obvious place to start is caching. Caching as a concept is focused exclusively around improving performance. It's been used in disk controllers, processors, and other hardware devices since nearly the beginning of computing. Various software methods have been devised to do caching as well. Fundamentally caching has one limitation — managing updates — and several decisions. In this article, we'll explore the basic options for caching and their impact on performance.