Search Results

Search found 18925 results on 757 pages for 'items state'.

Page 324/757 | < Previous Page | 320 321 322 323 324 325 326 327 328 329 330 331  | Next Page >

  • How to "cast" from generic List<> to ArrayList

    - by Michael Freidgeim
    We are writing new code using generic List<> , e.g. List<MyClass>.   However we have legacy functions, that are expect ArrayList as a parameter. It is a second time, when I and my colleague asked, how to "cast" generic List<MyClass> to ArrayList. The answer is simple- just use ArrayList constructor with ICollection parameter. Note that it is not real cast, it  copies  references to ArrayList. var list=new List<MyClass>(); //Fill list items ArrayList al=new ArrayList(list);//"cast"-

    Read the article

  • Making own clothes website [on hold]

    - by Manjushree
    I am BSc student in Mathematics but i would like to create own clothes website. Can anyone help me how can i design the clothes website. I never have any background knowledge about making the webpage online. The clothes website does not have to look professional but simple enough where i can put my clothes to show the items to people or customers. Once I created the clothes website then i can open the business account and starting selling the goods online with that account. Do i need to buy any domains to create the website? Please help me?

    Read the article

  • Is Haskell's type system an obstacle to understanding functional programming?

    - by Eric Wilson
    I'm studying Haskell for the purpose of understanding functional programming, with the expectation that I'll apply the insight that I gain in other languages (Groovy, Python, JavaScript mainly.) I choose Haskell because I had the impression that it is very purely functional, and wouldn't allow for any reliance on state. I did not choose to learn Haskell because I was interested in navigating an extremely rigid type system. My question is this: Is a strong type system a necessary by-product of an extremely pure functional language, or is this an unrelated design choice particular to Haskell? If it is the latter, I'm curious what would be the most purely functional language that is dynamically typed. I'm not particularly opposed to strong typing, it has its place, but I'm having a hard time seeing how it benefits me in this educational endeavor.

    Read the article

  • How to install packages which apt-get can't find?

    - by newcomer
    Hi, I need these packages to build Android source. But I am getting this error: $ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev [sudo] password for asdf: Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package libc6-dev-i386 E: Unable to locate package lib32ncurses5-dev E: Unable to locate package ia32-libs E: Unable to locate package lib32readline5-dev E: Unable to locate package lib32z-dev I tried to download & install say libc6-dev-i386 debian package form here. But when I double click on the .deb file Ubuntu Software Manager says wrong architecture 'amd64'. (My OS: Ubuntu 10.10 (updated), Processor: AMD phenom II.)

    Read the article

  • Top Questions and Answers for Pluging into Oracle Database as a Service

    - by David Swanger
    Yesterday we hosted a comprehensive online forum that shared a comprehensive path to help your organization design, deploy, and deliver a Database as a Service cloud. If you missed the online forum, you can watch it on demand by registering here. We received numerous questions.  Below are highlights of the most informative: DBaaS requires a lengthy and careful design efforts. What is the minimum requirements of setting up a scaled-down environment and test it out? You should have an OEM 12c environment for DBaaS administration and then a target database deployment platform that has the key characteristics of what your production environment will look like. This could be a single server or it could be a small pool of hosts if your production DBaaS will be larger and you want to test a more robust / real world configuration with Zones and Pools or DR capabilities for example. How does this benefit companies having their own data center? This allows companies to transform their internal IT to a service delivery model for the database. The benefits to the company are significant cost savings, improved business agility and reduced risk. The benefits to the consumers (internal) of services if much fast provisioning, and response to change in business requirements. From a deployment perspective, is DBaaS's job solely DBA's job? The best deployment model enables the DBA (or end-user) to control the entire process. All resources required to deploy the service are pre-provisioned, and there are no external dependencies (on network, storage, sysadmins teams). The service is created either via a self-service portal or by the DBA. The purpose of self service seems to be that the end user does not rely on the DBA. I just need to give him a template. He decides how much AMM he needs. Why shall I set it one by one. That doesn't seem to be the purpose of self service. Most customers we have worked with define a standardized service catalog, with a few (2 to 5) different classes of service. For each of these classes, there is a pre-defined deployment template, and the user has the ability to select from some pre-defined service sizes. The administrator only has to create this catalog once. Each user then simply selects from the options offered in the catalog.  Looking at DBaaS service definition, it seems to be no different from a service definition provided by a well defined DBA team. Why do you attribute it to DBaaS? There are a couple of perspectives. First, some organizations might already be operating with a high level of standardization and a higher level of maturity from an ITIL or Service Management perspective. Their journey to DBaaS could be shorter and their Service Definition will evolve less but they still might need to add capabilities such as Self Service and Metering/Chargeback. Other organizations are still operating in highly siloed environments with little automation and their formal Service Definition (if they have one) will be a lot less mature today. Therefore their future state DBaaS will look a lot different from their current state, as will their Service Definition. How database as a service impact or help with "Click to Compute" or deploying "Database in cloud infrastructure" DBaaS enables Click to Compute. Oracle DBaaS can be implemented using three architecture models: Oracle Multitenant 12c, native consolidation using Oracle Database and consolidation using virtualization in infrastructure cloud. As Deploy session showed, you get higher consolidating density and efficiency using Multitenant and higher isolation using infrastructure cloud. Depending upon your business needs, DBaaS can be implemented using any of these models. How exactly is the DBaaS different from the traditional db? Storage/OS/DB all together to 'transparently' provide service to applications? Will there be across-databases access by application/user. Some key differences are: 1) The services run on a shared platform. 2) The services can be rapidly provisioned (< 15 minutes). 3) The services are dynamic and can be relocated, grown, shrunk as needed to meet business needs without disruption and rapidly. 4) The user is able to provision the services directly from a standardized service catalog.. With 24x7x365 databases its difficult to find off peak hrs to do basic admin tasks such as gathering stats, running backups, batch jobs. How does pluggable database handle this and different needs/patching downtime of apps databases might be serving? You can gather stats in Oracle Multitenant the same way you had been in regular databases. Regarding patching/upgrading, Oracle Multitenant makes patch/upgrade very efficient in that you can pre-provision a new version/patched multitenant db in a different ORACLE_HOME and then unplug a PDB from its CDB and plug it into the newer/patched CDB in seconds.  Thanks for all the great questions!  If you'd like to learn more and missed the online forum, you can watch it on demand here.

    Read the article

  • Automatically zoom out the camera to show all players (XNA)

    - by user36159
    I am building a game in XNA that takes place in a rectangular arena. The game is multiplayer and each player may go where they like within the arena. The camera is a persepective camera that looks directly downwards. The camera should be automatically repositioned based on the game state. Currently, the xy position is a weighted sum of the xy positions of important entities. I would like the camera's z position to be calculated from the xy coordinates so that it zooms out to the point where all important entities are visible. My current approach is to: hw = the greatest x distance from the camera to an important entity hh = the greatest y distance from the camera to an important entity Calculate z = max(hw / tan(FoVx), hh / tan(FoVy)) My code seems to almost work as it should, but the resulting z values are always too low by a factor of about 4. Any ideas?

    Read the article

  • How can I install binutils from source?

    - by sven
    uname -a: Linux ubuntu 3.5.0-23-generic #35-Ubuntu SMP Thu Jan 24 13:05:29 UTC 2013 i686 i686 i686 GNU/Linux root@ubuntu:/home/ubuntu# apt-get source binutils Reading package lists... Done Building dependency tree Reading state information... Done E: Ignore unavailable target release 'stable' of package 'binutils' E: Unable to find a source package for I did apt-get update before typing the command. How can I get binutils? I am using Ubuntu 12.10. I am following the instruction on https://wiki.ubuntu.com/Toolchain/Crosscompilers/ARMEABIToolchain I am stuck at the first line. I did sudo add-apt-repository ppa:germia/archive3 previously, however I got some errors then, I did sudo add-apt-repository --remove ppa:germia/archive3 to undo the setting. I wonder if my problem is related wtih this PPA?

    Read the article

  • Catching multiple exceptions on the client is robust and easy

    - by Alexander Kuznetsov
    Maria Zakourdaev has just demonstrated that if our T-SQL throws multiple exceptions, ERROR_MESSAGE() in TRY..CATCH block will only expose one. When we handle errors in C#, we have a very easy access to all errors. The following procedure throws two exceptions: CREATE PROCEDURE dbo.ThrowsTwoExceptions AS BEGIN ; RAISERROR ( 'Error 1' , 16 , 1 ) ; RAISERROR ( 'Error 2' , 16 , 1 ) ; END ; GO EXEC dbo.ThrowsTwoExceptions ; Both exceptions are shown by SSMS: Msg 50000 , LEVEL 16 , State 1 , PROCEDURE...(read more)

    Read the article

  • What is the default permission for /var/www?

    - by itsols
    After upgrading to 12.04, I had to reinstall the LAMP stack. Then I brought all my www project folders from a pen drive to the /var/www folder (using sudo nautilus, and dragging the files in there). Now I cannot make any changes to the files/directories within /var/www. Perhaps this changed with the backup copies I dragged in there. I'd like to know what the default permissions for the /var/www folder are. I don't want to just change the permissions and make my system abnormal and working. Rather I'd like to get it to the correct state that is meant to work.

    Read the article

  • RadBook for Silverlight now supports virtualization

    I am proud to announce that RadBook, along with RadGridView, RadTreeView, RadTreeListView, RadChart and RadScheduler, now supports virtualization. With previous versions, it would take up to 16 seconds to load 1000 pages, where now it takes just 2 seconds to load a set of 10,000,000 (10 million) items.   The cause of the performance boost is the way RadBook handles the unnecessary(non-visible) elements. As you probably know, while turning a page, only four pages are visible at any given moment in time. Previous versions of RadBook would just collapse the unnecessary elements, which had a significant impact on the initial loading time. The new version of RadBook now takes advantage of the VirutalizingPanel and creates only as many elements as necessary for the book to render properly. Enjoy and if you have comments or questions on the topic, let us know.Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • Do programmers possess the means of production? [closed]

    - by Peter Turner
    I was reading (err listening) to The Servile State by Hilare Belloc this morning and pondering whether or not I possessed the means of production, as did the peasant of the middle ages; as did not his descendants after the oligarchs of England forced him into servility. The means of production was the arable land that the serf was seated on, which even though not legally his, was illegal to evict him from. So, as programmers, with the hither-to-unknown supply of free tools and resources, have we reclaimed as a class of workers, unlike any others, the means of production. Given the chance, a midrange PC and a stable internet connection, could we not each of us be wholly self sufficient and not just wage earners?

    Read the article

  • Why are the packages found with apt-get always horribly out of date?

    - by Andrew
    Whenever I use the package manager, it can only ever find really old versions of stuff. Example: sudo apt-get update sudo apt-get install postgresql The best it can do is version 8.4 (3 years out of date). Trying to get a later version, I get: $ sudo apt-get install postgresql-9.1 Reading package lists... Done Building dependency tree Reading state information... Done E: Couldn't find package postgresql-9.1 I experience the same issue whenever I use the package manager, so I usually just download and build things from source. How can I make it find up-to-date software?

    Read the article

  • Connecting People, Processes, and Content: An Online Event

    - by Brian Dirking
    This morning we announced a new online event, “Transform Your Business by Connecting People, Processes, and Content.” At this event you will learn how an integrated approach to business process management (BPM), portals, content management, and collaboration can help you make more accurate and timely decisions based on the collective knowledge across your organization. But more than that, this event will focus on how customers have been successful transforming to a social enterprise. We’ve blogged about a few of the in the past few weeks – Balfour Beatty, New Look, Texas A&M. This event will give you an opportunity to learn about other customers and their successes, as well as an opportunity to: Watch Oracle executives participate in a roundtable discussion on the state of the social enterprise Hear industry experts discuss best practices and case studies of leveraging BPM, portals, and content management to transform and improve business processes Engage the experts by having your questions answered in real time Register today and learn how Oracle Fusion Middleware provides the most complete, open, integrated, and best-of-breed solution in the industry for transforming your business.

    Read the article

  • Bug Tracking Etiquette - Necromancy or Duplicate?

    - by Shauna
    I came across a really old (2+ years) feature request issue in a bug tracker for an open source project that was marked as "resolved (won't fix)" due to the lack of tools required to make the requested enhancement. In the time elapsed since that determination was made, new tools have been developed that would allow it to be resolved, and I'd like to bring that to the attention of the community for that application. However, I'm not sure as to what the generally accepted etiquette is for bug tracking in cases like this. Obviously, if the system explicitly states to not duplicate and will actively mark new items as duplicates (much in the way the SE sites do), then the answer would be to follow what the system says. But what about when the system doesn't explicitly say that, or a new user can't easily find a place that says with the system's preference is? Is it generally considered better to err on the side of duplication or necromancy? Does this differ depending on whether it's a bug or a feature request?

    Read the article

  • Best way to address this Magento issue

    - by robgt
    I am in need of some advice/pointers on how best to attack a problem I am faced with in Magento 1.4.0.1. Here is the scenario: Consider a product catalog of multiple thousands of products in which there are many and various retail markup percentages. There is a need to sell some of those products to other retailers, and I need a way to easily categorise them into percentrage markup groups, so that the other traders can easily purchase items from us without needing to call and confirm pricing. All products prices are added to the magento database including VAT - so the actual retail value is the starting point. I think this needs to be done by adding an attribute on the products that determines the maximum discount level that can be applied to any given product. Obviously, this would entail a massive amount of work to update every product. Is there a way to achieve what we need that I don't yet know about (within Magento)? Can single attribute values be mass-populated somehow, without affecting other attributes such as name/description/etc?

    Read the article

  • What's the difference between stateful and stateless?

    - by Pankaj Upadhyay
    The books and documentation on the MVC just heap on using the Stateful and Stateless terms. To be honest, i am just unable to grab the idea of it, what the books are talking about. They don't give an example to understand any of the either state, rather than just telling that HTTP is stateless and with ASP.NET MVC microsoft is going along with it. Am I missing some fundamental knowledge, as i can't understand what is stateful and why is stateful and same goes for stateless. A simple and short example that talks about a control like button or textbox can be simplify the understanding i suppose.

    Read the article

  • Does using structure data semantic LocalBusiness schema markup work for local EMD URL's?

    - by ElHaix
    Based on what I have read about Google's recent Panda and Penguin updates, I'm getting the impression that using semantic markup may help improve SEO results. On a EMD (exact match domain) site, that may have been hit, we list location-based products. We are now going to be adding a itemtype="http://schema.org/Product" to each product, with relevant details. However, that product may be available in Los Angeles and also in appear in a Seattle results page. We could add a LocalBusiness item type on each geo page to define the geo location for that page. While the definition states: A particular physical business or branch of an organization. Examples of LocalBusiness include a restaurant, a particular branch of a restaurant chain, a branch of a bank, a medical practice, a club, a bowling alley, etc. We could add use the location property which would simply include the city/state details. I realize that this looks like it is meant for a physical location, however could this be done without seeming black-hat?

    Read the article

  • How can I install canon pixma ip100 driver for Ubuntu 12.04LTS 64bit?

    - by kina
    I tried installing the driver by typing the following commands in the terminal: sudo add-apt-repository ppa:michael-gruz/canon - the result was the following: You are about to add the following PPA to your system: More info: https://launchpad.net/~michael-gruz/+archive/canon Press [ENTER] to continue or ctrl-c to cancel adding it Then I typed: sudo apt-get update - the result was the following: Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.HDuHmOSJ0l --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://keyserver.ubuntu.com:80/ --recv 84E550CD36EC35430A66AC5A03396E1C3F7B4A1D gpg: requesting key 3F7B4A1D from hkp server keyserver.ubuntu.com gpg: key 3F7B4A1D: "Launchpad Misakovi" not changed gpg: Total number processed: 1 gpg: unchanged: 1 I typed the next command: sudo apt-get install cnijfilter-ip100series The return response was: Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package cnijfilter-ip100series Does anyone know the solution? Kina

    Read the article

  • Would google consider this a "link scheme"?

    - by Abe Miessler
    I work for a County Government. In an effort to improve our search engine rankings I was considering contacting some of the other Counties in my state and seeing if we could setup an arrangement where we link to them and they link to us. It seems like a reasonable thing to have a "Other Counties" page with various links on a County website, but it also seems like it's bordering on a link scheme according to Google. When I read Google's article about link schemes it seems like we hit some of the right reasons for having links on another County's site but also some of the wrong. Does anyone have any insight into whether this is a good or bad idea?

    Read the article

  • ubuntu 12.04 refuses to install with windows 7

    - by Amitabh Pandey
    I have a desktop computer with windows 7 installed on it . Recently I downloaded ubuntu 12.04 and burned the iso image on a new blank DVD . After successfully burning DVD , I booted from the DVD. Ubutu interface appeared asking me to either choose try ubuntu or install ubuntu . I chose to install ubuntu. Again on next screen I choose to install ubuntu inside windows 7. After pressing continue button the following message appeared : " checking battery state .............. ok checking for running unattended upgrades : acpid : exiting speech dispatcher disabled ; edit /etc/default/ speech -dispatcher Asking all remaining processes to terminate ............. ok Please remove installation media and close the tray (if any) then press enter : " Now the problem is that when I remove the installation media ( ie the DVD ) and press enter then instead of installing ubuntu the computer reboots into windows 7 !!! I am a newbie to ubuntu and therefore do not know much about it . What should I do?

    Read the article

  • Node Serialization in NetBeans Platform 7.0

    - by Geertjan
    Node serialization makes sense when you're not interested in the data (since that should be serialized to a database), but in the state of the application. For example, when the application restarts, you want the last selected node to automatically be selected again. That's not the kind of information you'll want to store in a database, hence node serialization is not about data serialization but about application state serialization. I've written about this topic in October 2008, here and here, but want to show how to do this again, using NetBeans Platform 7.0. Somewhere I remember reading that this can't be done anymore and that's typically the best motivation for me, i.e., to prove that it can be done after all. Anyway, in a standard POJO/Node/BeanTreeView scenario, do the following: Remove the "@ConvertAsProperties" annotation at the top of the class, which you'll find there if you used the Window Component wizard. We're not going to use property-file based serialization, but plain old java.io.Serializable  instead. In the TopComponent, assuming it is named "UserExplorerTopComponent", typically at the end of the file, add the following: @Override public Object writeReplace() { //We want to work with one selected item only //and thanks to BeanTreeView.setSelectionMode, //only one node can be selected anyway: Handle handle = NodeOp.toHandles(em.getSelectedNodes())[0]; return new ResolvableHelper(handle); } public final static class ResolvableHelper implements Serializable { private static final long serialVersionUID = 1L; public Handle selectedHandle; private ResolvableHelper(Handle selectedHandle) { this.selectedHandle = selectedHandle; } public Object readResolve() { WindowManager.getDefault().invokeWhenUIReady(new Runnable() { @Override public void run() { try { //Get the TopComponent: UserExplorerTopComponent tc = (UserExplorerTopComponent) WindowManager.getDefault().findTopComponent("UserExplorerTopComponent"); //Get the display text to search for: String selectedDisplayName = selectedHandle.getNode().getDisplayName(); //Get the root, which is the parent of the node we want: Node root = tc.getExplorerManager().getRootContext(); //Find the node, by passing in the root with the display text: Node selectedNode = NodeOp.findPath(root, new String[]{selectedDisplayName}); //Set the explorer manager's selected node: tc.getExplorerManager().setSelectedNodes(new Node[]{selectedNode}); } catch (PropertyVetoException ex) { Exceptions.printStackTrace(ex); } catch (IOException ex) { Exceptions.printStackTrace(ex); } } }); return null; } } Assuming you have a node named "UserNode" for a type named "User" containing a property named "type", add the bits in bold below to your "UserNode": public class UserNode extends AbstractNode implements Serializable { static final long serialVersionUID = 1L; public UserNode(User key) { super(Children.LEAF); setName(key.getType()); } @Override public Handle getHandle() { return new CustomHandle(this, getName()); } public class CustomHandle implements Node.Handle { static final long serialVersionUID = 1L; private AbstractNode node = null; private final String searchString; public CustomHandle(AbstractNode node, String searchString) { this.node = node; this.searchString = searchString; } @Override public Node getNode() { node.setName(searchString); return node; } } } Run the application and select one of the user nodes. Close the application. Start it up again. The user node is not automatically selected, in fact, the window does not open, and you will see this in the output: Caused: java.io.InvalidClassException: org.serialization.sample.UserNode; no valid constructor Read this article and then you'll understand the need for this class: public class BaseNode extends AbstractNode { public BaseNode() { super(Children.LEAF); } public BaseNode(Children kids) { super(kids); } public BaseNode(Children kids, Lookup lkp) { super(kids, lkp); } } Now, instead of extending AbstractNode in your UserNode, extend BaseNode. Then the first non-serializable superclass of the UserNode has an explicitly declared no-args constructor, Do the same as the above for each node in the hierarchy that needs to be serialized. If you have multiple nodes needing serialization, you can share the "CustomHandle" inner class above between all the other nodes, while all the other nodes will also need to extend BaseNode (or provide their own non-serializable super class that explicitly declares a no-args constructor). Now, when I run the application, I select a node, then I close the application, restart it, and the previously selected node is automatically selected when the application has restarted.

    Read the article

  • OSD desktop-clock that does not get in your way?

    - by YSN
    Hello, is there a clock application, that can be placed on your screen like a widget staying always on top but automatically fades away on mouseover enabling you to click through it on items below, (behaves pretty much like the Ubuntu notifications in that sense). I am aware, that there are screenlets and gdesklets widget apps, but those are buggy, look outdated, and do not comply with the criteria listed above. What I have in mind is a clock that is large, (digital), always visible (on top of all other windows), and does not disrupt your work (e.g. you can still click that scroll bar or button if it is just below the clock, since the clock fades away on hovering). A tool called "OSD-Lyrics" that show lyrics for songs and behaves exactly the way I described above. So it should be possible (and even easier) to do the same with a clock. Thanks in advance, YSN

    Read the article

  • Why am I getting messages from cloudfront in my error log?

    - by JK01
    I frequently have messages like this in my websites error log: "Script error.". URL: https://e3m4drct5m1ays.cloudfront.net/items/loaders /loader_21.js?pid=21&systemid=13504281c5a501837196c23300f84e66&aoi=1327214632& zoneid=16620&cid=HK&rid=Hong%20Kong%20(general)&ccid=Kowloon&dma=0. Line number: 0 Error name: Stack: Now I don't actually know what cloudfront is or what it does. And I do not refer to this script in my site. So why would I be getting js error logged as if it was a script being run on my own site? This is using elmah logging.

    Read the article

  • I see files in filezilla, but the internet denies their existance

    - by Zach L.
    I am doing some updates to a 10-year old site, and I am baffled. Everything worked great locally, so I uploaded a bunch of stuff to the server using filezilla. Within filezilla I can see all of the files, but for some reason I get a 404 when trying to view them. It seems as though (at least for the folder Im currently checking) this is happening for items which are "farther down the list" alphabetically. I tried to re-upload a file individually but it didn't change anything. Is this an indication that I hit some sort of limit with the hosting company? And if so why can I still view the files from filezilla? Please offer guidance. I am at a loss.

    Read the article

  • CPU Usage in Very Large Coherence Clusters

    - by jpurdy
    When sizing Coherence installations, one of the complicating factors is that these installations (by their very nature) tend to be application-specific, with some being large, memory-intensive caches, with others acting as I/O-intensive transaction-processing platforms, and still others performing CPU-intensive calculations across the data grid. Regardless of the primary resource requirements, Coherence sizing calculations are inherently empirical, in that there are so many permutations that a simple spreadsheet approach to sizing is rarely optimal (though it can provide a good starting estimate). So we typically recommend measuring actual resource usage (primarily CPU cycles, network bandwidth and memory) at a given load, and then extrapolating from those measurements. Of course there may be multiple types of load, and these may have varying degrees of correlation -- for example, an increased request rate may drive up the number of objects "pinned" in memory at any point, but the increase may be less than linear if those objects are naturally shared by concurrent requests. But for most reasonably-designed applications, a linear resource model will be reasonably accurate for most levels of scale. However, at extreme scale, sizing becomes a bit more complicated as certain cluster management operations -- while very infrequent -- become increasingly critical. This is because certain operations do not naturally tend to scale out. In a small cluster, sizing is primarily driven by the request rate, required cache size, or other application-driven metrics. In larger clusters (e.g. those with hundreds of cluster members), certain infrastructure tasks become intensive, in particular those related to members joining and leaving the cluster, such as introducing new cluster members to the rest of the cluster, or publishing the location of partitions during rebalancing. These tasks have a strong tendency to require all updates to be routed via a single member for the sake of cluster stability and data integrity. Fortunately that member is dynamically assigned in Coherence, so it is not a single point of failure, but it may still become a single point of bottleneck (until the cluster finishes its reconfiguration, at which point this member will have a similar load to the rest of the members). The most common cause of scaling issues in large clusters is disabling multicast (by configuring well-known addresses, aka WKA). This obviously impacts network usage, but it also has a large impact on CPU usage, primarily since the senior member must directly communicate certain messages with every other cluster member, and this communication requires significant CPU time. In particular, the need to notify the rest of the cluster about membership changes and corresponding partition reassignments adds stress to the senior member. Given that portions of the network stack may tend to be single-threaded (both in Coherence and the underlying OS), this may be even more problematic on servers with poor single-threaded performance. As a result of this, some extremely large clusters may be configured with a smaller number of partitions than ideal. This results in the size of each partition being increased. When a cache server fails, the other servers will use their fractional backups to recover the state of that server (and take over responsibility for their backed-up portion of that state). The finest granularity of this recovery is a single partition, and the single service thread can not accept new requests during this recovery. Ordinarily, recovery is practically instantaneous (it is roughly equivalent to the time required to iterate over a set of backup backing map entries and move them to the primary backing map in the same JVM). But certain factors can increase this duration drastically (to several seconds): large partitions, sufficiently slow single-threaded CPU performance, many or expensive indexes to rebuild, etc. The solution of course is to mitigate each of those factors but in many cases this may be challenging. Larger clusters also lead to the temptation to place more load on the available hardware resources, spreading CPU resources thin. As an example, while we've long been aware of how garbage collection can cause significant pauses, it usually isn't viewed as a major consumer of CPU (in terms of overall system throughput). Typically, the use of a concurrent collector allows greater responsiveness by minimizing pause times, at the cost of reducing system throughput. However, at a recent engagement, we were forced to turn off the concurrent collector and use a traditional parallel "stop the world" collector to reduce CPU usage to an acceptable level. In summary, there are some less obvious factors that may result in excessive CPU consumption in a larger cluster, so it is even more critical to test at full scale, even though allocating sufficient hardware may often be much more difficult for these large clusters.

    Read the article

< Previous Page | 320 321 322 323 324 325 326 327 328 329 330 331  | Next Page >