Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Corrected links that should have been relative instead of absolute.

...

[12:58:44 CST(-0600)] <EricDalquist> even though that is the same for every urkl in the reuqest

[14:03:58 CST(-0600)] <EricDalquist> https://github.com/Jasig/uPortal/commit/68051fb9c9aa683f32d00a0fc8ac97fd900e8faa

[14:04:01 CST(-0600)] <EricDalquist> there we go

[14:05:33 CST(-0600)] <athena> oh nice

[14:05:41 CST(-0600)] <athena> is that the performance stuff he wanted to talk about before?

[14:05:54 CST(-0600)] <EricDalquist> well it is part of addressing it

[14:06:03 CST(-0600)] <EricDalquist> apparently xpath in the core JDK apis is terribly slow

[14:06:22 CST(-0600)] <athena> ah, interesting

[14:06:29 CST(-0600)] <EricDalquist> like 5-60ms to get the tabid for a random layout node id

[14:06:38 CST(-0600)] <EricDalquist> and that would run every time a url was generated

[14:06:41 CST(-0600)] <athena> oh wow

[14:06:47 CST(-0600)] <athena> yeah i guess that'd make a difference (smile)

[14:07:19 CST(-0600)] <EricDalquist> he got a huge boost by just navigating the DOM manually

[14:07:25 CST(-0600)] <EricDalquist> his patch just did it in the wrong place

[14:07:43 CST(-0600)] <EricDalquist> the other patch that helped a lot was not looking up portlet entities directly by user+layout+node

[14:07:51 CST(-0600)] <EricDalquist> instead getting all entities for user+layout

[14:07:59 CST(-0600)] <EricDalquist> then iterate on them comparing the nodes

[14:08:04 CST(-0600)] <athena> sounds like really good stuff

[14:08:06 CST(-0600)] <EricDalquist> yeah

[14:08:16 CST(-0600)] <athena> really glad he's involved (smile)

[14:08:21 CST(-0600)] <EricDalquist> a lot of this stuff is a result of only being part way to hibernate/jpa

[14:08:30 CST(-0600)] <athena> ah, yeah

[14:08:39 CST(-0600)] <EricDalquist> if everything was actually part of our JPA model we could essentially load it all when the user logs in

[14:08:49 CST(-0600)] <EricDalquist> or load it in reasonable chunks

[14:09:01 CST(-0600)] <EricDalquist> getting users + layouts moved over will be huge for reducing DB io

[14:09:05 CST(-0600)] <athena> yeah

[14:09:09 CST(-0600)] <EricDalquist> since then we can really have one object graph per user

[14:09:11 CST(-0600)] <athena> would love to get that work done

[14:09:18 CST(-0600)] <athena> maybe after stats?

[14:09:20 CST(-0600)] <EricDalquist> and load the whole graph at login with a minimal number of calls

[14:09:21 CST(-0600)] <EricDalquist> yeah

[14:09:24 CST(-0600)] <EricDalquist> after stats

[14:09:28 CST(-0600)] <athena> how's the stats stuff going, by the way?

[14:09:32 CST(-0600)] <EricDalquist> and after I get 4.0 deployed here

[14:09:33 CST(-0600)] <EricDalquist> good

[14:09:40 CST(-0600)] <EricDalquist> the branch is making good progress

[14:09:48 CST(-0600)] <EricDalquist> I just keep realizing more gotchas (tongue)

[14:09:50 CST(-0600)] <athena> lol

[14:09:55 CST(-0600)] <EricDalquist> I had forgotten how complex that aggregator was

[14:10:01 CST(-0600)] <EricDalquist> its translating over just fine

[14:10:11 CST(-0600)] <EricDalquist> it is just A LOT of daos/entities

[14:10:23 CST(-0600)] <athena> yeahi 'm sure

[14:12:21 CST(-0600)] <EricDalquist> here is the work so far: https://github.com/edalquist/uPortal/compare/master...event-aggr

[14:14:16 CST(-0600)] <EricDalquist> most important stuff that you'll be interested in is:

[14:14:16 CST(-0600)] <EricDalquist> https://github.com/edalquist/uPortal/compare/master...event-aggr#diff-44

[14:14:16 CST(-0600)] <EricDalquist> https://github.com/edalquist/uPortal/compare/master...event-aggr#diff-42

[14:20:46 CST(-0600)] <athena> awesome (smile)

[14:21:05 CST(-0600)] <athena> i'll take a look

[14:21:57 CST(-0600)] <EricDalquist> the api is still going to change a little bit

[14:22:03 CST(-0600)] <EricDalquist> that is what I just realized

[14:22:07 CST(-0600)] <EricDalquist> but its getting closer

[14:22:39 CST(-0600)] <EricDalquist> the other thing I need to do (in addition to the term/quarter config) is allow configuration of what groups and intervals each aggregator sees

[14:22:57 CST(-0600)] <EricDalquist> I have a feeling I'm just going to have to write an even aggregation admin flow :/

[14:25:46 CST(-0600)] <athena> ahhh

[14:25:47 CST(-0600)] <athena> hmm.

[14:25:52 CST(-0600)] <athena> yeah