GithubHelp home page GithubHelp logo

Comments (13)

kotfic avatar kotfic commented on June 19, 2024 1

was just poking around a little dockerpty may be relevant.

from girder_worker.

jcfr avatar jcfr commented on June 19, 2024 1

from girder_worker.

zachmullen avatar zachmullen commented on June 19, 2024

👍

Looks like this communicates directly with the service over HTTP rather than using a subprocess, which is cool. We'd have to investigate how well its API supports streaming IO.

from girder_worker.

cjh1 avatar cjh1 commented on June 19, 2024

Yes, talking directly to the service seems like a nice step up from using subprocess. When you say "streaming IO" are you taking about the support we currently have for pipes?

from girder_worker.

zachmullen avatar zachmullen commented on June 19, 2024

Yeah, the ability to do non-blocking reads from pipes (a la select).

from girder_worker.

cjh1 avatar cjh1 commented on June 19, 2024

Recording quote from @zachmullen "we should see about using more modern tooling for docker garbage collection in lieu of the current docker-gc script, which is a third party tool that was the industry standard for a while." Was thinking the same ...

from girder_worker.

cjh1 avatar cjh1 commented on June 19, 2024

Some possible alternative to docker-gc script:

https://github.com/Yelp/docker-custodian (uses docker-py )

from girder_worker.

manthey avatar manthey commented on June 19, 2024

Docker-py has just recently release a version 2.0. Prior to version 2.0, it is docker-py on pip, now it is is just docker. There are substantial breaking changes between the two. We use version 1.9 in the slicer_cli_web and HistomicsTK projects, so if we use version 2, we may want to update those as well.

It almost seems like less work to use the command line interface than docker-py, especially for volumes. Version 2 is a little cleaner than version 1.9. The transition wouldn't be hard.

And, our GC task should run out-of-band; it seems wasteful to delay sending job results until the GC has run, especially when that GC can take a long time.

from girder_worker.

cjh1 avatar cjh1 commented on June 19, 2024

Docker-py has just recently release a version 2.0. Prior to version 2.0, it is docker-py on pip, now it is is just docker. There are substantial breaking changes between the two. We use version 1.9 in the slicer_cli_web and HistomicsTK projects, so if we use version 2, we may want to update those as well.

It almost seems like less work to use the command line interface than docker-py, especially for volumes. Version 2 is a little cleaner than version 1.9. The transition wouldn't be hard.

@manthey Are you saying that the move docker-py isn't worth it despite being able to talk directly to the docker daemon rather than through a sub process?

And, our GC task should run out-of-band; it seems wasteful to delay sending job results until the GC has run, especially when that GC can take a long time.

I agree a celery periodic task could be used for this

from girder_worker.

manthey avatar manthey commented on June 19, 2024

@cjh1 I don't think switching to docker-py will reduce code complexity. Version 2 won't increase it much, but version 1.x will reduce readability. If it gains us robustness or maintainability, then switch can still be worth while.

from girder_worker.

cjh1 avatar cjh1 commented on June 19, 2024

It would reduce the number of processes used to run a docker task by one, which might help with scalability.

from girder_worker.

zachmullen avatar zachmullen commented on June 19, 2024

As part of this, we should try to mitigate the busy loop behavior while we wait on the docker container to finish.

from girder_worker.

cjh1 avatar cjh1 commented on June 19, 2024

Fixed by #96

from girder_worker.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.