# Possibility of Server side operations on VersionStamp

**URL:** <https://forums.foundationdb.org/t/possibility-of-server-side-operations-on-versionstamp/1577>\
**Category:** Using FoundationDB\
**Created:** [August 9, 2019, 6:20am UTC](https://forums.foundationdb.org/t/possibility-of-server-side-operations-on-versionstamp/1577 "2019-08-09T06:20:16Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![gaurav](https://avatars.discourse-cdn.com/v4/letter/g/b487fb/32.png) [@gaurav](https://forums.foundationdb.org/u/gaurav)\
**Post date:** [August 9, 2019, 9:09pm UTC](https://forums.foundationdb.org/t/possibility-of-server-side-operations-on-versionstamp/1577/3 "2019-08-09T21:09:31Z")

</div>

> [@markus.pilman](#):
>
> I guess the more general question would be: can we have a user-provided function that modifies a mutation in the proxy at commit time (and it will get some additional input from the proxy like the write version). Do I understand your question correctly?

Yes, that is correct. However, I wanted to restrict this slightly to eschew the security and implementation complexity issues that you mentioned. I was requesting to be able to implement a set of fixed methods that follow some predefined fdb contract, and directly put them alongside fdbserver and load them in fdb process when bringing it up. Think of it as few more named operations like set\_versionstamp\_key, that are implemented by fdb users. Clients only get to choose the id of the predefined operation (and optionally some encoded params in key or value) at commit time.

I also tried to restrict the request to not get into any kind of filtering/predicate push down operations, as they have been [discussed](https://forums.foundationdb.org/t/feature-request-predicate-pushdown/954) in detail earlier, and have their own set of challenges related to interfering with fdb caching.

> [@markus.pilman](#):
>
> A maybe less general approach would be to allow to nest atomic operations and define some more atomic operations. The client could provide some form of template that the server would execute. This would not be as general as pushing down a user-defined function but I guess it would solve many of the use-cases you are thinking about.

Yes this is closer to what I was hoping for, for now. With one change - if users of fdb can implement these, as per some predefined contracts, and provide these to fdbserver as dynamic libraries when starting up.

---

_[View the full topic](https://forums.foundationdb.org/t/possibility-of-server-side-operations-on-versionstamp/1577)._
