[JBoss JIRA] Created: (JGRP-1352) STATE: queue requests during state transfer
by Bela Ban (JIRA)
STATE: queue requests during state transfer
-------------------------------------------
Key: JGRP-1352
URL: https://issues.jboss.org/browse/JGRP-1352
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.1
STATE should queue requests to be delivered to the application while a state transfer is in progress.
Draft design:
- On STATE-REQ:
- If busy --> add request to queue, return
- Else --> processRequest
- Close MessageQueue and deliver all messages in it to the application
- Kick off a STABLE round, wait until it completes
- If MessageQueue is not empty --> processRequests()
- processRequest():
- Close BARRIER, suspend STABLE
- Get digest
- Open MessageQueue: all new messages will be queued now, rather than delivered to the application
- (Only MSG, not VIEW !)
- Open BARRIER (leave STABLE suspended !)
- Transfer state to state requester
- Resume STABLE
Advantages:
- The state provider is not blocked, e.g. to handle JOIN requests
- Only the state *requester* is blocked, this is OK though
- Between the state requests, the state provider gets a little breathing room to process
queued-up messages, and to purge messages (through stability)
Misc:
- Should the MessageQueue use the disk to handle large message sets ?
- If modifications are idempotent, we *don't* need to queue messages (make this configurable !)
(for example Infinispan ?)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 8 months
[JBoss JIRA] Created: (JGRP-1354) Compress views
by Bela Ban (JIRA)
Compress views
--------------
Key: JGRP-1354
URL: https://issues.jboss.org/browse/JGRP-1354
Project: JGroups
Issue Type: Enhancement
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.1
In clusters with many members, a View can be large. See if we can compress views. Possible strategies:
- Canonicalization of addresses (replace UUIDs with shorts) see different JIRA)
- Compress digests (see different JIRA)
- Keep a list of ViewIds and Views and only send the ViewIds (not for JoinRsp !)
- Create a DiffView: send the previous ViewId V1, the new ViewId V2, and the diff between V1 and V2, for example
- V34=V33 + N1 + N2
- V34=V33 - N30 - N13 + N3 (2 nodes left, 1 node joined)
- The receiver can then construct a full view from V34, V33 and the diffs
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 8 months
[JBoss JIRA] (JGRP-1436) GMS: separate view bundling timeouts for JOIN, LEAVE, MERGE
by Bela Ban (JIRA)
Bela Ban created JGRP-1436:
------------------------------
Summary: GMS: separate view bundling timeouts for JOIN, LEAVE, MERGE
Key: JGRP-1436
URL: https://issues.jboss.org/browse/JGRP-1436
Project: JGroups
Issue Type: Feature Request
Reporter: Bela Ban
Assignee: Bela Ban
Priority: Minor
Fix For: 3.2
View bundling in GMS bundles events based on (1) whether they can be processed together and (2) whether a view bundling timeout is defined. The latter timeout is for all events, perhaps we want to define separate timeouts, e.g. the timeout for JOINs is 3000, but for LEAVE it is 500. This means that when we get multiple JOIN events, we'll wait up to 5 seconds and then process them together. When we get multiple LEAVE requests, we only wait for half a second before processing them. This causes LEAVEs to be processed almost immediately, whereas JOINs are bundled.
Also revisit the code which determines which events can be processed together. Perhaps MERGE events can be bundled, too ?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 8 months
[JBoss JIRA] (JGRP-1391) Compress MergeViews
by Bela Ban (Created) (JIRA)
Compress MergeViews
-------------------
Key: JGRP-1391
URL: https://issues.jboss.org/browse/JGRP-1391
Project: JGroups
Issue Type: Enhancement
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.1
The 'subgroups' field of MergeView is a list of Views, referring to the subclusters that formed the new view.
Each View in that list contains (1) the creator of the view, (2) an ID and (3) a list of member addresses. Both (1) and (3) are present in the new MergeView, so, to save memory and message sizes, 'subgroups' could be compressed: (1) and (3) could be indices into View's 'members' field.
Example: if we have MergeView A|22={A,B,C,D,E,X,Y,Z}, subgroups=A|21={A,B,C}, D|19={D,E}, X|20={X,Y,Z},
then 'subgroups' can be compressed as follows:
subgroups=0|21={0,1,2}, 3|19={3,4}, 5|20={5,6,7}
This is possible because the indices never change, as the contents of Views and MergeViews are static, e.g. we can never add or remove a member: to do this, a new View/MergeView would be created.
Substituting addresses with indices (shorts, possibly using variable-bit encoding) reduces the memory footprint of a view, and the size of a serialized view on the wire.
Getting the subgroups field, e.g. using method getSubgroups() would synthesize the List<View> just-in-time.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 8 months
[JBoss JIRA] (AS7-4094) Add "connector" => "ajp": Scheme may not be null
by Michal Babacek (JIRA)
Michal Babacek created AS7-4094:
-----------------------------------
Summary: Add "connector" => "ajp": Scheme may not be null
Key: AS7-4094
URL: https://issues.jboss.org/browse/AS7-4094
Project: Application Server 7
Issue Type: Bug
Affects Versions: 7.1.1.Final
Reporter: Michal Babacek
Assignee: Paul Ferraro
I have tried to use mod_cluster with ajp on AS7 current master *89daec9* with [this configuration|http://pastebin.com/p9r3FzeV] (default with jvmRoute and mod_cluster setup added + changed port numbers, nothing else).
The result of my endeavour was this unfortunate error on startup:
{noformat}
03:56:31,995 INFO [org.jboss.modules] JBoss Modules version 1.1.1.GA
03:56:32,190 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA 03:56:32,247 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final-SNAPSHOT "Thunder" starting
03:56:33,431 ERROR [org.jboss.as.controller.management-operation] Operation ("add") failed - address: ([ ("subsystem" => "web"), ("connector" => "ajp") ]) - failure description: "JBAS014746: scheme may not be null"
2012/03/08 03:57:31:378 EST [DEBUG][Thread-17] HOST perf09.mw.lab.eng.bos.redhat.com:rootProcess:sf - JBossStartup, server started!
{noformat}
Any ideas?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 8 months
[JBoss JIRA] Created: (AS7-944) EJB lifecycle interceptors that are not included in the deployment are not applied
by Marius Bogoevici (JIRA)
EJB lifecycle interceptors that are not included in the deployment are not applied
----------------------------------------------------------------------------------
Key: AS7-944
URL: https://issues.jboss.org/browse/AS7-944
Project: Application Server 7
Issue Type: Bug
Components: EJB
Affects Versions: 7.0.0.Beta3
Reporter: Marius Bogoevici
Suppose that we have a class
{code}
@Startup @Singleton @Interceptors(A.class, B.class)
public class MyEJB {
}
{code}
Where A.class is included with the deployment and B.class is included in a module that is visible to the deployment.
B will be identified correctly as an interceptor for MyEJB, but LifecycleAnnotationParsingProcessor will not process it (as it apparently handles only components found within the deployment). Therefore, B will be ignored when creating the interceptor set for MyEJB, since ComponentInstallProcessor will treat it as a class that has no lifecycle methods.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
13 years, 8 months