Tricks with Direct Memory Access in Java

February 2, 2012



Java was initially designed as a safe, managed environment. Nevertheless, Java HotSpot VM contains a “backdoor” that provides a number of low-level operations to manipulate memory and threads directly. This backdoor – sun.misc.Unsafe – is widely used by JDK itself in the packages like java.nio or java.util.concurrent. It is hard to imagine a Java developer who uses this backdoor in […]

Posted in: HotSpot JVM

MapReduce Patterns, Algorithms, and Use Cases

February 1, 2012



In this article I digested a number of MapReduce patterns and algorithms to give a systematic view of the different techniques that can be found on the web or scientific articles. Several practical case studies are also provided. All descriptions and code snippets use the standard Hadoop’s MapReduce model with Mappers, Reduces, Combiners, Partitioners, and sorting. This […]

Posted in: Big Data, Fundamentals

Implementation of MVCC Transactions for Key-Value Stores

January 7, 2012



ACID transactions are one of the most widely used software engineering techniques, a cornerstone of  the relational databases, and an integral part of the enterprise middleware where transactions are often offered as the black-box primitives. Notwithstanding all these and many other cases, the old-fashion approach to transactions cannot be maintained in a variety of modern large […]

Posted in: Fundamentals

Performance of Priority Queue Sorting with Pagination

January 2, 2012



In web applications, it is a very common task  to sort some set of items according to the user-selected criteria and  return only the first or N-th page of the sorted result. The page size can be much less than the total number of items, hence it is typically not reasonable to sort the entire set and […]

Posted in: Fundamentals

OSGi 4.2 Core Specification Overview

January 1, 2012



The presentation below contains a detailed description of major OSGi 4.2 features. This deck of slides covers the following topics: OSGi Technology Overview Module Layer Life Cycle Layer Service Layer Standard Service and Tools offered by OSGi

Posted in: OSGi

Ultimate Sets and Maps for Java, Part II

January 1, 2012



This post is a second part of Ultimate Sets and Maps for Java. In the first part, we discussed memory-efficient implementations of sets and maps. These data structures efficiently support contains(key) operation. In this part of the article, we discuss more advanced querying: How to efficiently test that a collection of items meets a filtering criteria contains(key1) AND contains(key2) […]

Posted in: Fundamentals

Ultimate Sets and Maps for Java, Part I

December 29, 2011



Some time ago our team had been requested to develop several Java components for structured information retrieval. After the initial research, we concluded that standard approaches like inverted indexes are not well applicable to our problem because of specific business requirements. As a result we faced a necessity to design our own custom indexes and index processors […]

Posted in: Fundamentals

Get every new post delivered to your Inbox.

Join 1,696 other followers