aloof-angle-91616
01/30/2019, 7:40 PMaloof-angle-91616
02/03/2019, 11:14 PMaloof-angle-91616
02/03/2019, 11:23 PMsubprocess
invocations into scheduler requests of cacheability and also funky fresh scheduling for parallelizable tasks (and that is the way we can approach moving the zinc/rsc execution graph into v2)aloof-angle-91616
02/03/2019, 11:26 PMaloof-angle-91616
02/03/2019, 11:26 PMaloof-angle-91616
02/03/2019, 11:28 PMaverage-vr-56795
02/04/2019, 8:36 AMwitty-crayon-22786
02/04/2019, 6:15 PMwitty-crayon-22786
02/04/2019, 6:17 PMaverage-vr-56795
02/04/2019, 6:55 PMaloof-angle-91616
02/04/2019, 6:57 PMwitty-crayon-22786
02/04/2019, 7:01 PMwitty-crayon-22786
02/04/2019, 7:02 PMaloof-angle-91616
02/04/2019, 7:02 PMaloof-angle-91616
02/04/2019, 7:15 PMred-balloon-89377
02/06/2019, 2:13 PMred-balloon-89377
02/06/2019, 2:30 PMred-balloon-89377
02/07/2019, 10:12 PMred-balloon-89377
02/07/2019, 10:12 PMwitty-crayon-22786
02/07/2019, 10:14 PMred-balloon-89377
02/08/2019, 12:08 AMred-balloon-89377
02/08/2019, 12:08 AMaloof-angle-91616
02/08/2019, 4:55 PMdwagnerhall [00:53]
FWIW the LMDB garbage collection we do is also kind of crappy because it doesn’t necessarily compact… Not sure of a good strategy for doing some background garbage collection without blocking user action…
dmcclanahan [Today at 00:54]
? is blocking user action necessary for compacting?
9 replies
dwagnerhall [8 hours ago]
Garbage collecting at all requires an exclusive lock on the store, so pants will be unable to do anything
dwagnerhall [8 hours ago]
Compacting requires copying the entries we want to keep to a new directory, deleting the existing one, and renaming over the top, which then requires resetting the Store in any process which has it open, which basically is a pantsd restart if you’re using pantsd
dmcclanahan [8 hours ago]
can we shard with a partition key of some sort to avoid a global store lock? i do not know what renaming is referring to unless you just mean moving the file that keeps the data and then resetting to point to the new file
dwagnerhall [8 hours ago]
We already shard 16 ways, but fundamentally, garbage collecting 1/16 of the store is still going to stop pants from being able to do anything while that 1/16 is locked
dwagnerhall [8 hours ago]
And yes, the renaming is for the backing file that keeps the data
dwagnerhall [8 hours ago]
The lmdb format doesn’t allow for compacting when you delete, so the way we “compact” is by iterating over the entries to decide which ones we want to keep, then copying those to a new dir, and deleting the old one
dmcclanahan [8 hours ago]
i don't immediately have a solution for that
dmcclanahan [6 minutes ago]
also forgot that we shard exactly like that already i remember the ShardedLmdb code was so slick
dmcclanahan [1 minute ago]
ok so i’m confused as to how the method you describe requires blocking pants — are we ever deleting anything from the db except for garbage collection? can we do the copying without blocking and only block on the rename? and it seems intrinsically like there should be a way to reset the store without restarting pantsd, not that i know what i’m talking about...
aloof-angle-91616
02/09/2019, 9:56 PMTypedCollection
PR simmer for a bit in case anyone has any more input https://github.com/pantsbuild/pants/pull/7115aloof-angle-91616
02/09/2019, 10:02 PMaloof-angle-91616
02/10/2019, 8:40 PM_
cases in match
expressions, i would love to have an excuse to learn how to do that unless there are too many legitimate uses of _
in the codebase somehowaverage-vr-56795
02/11/2019, 9:07 PMaverage-vr-56795
02/12/2019, 11:30 PMaloof-angle-91616
02/15/2019, 3:26 AMwitty-crayon-22786
02/15/2019, 4:43 PM