in storehaus-elasticsearch/src/main/scala/com/twitter/storehaus/elasticsearch/ElasticSearchStringStore.scala [80:93]
override def multiPut[K1 <: String](kvs: Map[K1, Option[String]]): Map[K1, Future[Unit]] = {
val f = mutex.acquire().flatMap {
p =>
futurePool {
val bulkRequest = new BulkRequest
kvs.foreach {
case (k, Some(v)) => bulkRequest.add(new IndexRequest(index, tipe, k).source(v))
case (k, None) => bulkRequest.add(new DeleteRequest(index, tipe, k))
}
client.bulk(bulkRequest).actionGet()
} ensure p.release()
}
kvs.map {case (k, _) => k -> f.unit }(breakOut)
}