Dynamic and intelligent re-balancing of coherence partitions

Can Coherence dynamically route more requests intelligently to better performing nodes on the same cluster? i.e. can it rebalance its partitions dynamically such that there are either more partitions or more frequently accessed partitions made to reside on the more powerful nodes of the cluster.
Edited by: 962776 on Oct 3, 2012 10:03 AM

962776 wrote:
Can Coherence dynamically route more requests intelligently to better performing nodes on the same cluster? i.e. can it rebalance its partitions dynamically such that there are either more partitions or more frequently accessed partitions made to reside on the more powerful nodes of the cluster.Hi,
this is kind of a loaded question, which is not as simple as it seems so let me step back a bit and put it into context.
Coherence maintains one copy of each partition which serves read and write behaviour.
It does not maintain multiple copies of the same partition even for read purposes (the redundant copies (backups) are just for high availability). This means that there is a single node which the client needs to communicate with, and does not need to maintain load information upon which it would need to decide where to route the request. You could possibly implement lagging-read behaviour to be serviced by the backup nodes yourself on top of Coherence, but it does not come out of the box, and you would need to transmit the load information to each other node which comes with an overhead. Lagging-read here meaning that you may read a not-up-to-date copy from backup nodes.
As for write operations, Coherence depends on there being only at most one active copy for write purposes, therefore you should not expect this to change anytime soon or not so soon...
As for your original question: can ownership be rebalanced based on the load?
It is not possible to do it out-of-the-box. Also, the functionality would come with its own gotchas:
- load information needs to be transmitted to the senior node (this may already be done behind the scenes)
- it may not be so simple to reconcile decisions based on load information with decisions based on balancing and dispersing partitions so that you get to a balanced and safe distribution while also optimizing the load
- Would you want to move partitions just based on the load, not only for availability/safety reasons? The current behaviour theoretically does something similar, if you consider the load cost being a constant one per partition. The operative word is constant.
Once a balanced and safe distribution is reached, Coherence does not want to move partitions around.
Why is this important? Because you cannot process operations while a partition is on the move.
If you wanted the load to be actually variable instead of constant 1, then it would possibly lead to much more frequent partition movements which would add additional load to the network and increase message latencies in general and in particular hinder responsiveness of the partitions on the move, which according to your request would likely be those which are already the most heavily loaded. That would possibly be counterproductive.
So yes, theoretically it is possible, you could implement it with 3.7.1+ by writing your own implementation of PartitionAssignmentStrategy. But is it practical? It really depends on your exact system.
An alternative approach which could tackle the problem may be changing your key partitioning algorithm so that it balances data in the partitions more evenly, maybe that will also translate to a more even distribution of the load. You would have to try and measure it. Also, you may want to look at BroadKeyPartitioningStrategy. Of course if you have a few very hot associated keys, that would make any single partition hot and that cannot really be helped.
Best regards,
Robert

Similar Messages

  • Load-Balancing with Coherence BackingMapListener, CacheStore etc?

    Hi -
    I am looking for advice on load-balancing across a cluster.
    Currently we insert objects into a Coherence cluster. Each storage node also runs a CEP instance. BackingMapListeners detect Coherence insert events, and inject the rows into the local CEP instance. The first channel in the CEP has a large buffer to allow the BML to return quickly without blocking.
    The CEP makes decisions about the events and emits these decisions as further events, which are merged back into the original data rows in Coherence (i.e. the primary data is updated with enrichments).
    This works fine until I saturate the CEP with a very high message rate, faster than the CEP and downstream components can keep up with. At this point the buffer between the BackingMapListener and the CEP starts to fill up. Once it is full, the BackingMapListener blocks, waiting for the CEP to take an event from the front of the queue before it can insert the latest event to the back of the queue.
    Once the BackingMapListener blocks, other updates to the cache are blocked - which means the downstream end of the CEP is deadlocked by the upstream end, which is waiting for the downstream end... Events move through at exactly one per minute, due to a timeout in the Coherence cache update.
    I recognise that I could (and probably should) copy the primary data into a separate cache as I merge the updates into it, to break this deadlock. But I wondered if anyone has used other mechanisms for load-balancing using Coherence partitioning, apart from the BackingMapListener.
    I looked at CacheStore, which seems tailor-made for this as it includes queuing and doesn't block other cache actions (although if it blocks for too long the guardian will kill it). The problem I have with CacheStore is that I can't distinguish between inserts (CEP event injection required) and updates (no CEP event required).
    I tried using BinaryEntryStore, where I can test BinaryEntry.getOriginalBinaryValue() for nulll to distinguish between inserts and updates, but I can't wire this into the cache using the Spring XML schema.
    Are there any other established patterns for this apart from breaking up the inserts and updates into separate caches?
    -thanks, Barney

    The Cisco 526 Wireless Express Mobility Controller can be used with up to six access points per controller. So 5 -6 access point would be a better option . Refer URL
    http://www.cisco.com/en/US/products/ps7320/products_data_sheet0900aecd8060c22b.html

  • Opening and closing stock balances

    Hi
    What report can i use to show the opening and closing stock balances of materials for the last 12 months.
    Thanks
    Vinesh

    You can view the report in MMBE.
    other than this you can try
    MBEWH and MARDH
    Also follow the link:
    Re: op.& closing stock detail in MM
    Thanks
    Nisha

  • Table for Customer and vendor open balance on a key date

    Dear All,
    Can anyone please let me know Table for Customer and vendor open balance on a key date. We are developing one customized report.
    I have checked with the below table :
    Customer-KNC1, KNC3,BSID, BSAD
    Vendor-LFC1, LFC3, BSIK, BSAK.
    But these are not working properly for all customers and vedors. Also, in open items, there are items with clearing documents.
    Plesae let me know, how to go for it.
    Please suggest.

    Hi
    Use BSID and BSIK for open items
    And pass company code, year and from date and to date range in Posting date selection option
    Reg
    Vishnu

  • The difference between "ipsec-isakmp dynamic" and "ipsec-isakmp profile" cyrpto map configs

    The IOS documentation for the crypto map command gives the syntax as
    crypto map [ipv6] map-name seq-num [ ipsec-isakmp [ dynamic dynamic-map-name | discover | profile profile-name ] ]
    I have a 881w ISR. In what different situations do we use the ipsec-isakmp dynamic form as opposed to the ipsec-isakmp profile form?
    I understand that ipsec-isakmp profile is applied directly to the vpdn-group. Does this substitute for applying the crypto map directing to the WAN interface? Why would I want to do that?

    Hello, thomasmcleod.
    The main difference between dynamic and profile in conditions to establish VPN connection. You can look at the difference if you compare EzVPN (dynamic profiles) technology with Lan-2-Lan (manual profile) technology.
    And why you should put crypto map to the interface. After puting this command to interface Cisco is starting to check traffic for encryption rules. In fact it can be any interface (not only WAN) when you want use encrypted VPN channel.
    Best Regards.

  • Opening balance and closing stock balance

    Hi,
    What is the way to calculate opening balance and closing stock balance.
    Thanks
    krishna

    have a look Calculate Opening and Closing Stock
    Opening and closing balance
    Opening Stock and Closing Stock fields and Calculation

  • How to get Open Balance for the year and Total Ending Balance?

    For a given account, how to get Open Balance for the year (Cumulative Ending Balance) and Total Ending Balance (Cumulative Ending Balance)?
    Is there any function module available? or should I read from some tables? Please advice.

    Hello Paul,
    You could try calling one of the following BAPIs - see which one meets your requirement. They are documented well so shouldn't be a problem finding out the correct one for your requirements.
    BAPI_GL_GETGLACCBALANCE      
    BAPI_GL_GETGLACCCURRENTBALANCE
    BAPI_GL_ACC_GETBALANCE      
    BAPI_GL_ACC_GETCURRENTBALANCE
    BAPI_GL_ACC_GETPERIODBALANCES
    BAPI_COND_VAL_DECRE_BALANCES
    You might have to put in some of your own logic after the BAPI call to get what you want.
    Hope this helps,
    Cheers,
    Sougata.
    p.s. Also look at FM FAGL_GET_ACCOUNT_BALANCE
    Edited by: Sougata Chatterjee on May 7, 2008 11:47 AM

  • Arch and Win7 cannot open an NTFS partition created by the other

    This is almost certainly related to another post where I was struggling to create logical partitions from Windows. Basically, Linux and Minitool Partition Wizard agreed that there were no logical partitions, but the built-in Windows disk utility said there was. I ended up using fdisk from Arch install media, and Minitool and Arch now both saw the logical partitions (Windows shows a big extended partition of free space). I installed Arch just fine, can boot to it and win7... life is good.
    Not so much. A key to my setup is having an encrypted partition to share data between OS's. I used TrueCrypt with great success on my former laptop and am now having great difficulty!
    Some preliminary information:
    # fdisk -l /dev/sda
    Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x1e6513b3
    Device Boot Start End Sectors Size Id Type
    /dev/sda1 * 2048 2101247 2099200 1G 7 HPFS/NTFS/exFAT
    /dev/sda2 2101248 172433407 170332160 81.2G 7 HPFS/NTFS/exFAT
    /dev/sda3 172433408 390537215 218103808 104G 7 HPFS/NTFS/exFAT
    /dev/sda4 390537216 500118191 109580976 52.3G 5 Extended
    /dev/sda5 390539264 391587839 1048576 512M 83 Linux
    /dev/sda6 391589888 500118191 108528304 51.8G 83 Linux
    I also went partition by partition to check Minitool's agreement on sectors (they match perfectly with the exception that it doesn't show the extended /dev/sda4 container). I triple checked the Minitool partition info properties as you can't copy and paste from it's window, and pasted the fdisk output to minimize errors. I'm showing a column for mini/Arch for both start/stop sectors, and just subtracted them to make sure I got 0. Appears to be perfect alignment:
    | part | start (mini) | start (arch) | diff | | end (mini) | end (arch) | diff |
    |------+--------------+--------------+------+---+------------+------------+------|
    | sda1 | 2048 | 2048 | 0 | | 2101247 | 2101247 | 0 |
    | sda2 | 2101248 | 2101248 | 0 | | 172433407 | 172433407 | 0 |
    | sda3 | 172433408 | 172433408 | 0 | | 390537215 | 390537215 | 0 |
    | sda4 | 390539264 | 390539264 | 0 | | 391587839 | 391587839 | 0 |
    | sda5 | 391589888 | 391589888 | 0 | | 500118191 | 500118191 | 0 |
    - Screenshot of how Minitool sees my disk
    - Screenshot of how Windows disk utility sees my disk
    I used TrueCrypt 7.1a on both OS's. I created a non-system encrypted partition using the GUI on Arch with the AES cipher/sha-512 hash, with filesystem as "none." Once created I did:
    $ sudo cryptesetup --type tcrypt open /dev/sda3 vault
    That worked fine, which I followed with:
    $ sudo mkfs.ntfs /dev/mapper/vault
    It initialized the device with zero's and then gave me the success/have a nice day message. Closed the volume and rebooted. When I tried to open the device from win7, I got "Incorrect password or not a TrueCrypt volume." Hmmm. I guess I'll try in reverse. I duplicated the procedure exactly as above from win7, this time having TrueCrypt automatically format with NTFS. All succeeds and I can open the device. Reboot into Arch and I get the same message from TrueCrypt! If I try with cryptsetup, it's "No device header detected with this passphrase."
    Next, I tried just doing NTFS with no encryption. From Arch:
    $ sudo mkfs.ntfs /dev/sda3
    All goes well and I can mount it. I boot into Windows and it's not even listed! I used Minitool to issue it a drive letter, at which point clicking that pops up a windows dialog box asking me if I want to format the disk. Format the partition with NTFS in Windows, reboot into Arch and I get:
    [jwhendy@arch_zbook ~]$ sudo mount /dev/sda3 /mnt/scratch/
    NTFS signature is missing.
    Failed to mount '/dev/sda3': Invalid argument
    The device '/dev/sda3' doesn't seem to have a valid NTFS.
    Maybe the wrong device is used? Or the whole disk instead of a
    partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
    Doesn't matter if I add "-t ntfs" or "-t ntfs-3g." I get the same result.
    Just to add a couple more oddities... when I created the NTFS partition in Arch, I also created a file called vault.tc as a TrueCrypt file-based encrypted container. My thinking was that the issue was with TrueCrypt full-partitions and that I could get around it with a plain partition containing an encrypted file. Reboot into windows and the partition isn't shown (as stated above). From Minitool, if I right click the partition and choose "Explore," it lists the partition contents and there is my vault.tc file. Windows thinks it's unformatted!
    I noticed the option to backup/restore a TrueCrypt header, and gave a shot at backing up the working TrueCrypt setup on windows to a flash drive, booting to Arch, and then restoring the /dev/sda3 header from the flash drive file. Arch still couldn't open it.
    Lastly, I noticed when I go to select a device to encrypt in TrueCrypt, my logical partitions aren't showing up (just like Windows only sees the end of the disk as free space). I just can't help but think something is tweaked in the partition table... basically:
    - TrueCrypt sees what Windows sees
    - Arch sees what Minitool sees
    How could I go about diagnosing further or fixing the issue. This is driving me crazy!
    I'd hate to do this given that I already setup my wm, configs, packages, etc... but my last resort attempt would be to wipe my logical partitions and see if I can at least get the win7 disk utility, minitool, arch, and truecrypt to like each other with respect to /dev/sda1-3... and then try to re-add the logicals afterward and re-install arch? I honestly don't know why this would be any different, but was just a thought. The issues from the other post seem to arise with logical partitions not being recognized the same between win/linux.
    Or figure out how to just use primaries (like dedicated boot on a USB drive or something). Or fiddle with growing/shrinking windows to see if I can undo whatever is telling windows where/what things are? Really grasping at straws here.
    Last edited by jwhendy (2015-06-10 23:32:22)

    Hi Ramesh,
    Please install the hotfix package and test the issue again:
    http://support.microsoft.com/kb/2817576/en-us
    In addition, try uncheck the option “confirm open after download” per:
    http://jritmeijer.wordpress.com/2006/08/20/some-files-can-harm-your-computer-if-the-file-information-looks-suspicious-or-you-do-not-fully-trust-the-source-do-not-open-the-file/
    Regards,
    Rebecca Tu
    TechNet Community Support

  • Creating VO Dynamically and Copying Attributes

    Hi anyone,
    I've developed a SimpleSearch with LOVs that result in a multi-selection list.
    Once the rows are selected, I want to carry them over and display on the next page.
    I'm trying to keep it very simple, using OAFramework wizards an such but I'm struggling to get this accomplished, mostly due to lack of JAVA experience.
    I was trying to follow the advice from "How to show selected rows only in tablebean" but I don't know how to create a VO dynamically and am new to JAVA (which is why I tried to keep it simple).
    What I need help with desperately is:
    1) The correct syntax/code for creating a simple VO dynamically - examples in the OA Dev guide are hard to follow.
    2) Correct syntax/code for copying attributes using setAttribute().
    3) Does this new VO appear under the BC4J Components directory? If not, how do I attach it to the table's columns?
    4) Anything else I should include or watch out for?
    Thanks very much.

    Hi Ramkumar,
    I did create a VO declaratively before but am stuck on syntax again in the AMImpl.
    I'm getting the error: oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[10006 ].
    Could you look at my code and see what is missing?
    public void SelectItemInstance( )
    CustibSummaryVOImpl vo = getCustibSummaryVO1();
    CustibChangeVOImpl dvo = getCustibChangeVO1();
    Row[] sourceRows = vo.getFilteredRows("SelectFlag", "Y");
    // getFilteredRows returns a zero-length array if it finds no matches.
    if (sourceRows != null && sourceRows.length > 0)
    int numRows = sourceRows.length;
    for (int i = 0; i < numRows; i++)
    // For every row with a selected checkbox, we want call
    // the create( ) and insert()wrapper.
    Row newRow = dvo.createRow();
    newRow.setAttribute("ItemInstance", sourceRows.getAttribute("ItemInstance"));
    newRow.setAttribute("Item",sourceRows[i].getAttribute("Item"));
    newRow.setAttribute("TagNumber",sourceRows[i].getAttribute("TagNumber"));
    newRow.setAttribute("Client",sourceRows[i].getAttribute("Client"));
    newRow.setAttribute("Resp",sourceRows[i].getAttribute("Resp"));
    newRow.setAttribute("Service",sourceRows[i].getAttribute("Service"));
    newRow.setAttribute("Project",sourceRows[i].getAttribute("Project"));
    newRow.setAttribute("TCAAccount",sourceRows[i].getAttribute("TCAAccount"));
    newRow.setAttribute("OrderId",sourceRows[i].getAttribute("OrderId"));
    newRow.setAttribute("PartyId",sourceRows[i].getAttribute("PartyId"));
    newRow.setAttribute("AccountId",sourceRows[i].getAttribute("AccountId"));
    dvo.insertRow(newRow);
    } // end selectItemInstance()
    Thanks ever so much.

  • How to create a webdynpro view dynamically and embed into view container?

    Hi all,
    Anyone knows how to create a view dynamically and embed the view into an existing view container?
    My layout looks like this:
    I have an existing view named main_view.
    Inside main_view, I create a view ui container named vcu_view.
    I embed the main_view into my window.
    I need the codes to create a view dynamically and embed the view into the view container. Anyone have any idea?
    Thanks in advance.
    Rgds,
    Siong Chao

    hi Siong Chao   ,,
    empty view insence ..( create a view without any UI element in it  ) in design time ..
    >
    Siong Chao wrote:
    > Hi Chinnaiya,
    >
    > How do you create an empty view dynamically then? Thanks in advance.
    i think we cannot create a new view dynamically because it is a webdynpro restriction ..
    NOTE: experts correct me if i am wrong in this answer
    Regards
    Chinnaiya P

  • How to create a variant dynamically and get it?

    hi friends,
    I have to create variant dynamically when the user execute a report.
    i.e After entering all the details in selection screen and click on execute button. I have to create a variant with user entered details.
    When user clicks on Refresh Button in output, then i have to get this variant which i created dynamically and i have to pass it to SUBMIT statement..
    This process and all in same program.
    With example code will be helpful.
    Any helps will be appreciate......
    Regards,
    Shankar.

    Hi,
    Try this......
    Step 1:  Go to transaction SE38 to specify the Program name and select u2018Variantu2019 radio button and u2018Displayu2019.
    Then it will lead you to next screen u2018ABAP:Variants u2013Initial Screenu2019  Specify the variant which needs to be created . 
    Step2: Specify all those values which are static on the selection screen in this step. Then click u2018Variant Attributesu2019 to define selection variable for u2018any field' on the selection screen.
    Step 3: In this step, provide suitable meaning for the variant. As we need to define selection variable for u2018fieldu2019 item on selection screen, check the box under column in the selection screen below:
    Step 4: In the previous step, select u2018Selection Variablesu2019 on the menu. It leads to the next screen  As we have decided to create selection variable for u2018fieldu2019 item only, in this screen you get to see the variable as u2018fieldu2019. Here you are provided with three options.
    Now click the black arrow and you will be prompted with search help of different formulas for the selection variable
    Step 5: Find the suitable formula as select it. This will lead you to the next screen to enter the values . Save the variant and this will conclude the creation of dynamic variant with the help of selection variable. This variant can also be used in the background jobs.

  • How do I remove Boot Camp and go back to a single partition?

    I originally used boot camp but recently installed Parallell. I didn't realize all my windows info was still in a separate drive. I am now just using Parallells but the boot camp is still out there. How can I remove those items and go back to the one partition
    Thanks

    Hi,
    if your specs are uptodate and you are using OSX 10.4 Tiger, use these instructions: http://support.apple.com/kb/HT1309?viewlocale=en_US
    For OSX 10.5 Leopard use these: http://docs.info.apple.com/article.html?path=Mac/10.5/en/15554.html
    Regards
    Stefan

  • Trail balance(FGI3) and G/L balance not tally (FBL3N)

    Hi Experts,
    I have a problem. My trail balance(FGI3) and G/L balance not tally (FBL3N). Please give me suggestion for checking this.
    Thanks & Regards,
    Hemant Maurya

    Hi,
    Now you are getting differences of balances for p/l accounts or balance sheet accounts.
    For P/L accounts at every year balance carryforward to Profit and loss account. But you check the balances through T.code FBL3N you will get cummumlative balance. So better check the balance with T.code FAGLB03.
    If the problem with balance sheet then just test carryforward balances to new fiscal year once again in test run so that you will come to know if there is any difference in value.
    Regards,
    Sankar

  • Difference in SC and FC cumulative balance

    Hi All,
    After running the conversion difference, there is still a difference between the SC and LC cumulative balance.
    For ex. LC = 0.33 and the SC = 0 .00 (cumulative balance) Is this correct? I can see a value of 0.05 in SC C/D but in cumulative
    balance its hows 0.
    Please let me know.
    Thanks,
    Joseph

    Issue resolved.

  • Profit Center Wise and Currency Wise balances in same report?

    Experts,
    Is there any report where we can see Profit Center and Currency Wise balances in the same report?
    How can we get such report?
    - Nilesh

    Hi
    Did you try FAGLL03?? I think that should suffice
    or try FGI3
    br, Ajay M

Maybe you are looking for

  • Mail crashes everytime I try to launch it

    I'm desperate here. I can't open Mail at all. I click it, the window opens, I can see the subjects and mailboxes, and BOOM, it crashes. Launching again, crash. I tried pretty much everything, then I restored the whole system from a 2 day old time mac

  • "Combine supported filed in Acrobat" doesn't work for Office docs

    Windows 7 x64, Acrobat 9 Pro, Office 2010. I used to be able to select the context menu action "Combine supported files in Acrobat..." on multiple Office files, and it worked fine. But I recently had this computer reimaged, and now what happens is th

  • Cannot use XML Forms Builder - HTTP response: 500 - Internal Server Error

    Hi, I am trying to use XML Forms Builder, have added the corresponding role to my profile and when I create a new application or do anything I get the following error popup: HTTP response: 500 - Internal Server Error. What should I do ?? Thank you fo

  • Workflow of SAP SD in the insurance sector

    *HIi, I have a very important question. i just want to know the workflow of SAP SD in the insurance sector, It will be of great help if any one can solve this query? Because i nevar worked for this sector & didnt get any articles also. Eagerly waitin

  • Not necessarily time machine issue but not sure where else?

    I have a silverlining/keeper back up onto a Lacie 250GB rugged drive then my old 10.5 laptop got nicked and now I have a new one 10.6.2 , can I restore/migrate from this old setup Tried Lacie but not much good to date. I have imported old iphoto libr