Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How does the DM work in multi-user environment? #661

Open
vincent-zurczak opened this issue Jul 7, 2016 · 4 comments
Open

How does the DM work in multi-user environment? #661

vincent-zurczak opened this issue Jul 7, 2016 · 4 comments

Comments

@vincent-zurczak
Copy link
Member

We should verify the behavior of the DM when several users try to perform the same actions. 😨 🎉

Those that are critical and not clear at the moment are:

  • Loading an application template.
  • Creating a new application.
  • Deleting an application.
  • Scheduling a job.
  • Deleting a scheduled job.
  • Creating / modifying / deleting a deployment target.
  • Adding or removing instances.

In case of potential conflict, we may integrate a prevention mechanism with the permissions management.

@vincent-zurczak
Copy link
Member Author

We may also redesign partially the DM.
In the same way there is a worker thread for the messaging, there could be one for the DM's REST API. REST requests would be processed sequentially, which would guarantee coherence. We may even have one processor for non-critical actions (such as reading).

Or we could use locks in the REST API.
But we should verify clients run in their own thread. Otherwise, locks are useless. Locks would be more simple. We would only have to secure the REST services.

@vincent-zurczak
Copy link
Member Author

Or we can just use locks or synchronized blocks in the REST API.
We really need to verify the multi-threading apsect in the REST services. Are there many instances of our REST resources at once?

@vincent-zurczak
Copy link
Member Author

Or we can make more simple...
Use synchronized blocks where necessary in the DM. Since we handle an internal cache, these blocks should not have a major impact on the manager's performances.

@vincent-zurczak vincent-zurczak added this to the 0.8 milestone Jul 7, 2016
@vincent-zurczak
Copy link
Member Author

  • Scheduling a job.
  • Deleting a scheduled job.

... are solved. Jobs have generated IDs. Even if two jobs have the same parameters, they will never collide.

@vincent-zurczak vincent-zurczak removed this from the 0.8 milestone Aug 17, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant