[ 
https://issues.apache.org/jira/browse/BROOKLYN-171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14738837#comment-14738837
 ] 

ASF GitHub Bot commented on BROOKLYN-171:
-----------------------------------------

GitHub user nakomis opened a pull request:

    https://github.com/apache/incubator-brooklyn/pull/888

    Changes propagator getDestinationSensor to lookup on sensor name, rather 
than sensor equality

    This resolves #BROOKLYN-171


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nakomis/incubator-brooklyn 
fix/propagator-sensor-lookup

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-brooklyn/pull/888.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #888
    
----
commit 105979d64b7b7eda9dd24e635e10b613cf2d9bd6
Author: Martin Harris <git...@nakomis.com>
Date:   2015-09-10T14:33:32Z

    Changes propagator getDestinationSensor to lookup on sensor name, rather 
than sensor equality

----


> Mapping propagated sensor causes excessive CPU load
> ---------------------------------------------------
>
>                 Key: BROOKLYN-171
>                 URL: https://issues.apache.org/jira/browse/BROOKLYN-171
>             Project: Brooklyn
>          Issue Type: Bug
>            Reporter: Martin Harris
>
> Mapping a propagated sensor using a second propagator will cause excessive 
> CPU load, and the sensor will fail to propagate. This can be demonstrated 
> using the following YAML:
> {noformat}
> location: localhost
> services:
> - type: org.apache.brooklyn.entity.stock.BasicApplication
>   brooklyn.children:
>   - type: org.apache.brooklyn.entity.software.base.EmptySoftwareProcess
>     id: childid
>   brooklyn.enrichers:
>   - type: org.apache.brooklyn.enricher.stock.Propagator
>     brooklyn.config:
>       producer: $brooklyn:component("child", "childid")
>       propagating:
>       - $brooklyn:sensor("host.name")
>   - type: org.apache.brooklyn.enricher.stock.Propagator
>     brooklyn.config:
>       sensorMapping:
>         $brooklyn:sensor("host.name"): $brooklyn:sensor("host")
> {noformat}
> Running this YAML will cause CPU load on my machine to run to around 600% 
> CPU, and cause the Brooklyn console to become unresponsive. The specs of my 
> machine are as follows:
>   Model Name: MacBook Pro
>   Model Identifier:   MacBookPro11,3
>   Processor Name:     Intel Core i7
>   Processor Speed:    2.8 GHz
>   Number of Processors:       1
>   Total Number of Cores:      4
>   L2 Cache (per Core):        256 KB
>   L3 Cache:   6 MB
>   Memory:     16 GB
> *Context (aka 'Why would you ever want to do this??')*:
> The Redis cluster propagates the hostname of the master RedisStore up to the 
> cluster level [1]. We then added (in the YAML) a propagator with 
> `sensorMapping` to map the sensor `host.name` to `host` in order for it to be 
> consumed by a third party application (CloudFoundry via the 
> Brooklyn-Service-Broker[2])
> In this scenario (i.e. Redis, deploying to AWS from a rBrooklyn server), the 
> server web interface becomes completely unresponsive until the Brooklyn 
> process is terminated and restarted
> [1]: 
> https://github.com/apache/incubator-brooklyn/blob/6f15e8a6d61c2e648547cf7faba03fbc06716421/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisClusterImpl.java#L73-L76
> [2]: https://github.com/cloudfoundry-incubator/brooklyn-service-broker



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to