# CopyOnWrite with Elasticsearch

**URL:** <https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176>\
**Category:** Elasticsearch\
**Created:** [November 17, 2018, 12:13pm UTC](https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176 "2018-11-17T12:13:58Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![bhalajin](https://avatars.discourse-cdn.com/v4/letter/b/3bc359/32.png) [@bhalajin](https://discuss.elastic.co/u/bhalajin)\
**Post date:** [November 17, 2018, 12:13pm UTC](https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176/1 "2018-11-17T12:13:58Z")

</div>

Does Elasticsearch support CopyOnWrite when updating a document ?  
i.e., During update, instead of performing the update in-place, is it possible to make a copy of the original document and update the copy ?

---

<div class="post-metadata">

**Author:** ![nik9000](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nik9000/32/44947_2.png) [@nik9000](https://discuss.elastic.co/u/nik9000)\
**Post date:** [November 17, 2018, 12:35pm UTC](https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176/2 "2018-11-17T12:35:16Z")

</div>

We don't have anything built in for that.

---

<div class="post-metadata">

**Author:** ![bhalajin](https://avatars.discourse-cdn.com/v4/letter/b/3bc359/32.png) [@bhalajin](https://discuss.elastic.co/u/bhalajin)\
**Post date:** [November 17, 2018, 1:09pm UTC](https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176/3 "2018-11-17T13:09:39Z")

</div>

Thanks Nik.

Is there an alternate method to do that ?  
Or is it possible to just copy an existing document to another document (within the same index) ?

---

<div class="post-metadata">

**Author:** ![nik9000](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nik9000/32/44947_2.png) [@nik9000](https://discuss.elastic.co/u/nik9000)\
**Post date:** [November 17, 2018, 3:26pm UTC](https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176/4 "2018-11-17T15:26:48Z")

</div>

If you are fetching the document in your application you can send the document back with a new ID. Beyond that I don't know of a way.

---

<div class="post-metadata">

**Author:** ![bhalajin](https://avatars.discourse-cdn.com/v4/letter/b/3bc359/32.png) [@bhalajin](https://discuss.elastic.co/u/bhalajin)\
**Post date:** [November 17, 2018, 4:08pm UTC](https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176/5 "2018-11-17T16:08:19Z")

</div>

Cool. Thanks !!  
That is what I do already.

---

<div class="post-metadata">

**Author:** ![bhalajin](https://avatars.discourse-cdn.com/v4/letter/b/3bc359/32.png) [@bhalajin](https://discuss.elastic.co/u/bhalajin)\
**Post date:** [November 18, 2018, 9:02am UTC](https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176/6 "2018-11-18T09:02:03Z")

</div>

Is there a chance this functionality will be added in a future version of Elasticsearch ?

---

<div class="post-metadata">

**Author:** ![nik9000](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/nik9000/32/44947_2.png) [@nik9000](https://discuss.elastic.co/u/nik9000)\
**Post date:** [November 18, 2018, 10:20am UTC](https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176/7 "2018-11-18T10:20:13Z")

</div>

I think it depends on what you are using it for and whether you need it done in elasticsearch or you can do it in your application. You could write a plug-in to elasticsearch. I believe you'd implement ActionPlugin. I don't think it is a thing we'd put in Elasticsearch, but I could be wrong. Like I said, if I knew more specifically why it'd be better in Elasticsearch instead of in your application it'd help.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [December 17, 2018, 8:53am UTC](https://discuss.elastic.co/t/copyonwrite-with-elasticsearch/157176/9 "2018-12-17T08:53:44Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
