Fast LH\(*\)

Abstract

Linear Hashing is an efficient and widely used version of extendible hashing. LH\(*\) is its distributed version that stores key-value pairs on up to hundreds of thousands of sites in a distributed system. LH\(*\) implements the dictionary data structure efficiently by not using a central component and allows the key-based operations of insertion, deletion, actualization, and retrieval as well as the scan operation. Because it does not use a central addressing component, clients or servers in LH\(*\) can commit an addressing error by sending a request to a wrong server. This server then forwards the message to the correct server either directly or in one but never more than one additional forward operation. We discuss here methods to avoid this double forward, which, while rare, still might breach quality of service guarantees. We compare our methods with \(\mathrm{LH}*_{\mathrm{RS}^{\mathrm{\tiny P2P}}}\) that pushes information about changes in the file structure to clients, whether they are active or not. A second problem especially relevant in high churn environments such as modern data centers is that sites can suddenly become inaccessible. The various high and scalable reliability versions of LH\(*\) then reconstruct the data lost on this site elsewhere. We present a solution to the resulting “wandering bucket” problem that allows clients to find the data at their new location.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

References

  1. 1.

    Birman, K.P.: Reliable Distributed Systems: Technologies, Web Services, and Applications. Springer, Berlin (2005)

    Google Scholar 

  2. 2.

    Chabkinian, J., Schwarz, T.: Fast LH*. In: 2013 25th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), pp. 57–64. IEEE (2013)

  3. 3.

    Chang, F., Dean, J., Ghemawat, S., Hsieh, W.C., Wallach, D.A., Burrows, M., Chandra, T., Fikes, A., Gruber, R.E.: Bigtable: a distributed storage system for structured data. ACM Trans. Comput. Syst. (TOCS) 26(2), 4 (2008)

    Article  Google Scholar 

  4. 4.

    Devine, R.: Design and implementation of DDH: a distributed dynamic hashing algorithm. In: Foundations of Data Organization and Algorithms, pp. 101–114 (1993)

  5. 5.

    Fagin, R., Nievergelt, J., Pippenger, N., Strong, H.R.: Extendible hashing—a fast access method for dynamic files. ACM Trans. Database Syst. 4(3), 315–344 (1979)

    Article  Google Scholar 

  6. 6.

    Kröll, B., Widmayer, P.: Distributing a search tree among a growing number of processors. In: ACM SIGMOD Record, vol. 23(2), pp. 265–276. ACM (1994)

  7. 7.

    Litwin, W.: Linear hashing: a new tool for file and table addressing. In: Proceedings of the Sixth International Conference on Very Large Data Bases (VLDB), vol. 6, pp. 212–223 (1980)

  8. 8.

    Litwin, W., Menon, J., Risch, T.: LH\(\ast \) Schemes with Scalable Availability. Tech. rep., IBM Almaden (1998). RJ10121 (91937)

  9. 9.

    Litwin, W., Menon, J., Risch, T., Schwarz, T.J.: Design issues for scalable availability LH* schemes with record grouping. In: Second Workshop on Distributed Data and Structures, pp. 38–55 (1999)

  10. 10.

    Litwin, W., Moussa, R., Schwarz, T.: LH\(\ast \)RS—a highly-available scalable distributed data structure. ACM Trans. Database Syst. (TODS) 30(3), 769–811 (2005)

    Article  Google Scholar 

  11. 11.

    Litwin, W., Neimat, M.A., Schneider, D.: RP*: A family of order preserving scalable distributed data structures. In: Proceedings of the International Conference on Very Large Data Bases (VLDB), pp. 342–342 (1994)

  12. 12.

    Litwin, W., Neimat, M.A., Schneider, D.: RP\(\ast \): a family of order preserving scalable distributed data structures. In: Proceedings of the International Conference on Very Large Databases (VLDB), vol. 94, pp. 12–15 (1994)

  13. 13.

    Litwin, W., Neimat, M.A., Schneider, D.A.: LH\(\ast \): linear hashing for distributed files. In: Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data (SIGMOD ’93), pp. 327–336. ACM (1993)

  14. 14.

    Litwin, W., Neimat, M.A., Schneider, D.A.: LH\(\ast \)—a scalable, distributed data structure. ACM Trans. Database Syst. 21(4), 480–525 (1996)

    Article  Google Scholar 

  15. 15.

    Litwin, W., Schwarz, T.: Algebraic signatures for scalable distributed data structures. In: Proceedings of the 20th International Conference on Data Engineering, 2004, pp. 412–423. IEEE (2004)

  16. 16.

    Litwin, W., Yakouben, H., Schwarz, T.: LH\(\ast \) RS P2P: a scalable distributed data structure for P2P environment. In: Proceedings of the 8th International Conference on New Technologies in Distributed Systems, p. 1. ACM (2008)

  17. 17.

    Metzner, J.J.: Efficient replicated remote file comparison. IEEE Trans. Comput. 40(5), 651–660 (1991)

    Article  Google Scholar 

  18. 18.

    Nardelli, E.: Distributed k–d trees. In: Proceedings of the 16th Conference of Chilean Computer Science Society (SCCC96), pp. 142–154 (1996)

  19. 19.

    Rathi, A., Lu, H., Hedrick, G.E.: Performance comparison of extendible hashing and linear hashing techniques. In: Proceedings of the 1990 ACM SIGSMALL/PC Symposium on Small Systems, SIGSMALL ’90, pp. 178–185 (1990)

  20. 20.

    Yakouben, H., Soror, S.: LH* RS P2P: a fast and high churn resistant scalable distributed data structure for P2P systems. Int. J. Internet Technol. Secur. Trans. 2(1), 5–31 (2010)

    Article  Google Scholar 

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Thomas J. E. Schwarz SJ.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Chabkinian, J., Schwarz SJ, T.J.E. Fast LH\(*\) . Int J Parallel Prog 44, 709–734 (2016). https://doi.org/10.1007/s10766-015-0371-8

Download citation

Keywords

  • Scalable distributed data structures
  • LH\(*\)
  • Cloud computing