Building efficient multi-threaded search nodes

  • Authors:
  • Carolina Bonacic;Carlos García;Mauricio Marin;Manuel Prieto-Matias;Francisco Tirado

  • Affiliations:
  • Universidad Complutense de Madrid, Spain, Madrid, Spain;Universidad Complutense de Madrid, Spain, Madrid, Spain;Yahoo! Research Latin America, Santiago, Chile;Universidad Complutense de Madrid, Spain, Madrid, Spain;Universidad Complutense de Madrid, Spain, Madrid, Spain

  • Venue:
  • CIKM '10 Proceedings of the 19th ACM international conference on Information and knowledge management
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Search nodes are single-purpose components of large Web search engines and their efficient implementation is critical to sustain thousands of queries per second and guarantee individual query response times within a fraction of a second. Current technology trends indicate that search nodes ought to be implemented as multi-threaded multi-core systems. The straightforward solution that system designers can apply in this case is simply to follow standard practice by deploying one asynchronous thread per active query in the node and attaching each thread to a different core. Each concurrent thread is responsible for sequentially processing a single query at a time. The only potential source of read/write conflicts among threads are the accesses to the different application caches present in the search node. However, new Web applications pose much more demanding requirements in terms of read/write conflicts than recent past applications since now data updates must take place concurrently with query processing. Insisting on the same paradigm of concurrent threads now augmented with a transaction concurrency control protocol is a feasible solution. In this paper we propose a more efficient and much simpler solution which has the additional advantage of enabling a very efficient administration of application caches. We propose performing relaxed bulk-synchronous parallelism at multi-core level.