Hasty Briefsbeta

I put a real search engine into a Lambda, so you only pay when you search

10 hours ago
  • #AWS Lambda
  • #Serverless
  • #Search Engine
  • The article discusses the challenges and process of embedding a Lucene-based JVM search engine into an AWS Lambda function.
  • Key challenges include container size, startup time, and handling index and state in a serverless environment.
  • The author uses GraalVM native-image to compile the JVM application into a native binary, reducing size and eliminating JVM warmup.
  • Different approaches to storing the index are explored, including S3, EFS, and baking the index into the Docker image.
  • Performance metrics show cold-start times of ~600ms and warm request times as low as 3ms.
  • The article highlights the limitations of AWS Lambda, such as RAM, vCPU, and disk constraints.
  • A tech demo is mentioned, showcasing a web front-end with server and client-side latency breakdowns.
  • The author explores alternatives to HNSW for better performance on S3, such as IVF, but notes trade-offs in recall.
  • Future plans include implementing concurrent IO for HNSW to improve search latency on S3.
  • The article concludes with a summary of learnings and an invitation to try Nixiesearch.