Multi-threading in the Repository

From ER/Studio Data Architect
Jump to: navigation, search

Go Up to Working with ERStudio Repository

As of ER/Studio Data Architect version 9.0, the Repository takes advantages of new multi-threading functionality that improves Repository performance over the previous sequential method used to handle transactions between the Repository server and the ER/Studio Data Architect client. Mutli-threading also improves Repository performance with ER/Studio Business Architect in that you can log in or do some security operations concurrently like you can with ER/Studio Data Architect.

Multi-threading allows the server to process multiple transaction concurrently. As long as a given transaction does not conflict with any currently processing transaction, the server opens a new thread for the new transaction and processes it immediately. For example, transactions necessary for User A to log in can be processed at the same time as User B is adding a diagram, and User A will be logged in just as quickly as if User B was not in the middle of adding a diagram.

However, not all transactions can be run concurrently. This means that in some cases, an operation must wait for a transaction initiated by a different user to complete. In addition, some transactions listed on the following table as being able to run concurrently might be blocked by the Repository database's own concurrency mechanisms if the same table is being accessed at the same time by different transactions.

The following describes some important rules that affect multi-threading on the Repository:

  • If a Check In transaction is being processed on a given Diagram or Data Dictionary, all other operations on that Diagram or Data Dictionary must wait until the Check In completes.
  • If an Add or Check In transaction is being processed, all other Add or Check In transactions must wait until the initial transaction completes. This same rule applies to Set Named Release, Branch and Branch/Merge Check In operations.
  • Most other common tasks, including Log Ins, Log Outs, Gets, Check Outs and Security Center operations are processed concurrently by the server, but may be affected by database level-locking mechanisms.

The following describes concurrency restrictions:

  • Multiple, concurrent 'Get access on the same object (such as user, role, diagram, and dictionary) are allowed.
  • Only one Write access on a particular object allowed at one time (for example, a delete table and a modify table will not run concurrently on the same table).
  • Writes and Gets on a particular object will also be serialized (for example, a Get Diagram and a Check In Diagram will not run concurrently on the same diagram).

The following table describes which transactions can run simultaneously.

  • ER/Studio Data Architect Operation is the operation that invokes the Server Transaction.
  • Server Transaction is the request that is seen by the Repository Server.
  • The Concurrency columns show which Server transactions can run simultaneously with the process in the respective Server Transaction column.

ER/Studio Data ArchitectOperation

Repository ServerTransaction

Concurrency

Get Latest Diagram(Dictionary)

Add Diagram(Dictionary)

Check In Diagram(Dictionary)

Security,Project Operations

Undo/Redo/Check OutDiagram (Dictionary)

Add Diagram

Add Diagram

Add Dictionary

Bind Dictionary to Diagram

Modify Project

Add Enterprise Data Dictionary

Add Dictionary

Bind Dictionary to Diagram

Bind Enterprise Data Dictionary

Bind Dictionary to Diagram

Branch

Branch

Branch/Merge Dialog

Get Branch Tree Info

Branch/Merge operation

Merge Check in Diagram

Merge Check In Dictionary

Merge Get Latest Diagram

Merge Get Latest Dictionary

Change Diagram File Name

Change Diagram File Name

Change Own Password

Change Own Password

Check In Data Dictionary

Check In Dictionary Objects

Get Latest Diagram

Get Latest Dictionary

Check In Diagram

Check In Diagram

Get Latest Diagram

Get Latest Dictionary

Check In Diagram Objects

Check In Diagram Objects

Check Out Diagram

Check Out Diagram

Check Out Diagram Objects

Check Out Diagram Objects

Check Out Dictionary

Check Out Dictionary

Delete Diagram

Delete Diagram

Delete Dictionary

Delete Dictionary

Delete Named Release

Delete Named Release

Enterprise Dictionary Bindings Dialog

Get All Dictionaries

Get Dictionary Binding Info

Get All Dictionary/Diagram Bindings

Get from Repository (Diagram)

Get Latest Diagram

Get Latest Dictionary

Get from Repository (Submodel)

Get Latest Dictionary

Get Latest Submodel

Get from Repository Dialog

Get Structural Info

Get Submodel Info

Get Latest Version

Get Latest Diagram

Get Latest Dictionary

Get Named Release

Get Dictionary Named Release

Get Name Release

Get Named Release Dialog

Get All Named Releases

Log In

Get My Security Info

Get All Projects

Log In

Log Out

Log Out

Project Center

Add Project

Delete Project

Get All Projects

Get Project Info

Modify Project

Redo Check Out Diagram

Redo Check Out Diagram

Redo Check Out Dictionary Objects

Redo Check Out Dictionary Objects

Redo Check out Objects

Redo Check out Objects

Security Center

Add Role

Add User

Delete Role

Delete User

Force Check In

Force Log Out

Get All Diagrams for Role

Get All Object Level Security

Get All Object Privileges

Get All Privileges

Get All Roles

Get All User Level Security

Get All Users

Get Repository Security Info

Get Role Info

Get User Checked Out Info

Get User Info

Get User On Machine Info

Get User Security Info

Get User Status

Modify Role

Modify Security Info

Security Center...

Modify User

Modify User Security Rights

Set Named Release

Set Dictionary Named Release

Set Named Release

Synchronize Comments

Synchronize Data

√(no concur-rent Syncs)

Undo Check Out Diagram

Undo Check Out Diagram

Undo Check Out Dictionary

Undo Check Out Dictionary

View Object History

Get History

See Also