An Analysis of Degenerate Sharing and False Coherence

False sharing reduces system performance in distributed shared memory systems. A major impediment to solving the problem of false sharing has been that no satisfactory definition for this problem exists. In this paper we provide definitions for several types of degenerate sharing, including false sharing. We also provide an algorithm that computes the cost of unnecessary coherence (false coherence) in a shared memory system using a single memory trace. Finally, we provide a counterintuitive example demonstrating that the elimination of degenerate sharing can reduce performance.

[1]  S. B. Yao,et al.  Optimization Algorithms for Distributed Queries , 1986, IEEE Transactions on Software Engineering.

[2]  Josep Torrellas,et al.  Share Data Placement Optimizations to Reduce Multiprocessor Cache Miss Rates , 1990, ICPP.

[3]  Michael L. Scott,et al.  False sharing and its effect on shared memory performance , 1993 .

[4]  Alfred V. Aho,et al.  Data Structures and Algorithms , 1983 .

[5]  Michael L. Scott,et al.  Simple but effective techniques for NUMA memory management , 1989, SOSP '89.

[6]  Shamkant B. Navathe,et al.  Distribution Design of Logical Database Schemas , 1983, IEEE Transactions on Software Engineering.

[7]  Andrea J. Borr Transaction Monitoring in ENCOMPASS: Reliable Distributed Transaction Processing , 1981, VLDB.

[8]  Jeffrey D. Ullman,et al.  Principles of Database Systems , 1980 .

[9]  Masatoshi Yoshikawa,et al.  Query processing for distributed databases using generalized semi-joins , 1982, SIGMOD '82.

[10]  Philip A. Bernstein,et al.  Using Semi-Joins to Solve Relational Queries , 1981, JACM.

[11]  Brett D. Fleisch,et al.  Mirage+: A kernel implementation of distributed shared memory on a network of personal computers , 1994, Softw. Pract. Exp..

[12]  Michael L. Scott,et al.  Evaluation of Multiprocessor Memory Systems Using Off-Line Optimal Behavior , 1991, J. Parallel Distributed Comput..

[13]  Anoop Gupta,et al.  Memory consistency and event ordering in scalable shared-memory multiprocessors , 1990, [1990] Proceedings. The 17th Annual International Symposium on Computer Architecture.

[14]  Anoop Gupta,et al.  Memory consistency and event ordering in scalable shared-memory multiprocessors , 1990, ISCA '90.

[15]  Eugene Wong,et al.  Introduction to a system for distributed databases (SDD-1) , 1980, TODS.

[16]  Dean Daniels,et al.  R*: An Overview of the Architecture , 1986, JCDKB.

[17]  Helen Davis,et al.  Tango introduction and tutorial , 1990 .

[18]  Michael L. Scott,et al.  A Trace-Based Comparison of Shared Memory Multiprocessor Architectures , 1992 .

[19]  Patricia G. Selinger,et al.  Access Path Selection in Distributed Database Management Systems , 1980, ICOD.

[20]  Dean Daniels,et al.  An Introduction to Distributed Query Compilation in R* , 1982, DDB.

[21]  Vivek Khera,et al.  An Architecture-Independent Analysis of False Sharing , 1993 .

[22]  Anoop Gupta,et al.  Cache Invalidation Patterns in Shared-Memory Multiprocessors , 1992, IEEE Trans. Computers.

[23]  Clement T. Yu,et al.  On the design of a query processing strategy in a distributed database environment , 1983, SIGMOD '83.

[24]  Brett D. Fleisch,et al.  Mirage: a coherent distributed shared memory design , 1989, SOSP '89.

[25]  Randy H. Katz,et al.  Decompiling CODASYL DML into retional queries , 1982, TODS.

[26]  Stefano Ceri,et al.  Correctness of query execution strategies in distributed databases , 1983, TODS.

[27]  Eugene Wong Dynamic Rematerialization: Processing Distributed Queries Using Redundant Data , 1983, IEEE Transactions on Software Engineering.

[28]  Eugene Wong,et al.  Query processing in sdd-i: a system for distributed databases , 1979 .

[29]  James A. Weeldreyer,et al.  DDTS: A Testbed for Distributed Database Research , 1980, ACM Pacific.

[30]  Michael Stonebraker,et al.  Distributed query processing in a relational data base system , 1978, SIGMOD Conference.

[31]  Bill Nitzberg,et al.  Distributed shared memory: a survey of issues and algorithms , 1991, Computer.

[32]  William J. Bolosky,et al.  Software coherence in multiprocessor memory systems , 1993 .

[33]  Carla Schlatter Ellis,et al.  Experimental comparison of memory management policies for NUMA multiprocessors , 1991, TOCS.

[34]  Robert J. Fowler,et al.  NUMA policies and their relation to memory architecture , 1991, ASPLOS IV.

[35]  Randy H. Katz,et al.  Distributing a database for parallelism , 1983, SIGMOD '83.

[36]  Susan J. Eggers,et al.  Eliminating False Sharing , 1991, ICPP.

[37]  Masatoshi Yoshikawa,et al.  Query processing utilizing dependencies and horizontal decomposition , 1983, SIGMOD '83.

[38]  Stefano Ceri,et al.  Distributed Databases: Principles and Systems , 1984 .

[39]  Willy Zwaenepoel,et al.  Implementation and performance of Munin , 1991, SOSP '91.

[40]  Livio Ricciulli,et al.  The detection and elimination of useless misses in multiprocessors , 1993, ISCA '93.

[41]  Stavros Christodoulakis,et al.  Estimating block transfers and join sizes , 1983, SIGMOD '83.

[42]  Stephen Fox,et al.  Overview of an Ada compatible distributed database manager , 1983, SIGMOD '83.

[43]  Stefano Ceri,et al.  Allocation of Operations in Distributed Database Access , 1982, IEEE Transactions on Computers.