Git Product home page Git Product logo

hacep's Issues

Fire for the whole buffer or fire for each event

  • there is a single fire() when events are applied back from the buffer in the current code
  • doing a fire for each event could be time consuming (could be an option)
  • define what rules can and cannot do in HACEP so users can decide

Building with mvn clean install -P community is broken

some test are failing while building with the community profile.

[INFO] Reactor Summary:
[INFO] 
[INFO] HACEP Parent ....................................... SUCCESS [ 20.220 s]
[INFO] HACEP Commons Test ................................. FAILURE [01:22 min]
[INFO] HACEP Core Model ................................... SKIPPED
[INFO] HACEP Core ......................................... SKIPPED
[INFO] HACEP Core Camel ................................... SKIPPED
[INFO] HACEP Examples ..................................... SKIPPED
[INFO] HACEP Example Model ................................ SKIPPED
[INFO] HACEP Example Rules ................................ SKIPPED
[INFO] HACEP Performance Client ........................... SKIPPED
[INFO] HACEP Base Playground .............................. SKIPPED
[INFO] HACEP JVM Playground ............................... SKIPPED
[INFO] HACEP EAP Playground ............................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:16 min
[INFO] Finished at: 2017-03-06T17:58:02+00:00
[INFO] Final Memory: 43M/326M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project hacep-commons-test: Failed to clean project: Failed to delete /home/valdar/projects/hacep/hacep/hacep-commons-test/target/generated-sources/annotations -> [Help 1]```

Cannot create an HACEP Application

08:37:12,515 INFO [org.jboss.weld.deployer](MSC service thread 1-6) JBAS016005: Starting Services for CDI deployment: hacep-eap-playground-1.0-SNAPSHOT.war
08:37:12,519 INFO [org.jboss.weld.deployer](MSC service thread 1-8) JBAS016008: Starting weld service for deployment hacep-eap-playground-1.0-SNAPSHOT.war
08:37:12,779 INFO [org.drools.compiler.kie.builder.impl.ClasspathKieProject](MSC service thread 1-8) Found kmodule: vfs:/C:/development/jbdevstudio/runtimes/jboss-eap/bin/content/hacep-eap-playground-1.0-SNAPSHOT.war/WEB-INF/lib/hacep-rules-1.0-SNAPSHOT.jar/META-INF/kmodule.xml
08:37:12,782 INFO [org.drools.compiler.kie.builder.impl.ClasspathKieProject](MSC service thread 1-8) Virtual file physical path = C:\development\jbdevstudio\runtimes\jboss-eap\standalone\tmp\vfs\deployment\deploymentacd29d9b237a97d3\hacep-rules-1.0-SNAPSHOT.jar-15c380aad66e9340\hacep-rules-1.0-SNAPSHOT.jar
08:37:12,903 INFO [org.drools.compiler.kie.builder.impl.KieRepositoryImpl](MSC service thread 1-8) KieModule was added: ZipKieModule[releaseId=it.redhat.jdg.examples:hacep-rules:1.0-SNAPSHOT,file=C:\development\jbdevstudio\runtimes\jboss-eap\standalone\tmp\vfs\deployment\deploymentacd29d9b237a97d3\hacep-rules-1.0-SNAPSHOT.jar-15c380aad66e9340\hacep-rules-1.0-SNAPSHOT.jar]
08:37:12,981 ERROR [org.jboss.msc.service.fail](MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."hacep-eap-playground-1.0-SNAPSHOT.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."hacep-eap-playground-1.0-SNAPSHOT.war".WeldStartService: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1936) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_73]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_73]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_73]
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Cache<String, Object>] with qualifiers [@HACEPSessionCache] at injection point [[field] @Inject @HACEPSessionCache private it.redhat.hacep.cache.session.KieSessionSaver.sessionCache]
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:315)
at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:284)
at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:147)
at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:167)
at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:386)
at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:371)
at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:379)
at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:65)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
... 3 more

Get rid of grouping

Grouping is not really needed, a simple Key can be used, leveraging Consistent Hashing.

  • use the "grouping" string as a key for session
  • use the "grouping" string as a key for session and add a cacheUpdated listener for Events cache

Idempotent channels

Useful for rules which fire multi-actions on externals systems.

If a node crashes in the middle of a multi-action (let's say it executed only 2 out of 5 external non-idempotent REST calls, you need to replay the rule but execute just the last 3 actions)

Modify on event makes the replicated session disaligned

When an event, already inserted in the buffer of serialized session, is modified in the HAKieSession using modify construct in drools, this change is also reflected in the buffer. So, during the rebuild of the serialized session, the rules won't fire with the same behavior than the live session one, creating a different replicated session.

fireUntilHalt support

At the moment HACEP supports only fireAllRules() approach.

Support fireUntilHalt() is needs some refactoring and closing of #15

hacep performances decrease when size of drools sessions grows

When drools sessions are empty, hacep works fine with a predefined load (110 evts/sec) distributed on 800 fact key, consuming all facts in jms queue. After few million events, hacep seems to slow down its throughput (about half of initial throughput)and messages on queue begin to accumulate. Looking on hacep code, listener FactListenerPost is sync, so when it calls method saver.insert((Key) key, (Fact) value) , the thread which triggered the cache event may block until the listener callback completes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.