вторник, 27 июля 2010 г.

CustomConcurrentHashMap - A framework for concurrent hash map implementations.

com.google.inject.internal.CustomConcurrentHashMap:
"A framework for concurrent hash map implementations."
"Retrieval operations (including java.util.Map.get(java.lang.Object)) generally do not block, so may overlap with update operations (including java.util.Map.put(java.lang.Object, java.lang.Object) and java.util.Map.remove(java.lang.Object))."
"Retrievals reflect the results of the most recently completed update operations holding upon their onset."
"For example, the following strategy emulates the behavior of java.util.concurrent.ConcurrentHashMap: ..."

суббота, 24 июля 2010 г.

What Do High-Level Memory Models Mean for Transactions?

What Do High-Level Memory Models Mean for Transactions?

Abstract
Many people have proposed adding transactions, or atomic blocks, to type-safe high-level programming languages. However, researchers have not considered the semantics of transactions with respect to a memory model weaker than sequential consistency. The details of such semantics are more subtle than many people realize, and the interaction between compiler transformations and transactions could produce behaviors that many people find surprising. A language’s memory model, which determines these interactions, must clearly indicate which behaviors are legal, and which are not. These design decisions affect both the idioms that are useful for designing concurrent software and the compiler transformations that are legal within the language.
Cases where semantics are more subtle than people expect include the actual meaning of both strong and weak atomicity; correct idioms for thread safe lazy initialization; compiler transformations of transactions that touch only thread local memory; and whether there is a well-defined notion for transactions that corresponds to the notion of correct and incorrect use of synchronization in Java. Open questions for a high-level memory-model that includes transactions involve both issues of isolation and ordering.

вторник, 20 июля 2010 г.

Werner’s requirements

Job Opening for a Senior Research Engineer:
"You need to be able to dive deep on technology issues, use your analytical skills to reduce a problem to its fundamentals, and create solutions."
"... use computer science theory and knowledge of advanced research to design solutions that are fundamental in nature ..."
"...understanding of distributed storage systems, scalable database technologies and data stream processing."

понедельник, 12 июля 2010 г.

JMM links

On main JMM page some BROKEN links on some Jeremy Manson papers.
Here is right links:
+ Dissertation: The Java Memory Model (Jeremy Manson, Doctor of Philosophy, 2004)
+ The Java Memory Model (POPL '05)
+ Requirements for Programming Language Memory Models (SCJP '04)

P.S. From JMM page - "A journal submission about the memory model that combines Jeremy Manson's dissertation, the POPL paper and the CSJP paper."
As i see journal whole includes POPL and SCJP papers !!!BUT!!! Dissertation contains more complete explanation of causality formalizm (without dissertation its very hard for me to understand it).