Friday, 2016-08-12

*** pvaneck has quit IRC00:44
*** davidlenwell has quit IRC00:53
*** davidlenwell has joined #refstack01:05
*** ChanServ sets mode: +o davidlenwell01:05
*** Deng has joined #refstack03:21
*** andrey-mp has joined #refstack05:45
*** andrey-mp has quit IRC06:45
*** markvoelker has quit IRC07:34
*** andrey-mp has joined #refstack08:09
*** rmart04 has joined #refstack08:20
*** markvoelker has joined #refstack08:34
*** andrey-mp has quit IRC08:35
*** markvoelker has quit IRC08:39
*** markvoelker has joined #refstack09:36
*** markvoelker has quit IRC09:40
*** andrey-mp has joined #refstack09:41
*** markvoelker has joined #refstack11:37
*** markvoelker has quit IRC11:42
*** markvoelker has joined #refstack12:35
*** edmondsw has joined #refstack13:14
*** Deng has quit IRC13:30
*** designbybeck_ has joined #refstack13:43
*** rmart04 has quit IRC15:13
*** andrey-mp has quit IRC15:33
*** hockeynut has joined #refstack15:54
*** andrey-mp has joined #refstack17:07
andrey-mpcatherineD: i'm here17:18
catherineDandrey-mp: thank you very much!17:19
catherineDsince I think we can have interactive discussion here about the comment you put on the alternative section in https://review.openstack.org/#/c/353903/17:20
andrey-mpsure17:20
andrey-mpbut my comments about alternative section can be ommited )17:20
andrey-mpit was just a thoughts17:20
catherineDandrey-mp: I want to consider if it make sense ..17:21
catherineDalso in case I miss some thing17:21
catherineDthat you think of17:21
andrey-mpi dislike my first variant - because i dislike component primary keys17:22
catherineDso for both examples the design only have one table ( product table) right?17:22
andrey-mpyes17:22
catherineDon the second example is "product MOS" just the name of the product?17:23
andrey-mpjust adding 'version' column to product table (this breaks 2NF - second normal form of DB)17:23
andrey-mpyes, it's a name17:23
catherineDso in the second table product_id will be unique primary key created by the system ..17:25
*** pvaneck has joined #refstack17:25
catherineDproduct name and version will be user input ..17:25
andrey-mpyou mean variant with two tables?17:26
catherineDNo, I am still trying to understand your example 2 ... in which the product table will have column: product_id, version, name, ......17:27
catherineDand product_id is the id that created automatically whenever a product is created ..17:28
catherineDversion and name are user input when create the product ...17:28
andrey-mpyes. this variant assumes that each version it is a new product17:29
catherineDyea that is not the model that OSF ...  in their model there is only one product with many versions17:29
catherineDyes the model in example 2 is as you said each version is a new product17:30
andrey-mpthey treat product as a object with some name and this product has versions or not17:31
catherineDI can add your example 2 to the spec to log  that we thought about this model .. but it does not reflect the 1 product to many versions model17:31
catherineDcorrect17:31
andrey-mpit can reflect )17:32
andrey-mpwe define how we will build our DB and our API17:32
catherineDthis is what I missed pls tell me how ...17:32
andrey-mpand due to DB layer is hidden from user - we can do anything17:32
catherineDthe reason I do not see it reflect is ...17:33
andrey-mpfor product with two version DB will have two items17:33
andrey-mpand these two items can have similar names or not, can have different cpid (for example)17:33
catherineDhow would the two item in db reflect one product with 2 version in the marketplace17:34
catherineDespecially the two items with similar name or not17:34
andrey-mphow it implemented now? we don't have imlement that relates product to marketplace17:35
openstackgerritMerged openstack/refstack-client: Add specs hierarchy into refstack-client  https://review.openstack.org/34913317:35
catherineDHow do people know that this is one product17:35
catherineDandrey-mp: the plan is once we have this implemented17:36
andrey-mpin such vision it is not one  product - this is two products.17:36
catherineDthe test link on the  marketplace will be a link on the RefStack website17:37
catherineDlet take one example in the marketplace for our discussion17:37
andrey-mpthey still don't have versions as I see17:38
*** hockeynut has quit IRC17:38
andrey-mpMirantis OpenStack (MOS) has versions 6.1 7.0 8.0 9.017:38
andrey-mpall these versions still exist17:38
catherineDtell me what is the name on the marketplace ?17:39
andrey-mpMirantis OpenStack17:39
catherineDok17:39
andrey-mpthis is - https://www.openstack.org/marketplace/distros/distribution/mirantis/mirantis-openstack17:40
catherineDdo you see the tested green box17:40
catherineDand the see fill results[+] link?17:41
andrey-mpsure )17:41
andrey-mpbut my question still exists - which version eas tested?17:41
catherineDcurrently when you click the full result link it just show a standard table17:42
catherineDin the future this will show one or mor links on the refstack page ...17:42
catherineDeach link of the refstack page will be tied to a product version17:43
catherineDso there will be more than one link17:43
andrey-mpso it is a main use case for this feature in RefStack - support marketplace model17:44
catherineDyes17:44
catherineDthe product name will always be Mirantis OpenStack17:45
catherineDFor your example 2 model ... since name is user input ... we can not guarantee that the user will inout the same names for all versions of the same product17:46
andrey-mpin my examples i tried to model DB by another way17:47
andrey-mpyour definition is related to UI - for example, if user wants to add version to product, we forbid to define a name and just a copy DB item17:48
catherineDthe only reason why I see this model does not work because we have to rely on user input for to enforce the same names for the different entries17:48
catherineDandrey-mp: there is no copy off db item if we use the two table (product, version ) model17:49
catherineDproduct would just created once in the product table17:49
andrey-mpanother example of breaking 2NF (https://en.wikipedia.org/wiki/Second_normal_form) - is to store products and vendors in one huge table )17:49
andrey-mpsure17:49
catherineDversion can be created many times17:50
andrey-mpsure, I understand you17:50
andrey-mpthis is all about terminology - can we treat different versions of one product as different product in our DB or it's better to be similar to marketplace17:51
catherineDthe 1 to many relation ship is usually model in database with 2 tables ... organization to product is another example of 1 org to many product relationship17:52
catherineDandrey-mp: exactly17:52
catherineDif OSF defines each version of a product is a product then all we need to do is to add a vesion column17:53
catherineDbut they define a product is a product that have many versions17:53
andrey-mpI agree that in this case it's simplier to be as OSF17:53
catherineDit is more complicated but using 2 table it works for a 1 to 1 or 1 to n relationship ...17:55
catherineDthe reason I what to have a unique constrain on  (product_id, version) is to prevent some one to create same versions for a product17:57
andrey-mpcatherineD: I told you many about second normal form. it is not complicated. it is about how to architect DB model.17:57
andrey-mpabout product-version constraint. I think that it's not good to use 'user input string' as part of key. because user can input one term with many ways.17:58
catherineD2NF for in the version table?17:58
catherineDif user put one term in many ways then it is user issue in my mind ... and that would reflect may versions17:59
andrey-mpfor product table and version table17:59
catherineDhow do you do that for version table?18:00
andrey-mpso in case when user can input one term in many ways then this constraint doesn't work. this is not good - 'it works sometimes'18:01
catherineDif user input18:01
andrey-mplet's stop talking about tables ) let's alternative section will be empty. I agree that two tables is better now.18:01
catherineDandrey-mp: I think it is a good idea to put what you indicate in the alterantive section .. to document that we have think about this18:02
catherineDwe actually do a complete analysis of all the options18:03
andrey-mpok, I am not sure that I understood your last question18:03
catherineDso now we agree that we will use the 2 table model ... I want to discuss the contraint18:04
catherineDin the version table18:04
andrey-mpok18:04
catherineDlet me give an example18:04
catherineDhere is the situation I would like to avoid18:04
catherineDI would indicate when I am done typing the scenario18:05
catherineDproduct_id, name, version18:05
catherineD11111, MOS, 6,118:05
catherineD11111, MOS, 7.018:06
catherineD11111, MOS, 6.118:06
catherineDthe above is the entries in the version table 1111 is the FK of a product18:07
catherineDsorry let me do this again18:07
catherineDversion_id, product_id,name, version_name18:08
catherineD1001,11111,MOS,6.118:08
catherineD1002,11111,MOS,7.018:08
catherineD1003, 11111, MOS, 6.118:08
catherineDso version_id (1001, 1002, 1003) will be used to refer to a product of a particular version ...18:09
catherineDto refer to MOS version 6.1 in this case do we use 1001 or 1003?18:10
catherineDso we need to contraint (product_id, version name) to be unque18:10
catherineDdone :-)18:10
andrey-mpwhat if version item 1003 will have version name 'v6.1'18:10
andrey-mpwhat item will be used for reffering?18:11
catherineDif V6.1  then the user will have to decide whether he should use 1001 or 1003 for his product18:11
andrey-mpsame situation in your example )18:12
catherineDno18:12
catherineDin my exaplem if the user search for version 6.1 .... it will return 2 item18:12
catherineDin the case where user put v6.118:12
catherineDwhen he search 6.1 or v6.1 it will always return 1 item18:13
catherineDit is up to the user to search the right key18:13
catherineDRefStack has no idea whether 6.1 and v6.1 means the same or different thing18:14
andrey-mpsame thing with similar items - user should decide what he needs18:14
andrey-mphe have to remove one item18:15
catherineDbut we can help to prevent one of the case18:15
catherineDif we have the constraint the first case with bot 6.1 will never exist18:15
catherineDI agree that we can not prevent the second case18:16
andrey-mpand moreover - we don't have such constraint for products18:16
catherineDwhich should be contraint in the product?18:16
andrey-mpwe we want to help - we can do it at business logic layer18:16
andrey-mpconstraint that product_name + vendor_id is an unique18:17
catherineDvendor_id does not exist in the product table18:18
catherineDin the version table18:18
catherineDversion_id is always unique18:18
catherineDbut  product_id+version_name is not necessary if we do not put a contraint in18:19
andrey-mpsorry i don't catch this18:19
catherineDthe important info for each row in the version table is version_id, version_name, product_id (FK)18:21
catherineDversion_id is always unique ... since it is primary key18:21
catherineDbut version_id unique does not mane that the comination of version_name, product_id are unique18:22
andrey-mpyes18:22
catherineDbut if we contraint version_name. product_id to be unique ..18:23
catherineDthe each version_id can only refer to one product with one unique name18:23
andrey-mpso another similar situiation - product table, fields: organization_id, name.  organization_id + name does not have a unique constraint18:24
catherineDandrey-mp: good catch18:25
catherineDwithout that constraint that means that one organization may have more than one products with the same name18:26
catherineDsomething we should improve in the product table ..18:26
andrey-mpthis additional constraint is an attempt to think for user18:26
catherineDto strengthen the model and help user in a systematic way18:27
catherineDof course it can be done at business or db layer ...18:27
catherineDI think we should log a bug for the contraint of org to product name18:28
catherineDandrey-mp: really good catch18:28
andrey-mpI still think that it is a bad idea )18:29
catherineDI am not insist on that ... it is one of the thing that is nice to have18:30
catherineDbut it would help the confusion down the road18:30
catherineDwhatever we do ... I want to make sure that we will meet both OSF and other user's scenario (EC2)18:31
catherineDor at least not breaking other users' scenario18:31
catherineDandrey-mp: I know it is Friday evening ... I really appreciate your time for this discussion18:32
andrey-mpno problem )18:32
catherineD9:00 pm your time?18:32
andrey-mp9:3018:33
catherineDis it  5 days work schedule just like us SAT and SUN off?18:34
andrey-mpyeah18:34
andrey-mpsimilar to all other (but Israel)18:34
catherineDsome companies here have alternate 5 days 4 days work week18:37
catherineDsome companies in Asia with 5.5 days week18:37
catherineDI should let you go ... again thanks so much for your time!!!18:38
andrey-mpok, bye )18:38
catherineDbye Have a nice weekend!18:39
*** andrey-mp has quit IRC19:49
-openstackstatus- NOTICE: The Gerrit service on review.openstack.org is restarting for a scheduled upgrade, but should return to service momentarily: http://lists.openstack.org/pipermail/openstack-dev/2016-August/101394.html20:51
-openstackstatus- NOTICE: The Mediawiki service at wiki.openstack.org will be offline from 21:00 UTC until approximately 23:00 UTC for a planned upgrade http://lists.openstack.org/pipermail/openstack-dev/2016-August/101395.html21:00
*** ChanServ changes topic to "The Mediawiki service at wiki.openstack.org will be offline from 21:00 UTC until approximately 23:00 UTC for a planned upgrade http://lists.openstack.org/pipermail/openstack-dev/2016-August/101395.html"21:00
*** hockeynut has joined #refstack21:11
*** edmondsw has quit IRC21:22
*** designbybeck_ has quit IRC21:42
*** markvoelker has quit IRC22:53
-openstackstatus- NOTICE: ok https://wiki.openstack.org/ is now running Mediawiki 1.27.0; please let us know in #openstack-infra if anything seems wrong23:02
*** ChanServ changes topic to "ok https://wiki.openstack.org/ is now running Mediawiki 1.27.0; please let us know in #openstack-infra if anything seems wrong"23:02
-openstackstatus- NOTICE: https://wiki.openstack.org/ is now running Mediawiki 1.27.0; please let us know in #openstack-infra if anything seems wrong23:08
*** ChanServ changes topic to "#refstack now we're on storyboard: https://storyboard.openstack.org/#!/project/700"23:08
*** hockeynut has quit IRC23:35
*** markvoelker has joined #refstack23:54
*** markvoelker has quit IRC23:59

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