uPortal IRC Logs-2009-05-08

[00:55:12 EDT(-0400)] * Sememmon (n=Sememmon@70.190.32.223) has joined ##uportal
[03:49:10 EDT(-0400)] * higmad (n=chatzill@pcit-8752.HIG.SE) has joined ##uportal
[08:42:38 EDT(-0400)] * tsnfoo (n=tsnfoo@wso-mbp15.test.denison.edu) has joined ##uportal
[09:02:32 EDT(-0400)] * jessm (n=Jess@c-71-232-1-65.hsd1.ma.comcast.net) has joined ##uportal
[09:10:04 EDT(-0400)] * fj40001 (n=Main@CPE0018f85ab63e-CM001692f5798c.cpe.net.cable.rogers.com) has joined ##uportal
[09:27:36 EDT(-0400)] * athena (n=athena@99.129.100.66) has joined ##uportal
[09:29:15 EDT(-0400)] * lennard1 (n=sparhk@ip68-98-56-21.ph.ph.cox.net) has left ##uportal
[09:37:07 EDT(-0400)] * anastasiac (n=stasia@142.150.154.189) has joined ##uportal
[09:51:11 EDT(-0400)] * michelled (n=team@142.150.154.193) has joined ##uportal
[09:54:21 EDT(-0400)] * lennard1 (n=sparhk@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[10:41:47 EDT(-0400)] * EricDalquist (n=dalquist@bohemia.doit.wisc.edu) has joined ##uportal
[11:01:06 EDT(-0400)] <athena> I added some current screenshots of UP-2047 to Confluence: http://www.ja-sig.org/wiki/display/UPC/Current+Portlet+Administration+Portlet+Development+Status
[11:01:22 EDT(-0400)] <EricDalquist> neat
[11:02:28 EDT(-0400)] <athena> hopefully i can find some time to write up an email - i suspect that more people will have time to look at screenshots on a wiki page than to check out and build the current trunk
[11:33:03 EDT(-0400)] * awills (n=awills@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[11:36:15 EDT(-0400)] * holdorph (n=holdorph@98.174.242.39) has joined ##uportal
[12:36:31 EDT(-0400)] * Sememmon (n=Sememmon@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[15:55:35 EDT(-0400)] * agherna (n=agherna@panache.ci.uiuc.edu) has joined ##uportal
[16:04:20 EDT(-0400)] * anastasiac (n=stasia@142.150.154.189) has left ##uportal
[17:06:49 EDT(-0400)] <agherna> question
[17:07:03 EDT(-0400)] <agherna> i downloaded and built uPortal 3.1.0
[17:07:09 EDT(-0400)] <agherna> built the war file
[17:07:32 EDT(-0400)] <agherna> i noticed that the uPortal jar is built, then exploded to the WEB-INF/classes directory
[17:07:39 EDT(-0400)] <EricDalquist> yes
[17:07:46 EDT(-0400)] <EricDalquist> that was changed in 3.0.1 I think
[17:07:54 EDT(-0400)] <EricDalquist> on overwhelming request of the community
[17:08:03 EDT(-0400)] <agherna> is there a functional reason why?
[17:08:06 EDT(-0400)] <EricDalquist> so that you can easily edit config files in tomcat
[17:08:10 EDT(-0400)] <agherna> oh
[17:08:31 EDT(-0400)] <EricDalquist> functionally it is very similar to just using the JAR
[17:08:38 EDT(-0400)] <agherna> are the configuration files in the uportal-impl module?
[17:08:56 EDT(-0400)] <EricDalquist> all config is in uportal-impl/src/main/resource/properties
[17:09:00 EDT(-0400)] <agherna> oh
[17:09:19 EDT(-0400)] <agherna> hypothetically speaking...
[17:09:21 EDT(-0400)] <EricDalquist> the functional difference is that the classloader looks in WEB-INF/classes before looking in WEB-INF/lib
[17:09:43 EDT(-0400)] <agherna> could one move the properties files to the uportal-war module?
[17:09:46 EDT(-0400)] <EricDalquist> no
[17:09:52 EDT(-0400)] <EricDalquist> all the tools will break
[17:10:01 EDT(-0400)] <EricDalquist> like deploy portlet app, initdb
[17:10:03 EDT(-0400)] <EricDalquist> crn-*
[17:10:15 EDT(-0400)] <EricDalquist> there is no way in Maven to have a WAR artifact as a classpath dependency
[17:10:16 EDT(-0400)] <agherna> relies on the spring xmls there, huh?
[17:10:27 EDT(-0400)] <EricDalquist> yeah
[17:10:34 EDT(-0400)] <EricDalquist> since the tools need to use the same config your portal would
[17:10:50 EDT(-0400)] <EricDalquist> that is why there is the impl and the war module
[17:10:58 EDT(-0400)] <EricDalquist> the need for command line tools
[17:11:23 EDT(-0400)] <agherna> ok
[17:12:34 EDT(-0400)] <holdorph> why do you ask agherna ?
[17:12:36 EDT(-0400)] <holdorph> just curious
[17:12:40 EDT(-0400)] <agherna> but, if you wanted to, could you change the build so that the jar file is built?
[17:12:42 EDT(-0400)] <agherna> well
[17:12:52 EDT(-0400)] <EricDalquist> yeah
[17:13:01 EDT(-0400)] <EricDalquist> you could change that in uportal-war/pom.xml
[17:13:04 EDT(-0400)] <agherna> i was comparing a few of the different builds
[17:13:10 EDT(-0400)] <agherna> our build (uP2.6)
[17:13:16 EDT(-0400)] <agherna> out of the box build (uP2.6)
[17:13:23 EDT(-0400)] <agherna> out of the box build (uP31.)
[17:13:28 EDT(-0400)] <agherna> *3.1
[17:13:47 EDT(-0400)] <agherna> I was looking at the number of files/directores that were created as a result.
[17:14:10 EDT(-0400)] <agherna> Now I'm trying to figure out the best way to optimize it for our situation
[17:15:31 EDT(-0400)] <agherna> fwiw, in the up2.6.1 build there are 5164 zip entries in uPortal.war
[17:15:36 EDT(-0400)] <EricDalquist> back on in about 30 minutes
[17:15:45 EDT(-0400)] <agherna> in up3.1.0, there are 3640 zip entries
[17:15:57 EDT(-0400)] <agherna> so it is much improved
[17:16:45 EDT(-0400)] <holdorph> the number of files is a performance problem for your environments?
[17:16:56 EDT(-0400)] <agherna> only at deploy time
[17:17:21 EDT(-0400)] <holdorph> how so?
[17:17:43 EDT(-0400)] <holdorph> (FWIW, one of my sakai deployments has over 13,000 files)
[17:18:32 EDT(-0400)] <agherna> the script that's used to ultimately deploy to our servers uses rsync
[17:19:22 EDT(-0400)] <agherna> with the deep directory structures in 2.6 (and a lot of files that we should have cleaned out before we first implemented)...
[17:19:55 EDT(-0400)] <agherna> it causes the script's performance to degrade
[17:20:10 EDT(-0400)] <agherna> we do not own this script, another university entity does
[17:20:32 EDT(-0400)] <agherna> the good news is that everyone knows when a portal rollout happens
[17:20:53 EDT(-0400)] <agherna> the bad news is it's because the deployment server CPU spikes up to 90% just to push our stuff out
[17:20:56 EDT(-0400)] <agherna> (tongue)
[17:21:17 EDT(-0400)] <agherna> so i'm trying to get a handle on it
[17:21:37 EDT(-0400)] <holdorph> wow, so yeah, you could probably try to do some uportal stuff, but the real culprit there, is the deployment script
[17:21:55 EDT(-0400)] <holdorph> a simple, tar, scp, untar would improve that situation dramatically
[17:22:21 EDT(-0400)] <agherna> the process that's in place is designed to audit who put what into which environment
[17:22:32 EDT(-0400)] <agherna> the deploy script is the final "out the door" operation
[17:23:01 EDT(-0400)] <holdorph> sure, but depending on the rsync options used, it's not much different then tar/scp/untar
[17:23:15 EDT(-0400)] <agherna> it's done in a way that there is no way to push an archive and then extract it
[17:23:17 EDT(-0400)] <agherna> right
[17:23:25 EDT(-0400)] <agherna> it's done by...
[17:23:29 EDT(-0400)] <agherna> what's the term...
[17:23:36 EDT(-0400)] <agherna> users you can't log in as on unix...
[17:23:52 EDT(-0400)] <holdorph> root
[17:24:05 EDT(-0400)] <agherna> sort of, yes, but they are not the root user
[17:24:20 EDT(-0400)] <agherna> you can su to that user (e.g. tomcat, cvs, etc.)
[17:24:23 EDT(-0400)] <agherna> but you can't log in as them
[17:24:53 EDT(-0400)] <agherna> and unfortunately i will never be able to su in as the user who has the permissions to push the changeset as an archive and extract them
[17:24:59 EDT(-0400)] <holdorph> what kind of improvement do you see by reducing the number of files by X?
[17:25:41 EDT(-0400)] <agherna> If I were to deploy a portlet with a modest amount of zipentries in its war file, say 60, the whole process is over in less than a minute
[17:25:46 EDT(-0400)] <holdorph> as much as i love rsync for all sorts of things, I will admit with large file lists, it's a beast
[17:26:14 EDT(-0400)] <agherna> with our uPortal depending on the size of the change, it could take several minutes to a couple hours
[17:26:35 EDT(-0400)] <agherna> so i have to do manual tricks since using automation kills it too quickly
[17:28:00 EDT(-0400)] <holdorph> wow. it's quite the story. But yes, it seems like the direction you were leaning and eric was stearing you, was the best
[17:28:26 EDT(-0400)] <holdorph> essentially get back to jar'ing up classes. it's got a downside, but in your case, it's probably worth it
[17:28:49 EDT(-0400)] <holdorph> considering almost 2000 of the 2500 files in the uPortal 3.1 web app, are in that classes directory and could be one .jar file
[17:29:00 EDT(-0400)] <agherna> right
[17:29:12 EDT(-0400)] <agherna> but there's the support side to it too
[17:29:38 EDT(-0400)] <holdorph> from a non-sucky-rsync deployment side of things, yeah, it sucks having all of those things in one .jar file though (smile)
[17:29:55 EDT(-0400)] <agherna> yeah
[17:30:31 EDT(-0400)] <agherna> it's no sweat for me to ssh to the server, jar xf /path/uPortal-impl.jar -C /home/agherna/tmp and read the configs
[17:30:41 EDT(-0400)] <agherna> but there are people on my team who would rather not do that
[17:30:51 EDT(-0400)] <agherna> and i would get tired of it too
[17:32:52 EDT(-0400)] <agherna> it would be nice if...
[17:33:11 EDT(-0400)] <agherna> uportal-impl could be separated into different pieces
[17:33:22 EDT(-0400)] <agherna> uportal-api.jar – interfaces, etc.
[17:33:48 EDT(-0400)] <agherna> uportal-utils.jar – stuff that doesn't need spring configs
[17:33:58 EDT(-0400)] <agherna> then the rest go into WEB-INF/classes
[17:34:02 EDT(-0400)] <agherna> something like that
[17:34:44 EDT(-0400)] <holdorph> is your deployment rsync'ing from a deployed tomcat location? or from a raw maven build tree?
[17:35:24 EDT(-0400)] <agherna> it deploys from an image that's an exploded war file
[17:35:39 EDT(-0400)] <agherna> analyzes what's changed
[17:35:42 EDT(-0400)] <agherna> and pushes the changes
[17:35:55 EDT(-0400)] <agherna> which is built into rsync, right?
[17:36:06 EDT(-0400)] <holdorph> the analyze/push, sure
[17:36:17 EDT(-0400)] <holdorph> but i was asking about what kind of directory is it analyzing
[17:37:05 EDT(-0400)] <agherna> the directory structure you would get if you deployed uPortal as an exploded war file
[17:37:12 EDT(-0400)] <agherna> that one
[17:37:23 EDT(-0400)] <agherna> and it's huge
[17:37:35 EDT(-0400)] <holdorph> ok, but what creates that directory structure?
[17:37:47 EDT(-0400)] <holdorph> can't you modify the process that creates that structure?
[17:37:50 EDT(-0400)] <agherna> no
[17:37:55 EDT(-0400)] <agherna> here's how it works.
[17:38:00 EDT(-0400)] <agherna> bear with me
[17:38:19 EDT(-0400)] <agherna> to get anything deployed, we use CVS
[17:38:57 EDT(-0400)] <agherna> that is, we will build uPortal.war, check out the directory in CATALINA_BASE/webapps for uPortal and extract it over the top of that then commit
[17:39:19 EDT(-0400)] <agherna> the commit process has a post-commit hook that causes a checkout to a staging server
[17:39:33 EDT(-0400)] <agherna> that staging server will then run rsync to push it out to our target servers
[17:39:35 EDT(-0400)] <agherna> but
[17:39:49 EDT(-0400)] <agherna> cvs commits files in a non-deterministic way
[17:39:59 EDT(-0400)] <agherna> the authors of this process had to punt
[17:40:20 EDT(-0400)] <agherna> so they waited till a directory was committed, then executed the hook
[17:40:36 EDT(-0400)] <agherna> but while the hook is executing, another directory finishes committing
[17:40:44 EDT(-0400)] <agherna> so the hook is re-executed.
[17:40:52 EDT(-0400)] <agherna> until all the directories are committed
[17:41:01 EDT(-0400)] <agherna> with portlets, it's no big deal
[17:41:21 EDT(-0400)] <agherna> but with 100s of directories like in uPortal, it becomes a really big deal
[17:41:32 EDT(-0400)] <agherna> so processes get queued
[17:41:35 EDT(-0400)] <agherna> the CPU spikes
[17:41:57 EDT(-0400)] <agherna> the operators in the server room worry that the building will burn down, etc. etc.
[17:42:31 EDT(-0400)] <agherna> we do not own this process
[17:42:40 EDT(-0400)] <agherna> it's their world, we're just living in it
[17:43:39 EDT(-0400)] <agherna> so i'm working on getting our process set up in such a way that commits are determinisitic and that we can use automation
[17:43:50 EDT(-0400)] <agherna> but i was wondering how far to take that
[17:44:24 EDT(-0400)] <holdorph> replace CVS with subversion?
[17:44:37 EDT(-0400)] <agherna> that's a project that's going on now
[17:44:44 EDT(-0400)] <agherna> we're looking to be early adopters
[17:45:07 EDT(-0400)] <agherna> but i think the deployment process won't change, at least from our side of things
[17:45:43 EDT(-0400)] <agherna> we use svn for our source code (that's what we consider to be the safe source)
[17:46:00 EDT(-0400)] <holdorph> still, what I'm looking at the part of the process you described as... [14:38] <agherna> that is, we will build uPortal.war, check out the directory in CATALINA_BASE/webapps for uPortal and extract it over the top of that then commit
[17:46:18 EDT(-0400)] <holdorph> "you build uportal.war". what process are you using to do that?
[17:46:24 EDT(-0400)] <agherna> ant dist
[17:46:36 EDT(-0400)] <agherna> that said
[17:46:44 EDT(-0400)] <holdorph> you could just make changes to the build.xml then
[17:46:49 EDT(-0400)] <agherna> sure
[17:46:53 EDT(-0400)] <holdorph> and do the massaging you want to do there
[17:47:00 EDT(-0400)] <agherna> we're trying to clean up some of the files that we don't need now
[17:47:10 EDT(-0400)] <agherna> and hope that gets us to someplace more reasonable
[17:54:50 EDT(-0400)] <agherna> and i can't even tweet about it because twitter is down for maintenance
[17:55:00 EDT(-0400)] <agherna> :x
[17:55:31 EDT(-0400)] * EricDalquist (n=EricDalq@dyn-100-231.uwnet.wisc.edu) has joined ##uportal
[17:56:26 EDT(-0400)] <agherna> enjoy your weekend everyone
[17:56:27 EDT(-0400)] <holdorph> oh noes
[17:56:30 EDT(-0400)] <holdorph> cya
[17:56:32 EDT(-0400)] * lennard1 (n=sparhk@wsip-98-174-242-39.ph.ph.cox.net) has joined ##uportal
[17:56:40 EDT(-0400)] <EricDalquist> time to read the logs ...
[17:56:50 EDT(-0400)] <agherna> @holdorph, oh noes indeed
[17:56:56 EDT(-0400)] <agherna> bye
[18:00:08 EDT(-0400)] <EricDalquist> interesting conversation
[18:00:20 EDT(-0400)] <EricDalquist> disabling exploding of the jar would save him quite a bit
[18:01:12 EDT(-0400)] <holdorph> but increase their frustration in the properties area at other times
[18:01:20 EDT(-0400)] <EricDalquist> yeah
[19:01:45 EDT(-0400)] * [jlee_] (n=jlee@adsl-074-184-125-241.sip.asm.bellsouth.net) has joined ##uportal
[20:34:14 EDT(-0400)] * awills (n=awills@wsip-98-174-242-39.ph.ph.cox.net) has left ##uportal
[20:42:49 EDT(-0400)] * lennard1 (n=sparhk@wsip-98-174-242-39.ph.ph.cox.net) has left ##uportal
[21:41:35 EDT(-0400)] * EricDalquist (n=EricDalq@adsl-71-150-249-231.dsl.mdsnwi.sbcglobal.net) has joined ##uportal