background preloader

35+ Use Cases for Choosing Your Next NoSQL Database

35+ Use Cases for Choosing Your Next NoSQL Database

Srinath's Blog :My views of the World: List of Known Scalable Architecture Templates For most Architects, "Scale" is the most illusive aspect of software architectures. Not surprisingly, it is also one of the most sort-out goals of todays software design. However, computer scientists do not yet know of a single architecture that can scale for all scenarios. Instead, we design scalable architectures case by case, composing known scalable patterns together and trusting our instincts. Simply put, building a scalable system has become more an art than a science. We learn art by learning masterpieces, and scale should not be different! LB (Load Balancers) + Shared nothing Units - This model includes a set of units that does not share anything with each other fronted with a load balancer that routes incoming messages to a unit based on some criteria (round-robin, based on load etc.). However, combining them to create a scalable architecture is not at all trivial undertaking.

DevOps for dummies - VPS Configuration from scratch - Rails, Nginx, PostgreSQL. - Tech.pro Setting up a VPS can be a daunting task, especially if you're new and don't know how the bits and pieces fit together. Services like Heroku have tried to ease this burden by allowing people to focus on their code and not worry about their actual servers, but sometimes that added value comes with a steep price-tag. Other times Heroku just isn't a good fit. Today I'd like to show you the 'DevOps for Dummies' guide. Please note that there are engineers out there who make a living fine tuning and monitoring servers. Objectives: Here's a small list of the things we're going to work on. While there are tools out there like Chef, Puppet, etc; I want to do things manually so when the time comes for you to learn about these tools you notice the benefit they bring to the table. What VPS should I use? What VPS should I use? There are many VPS offerings out there. It's up to you to shop around online and find the one that fits your application needs best. In the end, shop around and pick one you like.

Load Balancing FAQ Rundeck.org - Open Source Automation In Memory Data Grid Technologies After winning a CSC Leading Edge Forum (LEF) research grant, I (Paul Colmer) wanted to publish some of the highlights of my research to share with the wider technology community. What is an In Memory Data Grid? It is not an in-memory relational database, a NOSQL database or a relational database. It is a different breed of software datastore. In summary an IMDG is an ‘off the shelf’ software product that exhibits the following characteristics: The data model is distributed across many servers in a single location or across multiple locations. All servers can be active in each site.All data is stored in the RAM of the servers.Servers can be added or removed non-disruptively, to increase the amount of RAM available.The data model is non-relational and is object-based. There are also hardware appliances that exhibit all these characteristics. There are six products in the market that I would consider for a proof of concept, or as a starting point for a product selection and evaluation:

NOSQL Patterns Over the last couple years, we see an emerging data storage mechanism for storing large scale of data. These storage solution differs quite significantly with the RDBMS model and is also known as the NOSQL. Some of the key players include ...GoogleBigTable, HBase, HypertableAmazonDynamo, Voldemort, Cassendra, RiakRedisCouchDB, MongoDB These solutions has a number of characteristics in commonKey value storeRun on large number of commodity machinesData are partitioned and replicated among these machinesRelax the data consistency requirement. (because the CAP theorem proves that you cannot get Consistency, Availability and Partitioning at the the same time)The aim of this blog is to extract the underlying technologies that these solutions have in common, and get a deeper understanding on the implication to your application's design. I am not intending to compare the features of these solutions, nor to suggest which one to use. API model The basic form of API access is Data replication

The Perils of Asynchrony Every time you come across anything more than a rudimentary system that has some moderately serious performance needs, someone somewhere on the team considers using asynchronous processing to help reduce (perceived) response time. That person needs to be identified and quickly locked in a padded room . . . . Just kidding! Often that person is me and often I end up writing the code and relearning why doing things in an asynchronous way (that also meets a certain "near guarantee" SLA including DR and HA needs) is very very hard. So it was with some chagrin that I was tasked with coding some infrastructure components to implement a Task Queue for my current team. The goal was to satisfy a need to improve response time of the application when it was doing some back-end tasks that required 100ms or more. Anyway the default solutions in Java for Asynchronous processing are 1) Threads (and java.util.concurrent - which is awesome) 2) JMS (Java Message Service) Why Threads aren't the solution

Brewer's CAP Theorem On Friday 4th June 1976, in a small upstairs room away from the main concert auditorium, the Sex Pistols kicked off their first gig at Manchester’s Lesser Free Trade Hall. There’s some confusion as to who exactly was there in the audience that night, partly because there was another concert just six weeks later, but mostly because it’s considered to be a gig that changed western music culture forever. So iconic and important has that appearance become that David Nolan wrote a book, I Swear I Was There: The Gig That Changed the World, investigating just whose claim to have been present was justified. We know three chords but you can only pick two Wednesday 19th July 2000, may not go down in popular culture with quite the same magnitude but it’s had a similar impact on internet scale business as the Sex Pistols did on music a quarter of a century earlier, for that was the keynote speech by Eric Brewer at the ACM Symposium on the Principles of Distributed Computing (PODC). Dealing with CAP

Clustering with the Shoal Framework Shoal is an open source, Java-based generic clustering framework. It can be used in your applications to add clustering functionalities like load balancing, fault tolerance, or both. Applications using Shoal can share data, communicate via messages with other cluster nodes across the network, and notify of relevant events like the joining, shutdown, and failure of a node or group of nodes. Shoal is the clustering framework used by the " project to implement its application server clustering. Shoal is a lightweight component; you can embed Shoal not only in Java EE applications, but in SE applications too. In this article, we'll cover the Shoal architecture and its basic concepts. Learning Shoal's Basic Concepts and Architecture We will now discuss the architecture of a Shoal cluster solution and the internal design of Shoal. Understanding Shoal's Architecture Shoal's main concept is the group, a virtual union of cluster nodes by a single name.

Fura - Welcome TIBCO Silver™ TIBCO Cloud<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="ooyalaPlayer_9picp_hgq65rj1" width="640" height="360" codebase=" name="movie" value=" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="flashvars" value="embedType=noscriptObjectTag&amp;embedCode=JmM3htYjrB-nYGji774bVOKv3RPjjfjT&amp;videoPcode=FiYm06Tu_hQLSGqTeVTwSS1L4vV7" /><embed src=" The promise of cloud is real: it allows for greater efficiency and faster time-to-market of new capabilities at reduced cost. TIBCO Cloud makes this possible – providing a clear path to fast results that enables the business to get ideas up and running without having to secure extra monetary or resource support.

IceGrid As a mature and proven distributed computing technology, Ice provides a host of solutions for accelerating the development and deployment of large-scale distributed applications, including a secure router and bidirectional protocol for firewall traversal, and a data distribution service. IceGrid is a service that expedites the creation of a new class of applications. Grid computing has become increasingly more important to mainstream information technology endeavors as large SMP servers are replaced by many networked commodity servers. From an engineering perspective, the challenge is building an application that leverages this new-found wealth of computing power in an efficient, secure and manageable fashion. A grid application typically must employ a heterogeneous collection of systems and support a variety of platforms, tools and languages. Grid applications take many forms. facilitate server discovery activate servers on demand Location Deployment Resource Allocation Administration

Related: