GP service configuration
instance per machine is referring to the server machine, not the client's machine. This means that if you set it to be
1, then only a single instance of the GP service can be up and running at single point of time. If another user (that is, client) will submit a request, one would need to wait for the currently running instance to complete. So, this should probably give you a feeling of safety.
Safety of DBMS data updates
However, generally, I don't recommend using
arcpy for updating the production data in a DBMS. It is usually considered to be safer to use SQL in your DBMS to edit the data as it provides transactional support. This means that data changes are encapsulated into transactions meaning that no editing conflicts can occur. Moreover, should something go terribly wrong during the update, the transaction will be rolled back and the data are left intact.
Transaction support in
It is true that
arcpy does provide transactional support using the
arcpy.da.Editor class, however, I have seen that it behaved unstable in some environments, so again, I would not recommend using it for editing the enterprise geodatabase data using GP services where concurrent editing can occur. It does not have any advantages over SQL except that you are using a familiar Python construct such as
If you are comfortable using SQL, but still would like to use
arcpy and Python, do consider using the
arcpy.ArcSDESQLExecute class which would let you execute SQL queries from Python. This is very handy, because you would be able to do all kinds of data preparation and analysis in
arcpy, but update the production data using safe SQL operation.
Another way to work with the database data updates is via a Python package that is capable of connecting to DBMS databases and executing SQL queries. Depending on the RDBMS used, you might consider
pymssql for MS SQL Server,
pyodbc for Oracle, or
psycopg for PostgreSQL.
SQLAlchemy is another popular choice for developers working with relational databases.
Using SQL for data updates will make your design future proof should you decide to let multiple users perform concurrent editing in the future using GP services. If you will base your workflow on
arcpy, you would need to re-engineer the whole solution. So why not make it right from the beginning.