I think the memory growth now is not related to Cayenne or Bootique. Tony Giaccone
> On Dec 5, 2018, at 7:58 AM, Andrus Adamchik <and...@objectstyle.org> wrote: > > Invalidation goes all the way down from the context to the shared snapshot > cache. So maybe this is the shared cache to blame. It is only 10K snapshots > max by default though, so not sure why would that be an issue (unless you > increased it explicitly via 'cayenne.DataRowStore.snapshot.size' property). > > Andrus > >> On Dec 5, 2018, at 3:46 PM, Tony Giaccone <anthony.giacc...@nytimes.com> >> wrote: >> >> In the end we invalidated all the objects we inserted and that solved the >> memory problem. The memory still climbs slightly but nothing like what was >> happening before the invalidation. >> >> There are other features that have PRs ready that are likely to cause the >> memory footprint to grow. But that’s a totally different problem. :-) >> >> >> Tony Giaccone >> >>> On Dec 5, 2018, at 2:00 AM, Andrus Adamchik <and...@objectstyle.org> wrote: >>> >>> While this wouldn't hurt, technically it should not be needed, as >>> ObjectContext has weak references to "untouched" objects, so they will be >>> GC'd sooner or later. >>> >>> I'd say the shared snapshot cache may be the culprit, but Tony says the >>> following: >>> >>>>> Even thought after each insert we invalidate the object we just inserted. >>> >>> So this is something else. So I'd suggest doing memory profiling to see >>> which code retains the objects. This may not be Cayenne. >>> >>> Andrus >>> >>> >>>> On Dec 5, 2018, at 1:13 AM, John Huss <johnth...@gmail.com> wrote: >>>> >>>> I would try creating a new ObjectContext every so often, not just >>>> invalidating the objects. >>>> >>>>> On Tue, Dec 4, 2018 at 2:58 PM Tony Giaccone <t...@giaccone.org> wrote: >>>>> >>>>> We're processing a request and generating about 130,000 new objects. Once >>>>> these objects are created and saved we'll never need to access them again >>>>> in this process. The heap steadily grows as we do this. Even thought >>>>> after >>>>> each insert we invalidate the object we just inserted. >>>>> >>>>> What should I do to minimize the amount of memory that's held by Cayenne >>>>> as >>>>> we do this large number of inserts? Am I missing something? Are there >>>>> snapshots for each of these objects? If there are is there an way to purge >>>>> those? >>>>> >>>>> >>>>> Tony >>>>> >>> >