Monday, 2016-11-14

*** valw has joined #craton03:11
*** valw has quit IRC03:15
*** valw has joined #craton03:18
*** valw has quit IRC04:26
*** tojuvone has joined #craton07:57
*** tojuvone_ has joined #craton07:57
*** tojuvone_ has quit IRC07:57
*** tojuvone has quit IRC11:37
sigmavirusjimbaker: so13:03
sigmavirusIt seems like people would be okay adding cachecontrol to g-r (or at least support it part of the way),13:04
sigmavirusThat said, CacheControl follows the RFC rather strictly, so we'd need to start sending back the appropriate headers (which I don't think Flask does for you out of the box)13:04
sigmavirusDo we want to stick to dogpile.cache's naïve approach for now and then swap out later? We have an API that is dogpile agnostic13:05
sulog-r ?13:07
suloalso how is cache invalidated right now ?13:08
suloadding right headers is prolly not too bad but then we need to add proper etags for the client13:12
suloor probably like last-mod header, which is probably better for our usecase13:15
sigmavirussulo: g-r is shorthand (openstack) for global-requirements.txt (in openstack/requirements)13:21
sigmavirussulo: cache is not invalidated right now, this is one of the downsides I mentioned on the patch13:21
sigmavirus(Cache can be expired though)13:22
sulosigmavirus: ah gotcha13:38
sigmavirusSo we have something of a chicken-egg problem, in that OSA wants caching today /but/ it'll take longer for that to be probable unless we go for the short-term solution of using dogpile13:43
jimbakersigmavirus, sulo, from what i can tell, CacheControl is orthogonal to dogpile. we want both in our solution13:47
jimbakerre flask specifics - anything beyond http://werkzeug.pocoo.org/docs/0.11/datastructures/#werkzeug.datastructures.RequestCacheControl ?13:51
sigmavirusjimbaker: I'm honestly not sure. Haven't done the research14:01
sigmavirusjimbaker: why do you think we want both dogpile.cache and cachecontrol?14:02
jimbakersigmavirus, this assumes that we are differentiating between objects in the ORM that are being cached; vs any returned queries14:03
sigmavirusjimbaker: so, I'm purely talking about the client side here14:03
sigmavirusI don't think we should be doing caching on the craton-api side14:04
sigmavirusdogpile (as best as I can tell) will need quite a bit of work for it to recognize (and then invalidate) somethign that modifies something already in the cache14:04
sigmavirusIt works based off of function arguments and is at best a library for memoization, not really caching14:04
sigmavirusthe name is not apt14:04
jimbakersigmavirus, sure, dogpile is only relevant to the server side14:05
jimbakerand anything that's interesting in terms of consistency requires some means to expire cache entries14:06
jimbakeron the client side, if we implement cache control for the api, we can take advantage with CacheControl. which makes a lot of sense to me14:07
sigmavirusI can take a look at generating the cache headers then today14:09
jimbakersigmavirus, +114:09
jimbakeralso was reading up on recent work on providing in-memory alternatives to the usual mysql, such as NDB14:37
*** syed__ has joined #craton14:42
jimbakersigmavirus, sulo, syed__, others here, we will be meeting in #openstack-meeting-4 in 10 minutes14:50
*** valw has joined #craton15:01
*** Mudpuppy has joined #craton15:02
*** valw has quit IRC15:21
*** valw has joined #craton15:25
*** valw has quit IRC15:27
*** valw has joined #craton15:28
*** valw_ has joined #craton15:30
*** valw has quit IRC15:32
*** logan- has quit IRC15:54
*** logan- has joined #craton16:01
jimbakersulo, so potentially we can also leverage https://blueprints.launchpad.net/craton/+spec/craton-notifications for cache invalidation as well16:04
sulojimbaker: serveside yes16:04
jimbakeryes, server side :)16:04
jimbakersigmavirus will have the cache invalidation working quite nicely on client side this week - should be straightforward with a decent library16:05
jimbakersulo, although i could see a dashboard benefiting from a such service16:06
jimbakeror rather, functionality16:06
sulohttps://github.com/openstack/oslo.messaging16:06
sulojimbaker: yeah its meant for dashboard16:06
suloi should write more complete description16:07
suloso its meants to sync dashboard view one(more) craton instances running16:07
*** valw_ has quit IRC16:13
*** valw has joined #craton16:13
*** jovon has joined #craton16:32
*** valw has quit IRC18:03
*** valw has joined #craton18:05
*** valw has quit IRC18:42
*** valw has joined #craton19:23
*** Dusty has joined #craton19:45
sulosooo19:47
suloadding docker to test increases the test time by atleast 5 mins19:47
suloit takes on average about 5 mins to get the container setup19:47
sigmavirussulo: yeah, I don't like the idea of using docker for this19:48
sigmavirusAt least with RPC, I can almost guarantee we won't use docker to deploy craton19:49
sulosigmavirus: yeah, maybe we need to look at something else for testing19:49
jimbakersulo, so are you building the container incrementally?19:54
*** Dusty has quit IRC19:54
jimbakeri would assume that using a layer that's just the mysql data from the gen fake cloud, plus starting mysql + craton api would be much less than 5 min19:55
*** Dusty has joined #craton19:55
jimbakerstill need to deal with docker's terrible tail distribution, but that still is on the order of a minute or so from what i have seen. may just be a mac thing too19:56
sulobuild does not include data at all19:57
sulothis is simply to build the initial image19:57
jimbakersulo, so that's fine. we should be able to just keep an initial image, pre startup of mysql/craton api19:57
jimbakerthen use that as a starting point for subsequent containers19:58
sulosame thing .. its only fast by few seconds19:58
sulosince that image is X10 larger19:58
*** Dusty has quit IRC19:59
jimbakersulo, ok... i guess we can just start mysql separately with fresh fixture data. another thing to do is to avoid fsync - http://www.tocker.ca/2013/11/04/reducing-mysql-durability-for-testing.html19:59
jimbakersulo, also we should start mysql separately; i haven't done this, but presumably http://dev.mysql.com/doc/refman/5.7/en/environment-variables.html provides enough control to get different port assignment20:02
jimbakerif we cannot containerize, let's at least treat it more or less like it is :)20:03
*** Mudpuppy has quit IRC20:08
*** Dusty has joined #craton20:08
sigmavirusjimbaker: we're installing craton into a virtualenv on the container. Using a virtualenv elsewhere is treating it like we treat our containers, no?20:37
sigmavirusAlso, I think I'm going to work on a blueprint for the caching things because I think there are complexities here that need careful consideration20:38
jimbakersigmavirus, iirc, we are not installing craton into a virtualenv in the provided Dockerfile20:41
jimbakerbut virtualenv is generally good, right?20:41
jimbakersigmavirus, +1 re blueprint for client-side caching. can also ref with respect to what we want do on the server side20:42
jimbakerwhich are two separable concerns20:42
sigmavirusjimbaker: https://github.com/openstack/craton/blob/master/Dockerfile#L58..L7320:43
sigmavirussigmavirus: I mean a blue print for the server side20:43
sigmavirusthe client side is a simple as tossing cachecontrol into the mix20:43
jimbakersigmavirus, nm, obviously the Dockerfile states what it actually is ;)20:43
jimbakervs poor flawed human memory20:44
sigmavirusno worries :)20:49
sulook i got the build time down to 3 mins21:09
sulowe might be able to further bring it down a bit21:09
sulobut i guess the question is21:09
sulodo we care that we need 3 mins to setup to run functional tests ?21:10
suloi wonder how other projects are doing it21:12
sulowe can always do tempest21:14
sulobut i kinda liked this approach with docker21:14
sigmavirustempest is orthogonal to docker21:15
sigmavirusi have to run though, later y'all21:15
*** Mudpuppy has joined #craton21:15
sulosigmavirus: but doesnt tempest need eithr devstack or some sort of vm configured to run its test ?21:16
sulosigmavirus: also i thought there was an effort to move away from tempest21:17
*** Mudpuppy_ has joined #craton21:22
palendaesulo: iirc tempest will simply hit addresses/ports it's pointed at, even if they're on the local machine21:24
palendaeI don't know for certain, but I think devstack is used by most projects on their gates simply to get everything up locally quickly21:24
palendaeHowever, OSA doesn't use devstack at all, but still runs tempest21:25
*** Mudpuppy has quit IRC21:25
palendaeAs to whether or not tempest is the future solution, I have no idea.21:25
sulopalendae: ok21:27
*** valw has quit IRC21:32
*** ahsa518 has joined #craton21:35
*** valw has joined #craton21:36
jimbakersulo, 3 min is not bad21:47
jimbakerand if we can bring under tempest, that's cool too. we probably should look at how OSA does it - more likely going to be closer to what we need to do in terms of a custom fit21:47
jimbakerif we can run *it* under21:48
jimbakersulo, at the very least, let's take a look at that branch!21:48
*** rainya has joined #craton21:53
*** valw has quit IRC22:08
*** jovon has quit IRC22:17
*** jovon has joined #craton22:26
*** rainya has quit IRC22:52
*** Dusty has quit IRC23:17
*** ahsa518 has quit IRC23:39
*** Mudpuppy_ has quit IRC23:44
*** Mudpuppy has joined #craton23:44

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!