Abstract

In this paper, we present a multi-tier data synchronization approach, MultitierPackedSync, based upon the packed object data model (PackedObject), introduced in the IBM J9 Virtual Machine as an experimental enhancement. The packed object data model organizes data in a multi-tier manner (like C structs) in which the object's data is nested in its enclosing PackedObject instead of being pointed to by an object reference as in the traditional Java object data model. We developed the MultitierPackedSync approach to multi-tier data synchronization based on a concurrent linked-list, which optimizes the state-of-the-art linked-list algorithm (lazy-list) and applies it to multi-tier PackedObject synchronization. This approach allows multiple threads to lock on a multi-tier PackedObject from different tiers and maintain consistency. We also implemented the Lazy_MultitierPackedSync technique based upon the lazy-list algorithm without our optimization to show the performance gain of MultitierPackedSync. Compared with our previous work (PackedSync), Lazy_MultitierPackedSync and the Java built-in synchronization in single-granularity locking, the performance of MultitierPackedSync is a significant improvement although it is relatively slower than the Java built-in synchronization in the fine-grained locking scenario when the number of threads grows. For multi-granularity locking, we compared MultitierPackedSync with the Lazy_MultitierPackedSync. The results show our optimized approach MultitierPackedSync improves the overall performance considerably.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call