> (the task was to limit the whole thing to about 10% of cores)

I still don't think you needed a worker pool here. Like OP mentioned above, 
you could just limit the number of goroutines executed to 10% of total 
cores.


On Saturday, 28 December 2019 18:02:08 UTC+5:30, Chris Burkert wrote:
>
> There are Pros and Cons for everything in life. Some time ago I wrote a 
> database tool which does something per table where the runtime largely 
> depends on the table size. I started with one goroutine per table because 
> it was easy. But that put a high load on the database (the task was to 
> limit the whole thing to about 10% of cores) with out of memory situations. 
> So I switched to a worker pool which solved that. However now the overall 
> runtime was unpredictable. When the large tables were handled at the end 
> their runtime defined the overall runtime. So I to feed the pool with large 
> tables first. This again lead to out of memory situations so I reordered 
> the tables such that large tables are mixed with smaller tables.
>
> Brian Candler <b.ca...@pobox.com <javascript:>> schrieb am Sa. 28. Dez. 
> 2019 um 11:09:
>
>> On Friday, 27 December 2019 16:30:48 UTC, Bruno Albuquerque wrote:
>>>
>>> This might be useful too you, in any case:
>>>
>>> https://git.bug-br.org.br/bga/workerpool
>>>
>>>
>> I think the point from Bryan Mills' video is, "worker pool" is something 
>> of an anti-pattern in go.  goroutines are so cheap that you might as well 
>> start a goroutine for each piece of work you have to do, and let it 
>> terminate when that piece of work is done.
>>
>> Apart from the startup cost, the other reason for having a "worker pool" 
>> is to limit the number of concurrent tasks being executed, and there are 
>> better ways of doing that in go (also shown in the video).
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golan...@googlegroups.com <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/f840beee-748f-42b6-809f-4c7505208aee%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/f840beee-748f-42b6-809f-4c7505208aee%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/ecddafbc-eb73-45e1-8a5a-f738e88c6821%40googlegroups.com.

Reply via email to