Wednesday, January 1, 2014

MariaDB: An Open Source Alternative and Replacement of Oracle's MySQL

MariaDB: An Open Source Alternative and Replacement of Oracle's MySQL

MySQL was the best open source database in the market before Sun Microsystems purchased it. After this, Oracle purchased Sun Microsystems and MySQL came in the hands of Oracle. After this purchase a fair number of MySQL users started looking for an alternative. So, here MariaDB comes into play. MariaDB can be considered an open source alternative and replacement of MySQL. MariaDB is a fork of the MySQL source code. MariaDB is also considered as "drop-in replacement” for MySQL. MariaDB has been invented by Monty Widenius, the same author who invented MySQL. MariaDB also includes some new features that make it better than MySQL and better performance than MySQL.

A brief history of MySQL and origin of MariaDB

A) Invention of MySQL

MySQL was invented by a Swedish company, MySQL AB, which was founded by David Axmark, Allan Larsson and Michael "Monty" Widenius. It is named for Widenius' daughter, My. MySQL was born about the same time as the World Wide Web, in 1994. It was popular from its inception and quickly became a standard part of the LAMP stack (Linux, Apache, MySQL, Perl/PHP/Python) that powers most Web sites. MySQL has been dual-licensed from the beginning: free for personal use, but you had to purchase a commercial license to use it on commercial sites or on Windows servers. In 2000 they changed the free license to the GPL, which meant that commercial users no longer had to purchase licenses. MySQL AB took a huge financial hit from this, losing as much as 80 percent of revenues by some accounts.

But, to their credit, they stuck with the GPL. Mickos became CEO in 2001, and the company's market reach and revenue steadily increased. But even though they were becoming dominant when measured by installations (about a third of the total market share), their revenues were still smallish-- for example, they grossed about $50 million in 2007, but to industry giants like Microsoft and Oracle it's a rounding error. Oracle looked upon MySQL and decided they had to have it, and started making purchase overtures around 2006. MySQL AB said no.

B) Sun Microsystems purchased MySQL

In 2007 MySQL AB raked in a cool $75 million. In 2008 Sun Microsystems bought them for approximately $1 billion. Though purchasing the whole company meant buying the talent that built MySQL. But Widenius and Axmark didn't last long at Sun and left in 2008, with many public complaints. Widenius was a vocal critic of Sun's MySQL 5.1 release and called it buggy and crashy. Then Mickos left in 2009, and the original MySQL visionaries were gone.

C) Oracle purchased Sun Microsystems

In 2009 Oracle purchases Sun Microsystems for $7.4 billion. Monty Widenius, in one of the most amazing cases of seller's remorse ever, arose in a mighty dudgeon and tried to derail the deal with his "Save MySQL" campaign. He urged people to write to the European Union and ask them to either shoot down the whole deal, or require Oracle to obey certain conditions. MySQL was firmly entrenched as an extremely important piece of technology, the foundation of the Internet and of many private businesses, and he feared that Oracle would not be a good steward of MySQL, but would kill it, or close the source.

The deal went through anyway and Oracle, at last, owned MySQL.

D) Birth of MariaDB

Monty did not retire to count his giant pile of Sun money, but instead forked MySQL and created MariaDB in 2009. (Fortunately for his naming convention he has another daughter, Maria.) MariaDB is a non-commercial community venture, always free software and always free of cost, though donations are welcome. MariaDB is now managed by the MariaDB Foundation, which is led by Michael Widenius, David Axmark, and Allan Larsson. So they created it, sold it, and got it back for free, which makes this the all-time having-your-cake-and-eating-it winner.

Migration from MySQL to MariaDB

MariaDB is a binary drop in replacement for MySQL. MariaDB has a lot of new options, extension, storage engines and bug fixes that are not in MySQL. Migration from MySQL to MariaDB is very simple because:

1. Data and table definition files (.frm) files are binary compatible.
2. All client APIs, protocols and structs are identical.
3. All filenames, binaries, paths, ports, sockets, and etc... are the same.
4. All MySQL connectors (PHP, Perl, Python, Java, .NET, MyODBC, Ruby, MySQL C connector etc) work unchanged with MariaDB.
5. The mysql-client package also works with MariaDB server.
6. The shared client library is binary compatible with MySQL's client library.

This means that for most cases, you can just uninstall MySQL and install MariaDB and you are good to go. 

MySQL is declining, becoming obsolete and MariaDB is rising

Despite being the most popular open-source database management system (DBMS), Oracle's MySQL has been sinking into trouble. Major Linux distributions like Red Hat and SUSE, are switching it out for its fork, MariaDB. Major Websites, such as Wikipedia, have also replaced MySQL with MariaDB. Now, adding insult to injury, Google is moving to MariaDB from MySQL.

Monday, December 30, 2013

MongoDB vs CouchDB: Open Source NoSQL and Document Databases Comparison

MongoDB vs CouchDB: Open Source NoSQL and Document Databases Comparison

MongoDB and CouchDB are both document-oriented databases. MongoDB and CouchDB are the best examples of open source NoSQL database. Aside from both storing documents though, it turns out that they don't share much in common. There are a lot of difference between MongoDB and CouchDB in terms of implementation of their data-model, interface, object storage, replication methods etc. 

As we say, MongoDB and CouchDB are both document-oriented free and open source databases, the word "document" does not mean a word processing file or a PDF. Rather, a document is a data structure defined as a collection of named fields. JSON (JavaScript Object Notation) is currently the most widely used notation for defining documents within document-oriented databases. JSON's advantage as an object notation is that, once you comprehend its syntax -- and JSON is remarkably easy to grasp -- then you have all you need to define what amounts to the schema of a document database. That's because, in a document database, each document carries its own schema -- unlike an RDBMS, in which every row in a given table must have the same columns.

In this article "MongoDB vs CouchDB", I have tried to make a comparison between MongoDB and CouchDB and figured out following difference between these two Free, Open Source, NoSQL document oriented databases: 

Data Model: MongoDB and CouchDB are both document oriented databases. MongoDB is JSON based while CouchDB is BSON based.

Interface: MongoDB uses custom protocol over TCP/IP while CouchDB uses HTTP/REST protocol.

Object Storage: MongoDB database contains collections and those collections contain documents while CouchDB directly contains all the documents.

Implementation Language: MongoDB is written in C++ while CouchDB is written in Erlang.

Server operating systems: MongoDB can operate on Linux, OS X, Solaris and Windows platforms while CouchDB can operate on Android, BSD, Linux, OS X, Solaris and Windows.

Supported programming languages: MongoDB supports a lot of programming languages like Actionscript, C, C#, C++, Clojure, ColdFusion, D, Dart, Delphi, Erlang, Go, Groovy, Haskell, Java, JavaScript, Lisp, Lua, MatLab, Perl, PHP, PowerShell, Prolog, Python, R, Ruby, Scala and Smalltalk. CouchDB supports lesser programming languages as compared to MongoDB. Programming languages supported by CouchDB are C, C#, ColdFusion, Erlang, Haskell, Java, JavaScript, Lisp, Lua, Objective-C, OCaml, Perl, PHP, PL/SQL, Python, Ruby and Smalltalk. 

Replication: MongoDB supports only Master-Slave replication. On the other hand, CouchDB supports Master-Master Replication as well as Master-Slave Replication.

Triggers: MongoDB does not support triggers while CouchDB does.

Developer: MongoDB is developed by MongoDB, Inc. MongoDB was initially released in 2009. CouchDB is developed by Apache Software Foundation. CouchDB was initially release in 2005.

MySQL vs MongoDB: Basic Differences between MySQL and MongoDB

MySQL vs MongoDB: Basic Differences between MySQL and MongoDB

MySQL and MongoDB are both free and open source databases. MySQL and MongoDB have a lot of basic differences in terms of data representation, querying, relationships, transactions, schema design and definition, normalization, speed and performance. By comparing MySQL with MongoDB, we are comparing Relational and non-relational databases. MongoDB is a scalable and high-performance open source database designed to handle document-oriented storage while MySQL is a widely used relational database. When building a custom web application, you need to consider the type of database that best suits your demand. If your are thinking to go with the best open source database, you will have to consider which database is best for you: MySQL or MongoDB? Here's a quick guide on the basic differences between MySQL (Relational) and MongoDB (Non-Relational / NoSQL). 

Data Representation

MySQL represents data in tables and rows.

MongoDB represents data as collections of JSON documents.

If you think about it, a JSON document is very much like what you would be working with in your application layer. If you are using javascript, it's exactly what you're working with. If you're using PHP, it's just like an associative array. If you're using python, its just like a dictionary object.

Querying

The SQL in MySQL stands for Structured Query Language. That's because you have to put together a string in this query language that is parsed by the database system. This is what makes SQL injection attacks possible.

MongoDB uses object querying. By that I mean you pass it a document to explain what you are querying for. There isn't any language to parse. If you're already familiar with SQL, it'll take a little bit of time to wrap your brain around this concept, but once you figure it out, it feels a lot more intuitive.

Relationships

One of the best things about MySQL and relational databases in general is the almighty JOIN operation. This allows you to perform queries across multiple tables.

MongoDB does not support joins, but it does multi-dimensional data types such as arrays and even other documents. Placing one document inside another is referred to as embedding. For example, if you were to create a blog using MySQL, you would have a table for posts and a table for comments. In MongoDB you might have a single collection of posts, and an array of comments within each post.

Transactions

Another great thing about MySQL is its support for atomic transactions. The ability to contain multiple operations within a transaction and roll back the whole thing as if it were a single operation.

MongoDB does not support transactions, but single operations are atomic.

Schema Definition

MySQL requires you to define your tables and columns before you can store anything, and every row in a table must have the same columns.

One of my favorite things about MongoDB is that you don't define the schema. You just drop in documents, and two documents within a collection don't even need to have the same fields.

Schema Design and Normalization

In MySQL there is really isn't much flexibility in how you structure your data if you follow normalization standards. The idea is not to prefer any specific application pattern.

In MongoDB, you have to use embedding and linking instead of joins and you don't have transactions. This means you have to optimize your schema based on how your application will access the data. This is probably pretty scary to MySQL experts, but if you continue reading, you'll see there is a place for both MySQL and MongoDB.

Performance

MySQL often gets blamed for poor performance. Well if you are using an ORM, performance will likely suffer. If you are using a simple database wrapper and you've indexed your data correctly, you'll get good performance

By sacrificing things like joins and providing excellent tools for performance analysis, MongoDB can perform much better than a relational database. You still need to index your data and the truth is that the vast majority applications out there don't have enough data to notice the difference.

When should you use MySQL?

If your data structure fits nicely into tables and rows, MySQL will offer you robust and easy interaction with your data. If it's performance that is your concern, there is a good chance you don't really need MongoDB. Most likely, you just need to index your data properly. If you require SQL or transactions, you'll have to stick with MySQL.

When should you use MongoDB?

If your data seems complex to model in a relational database system, or if you find yourself de-normalizing your database schema or coding around performance issues you should consider using MongoDB. If you find yourself trying to store serialized arrays or JSON objects, that's a good sign that you are better off MongoDB. If you can't pre-define your schema or you want to store records in the same collection that have different fields, that's another good reason.

Conclusion

You probably thought this was going to be all about performance, but MySQL and MongoDB are both tremendously useful, and there are much more important differences in their basic operations than simply performance. It really comes down to the needs of your specific application.

Sunday, December 29, 2013

Best Free Open Source Small Business Accounting Software Solutions

Best Free Open Source Small Business Accounting Software Solutions

Do you own a small business and do not want to spend a lot on expensive accounting software packages? If your business needs are small, then there are a lot of free and open source small business accounting software solutions which can help you to maintain your accounting tasks and will help you to focus on your core needs. We have picked top 8 free and open source small business accounting software packages for you: TurboCASH, TAS, GnuCash, Express Invoice, xTuple PostBooks, VT Cash Book, Invoice Expert XE and Adminsoft Accounts. These free and open source accounting software packages are equipped with all basic and required features for your business like  stock control, invoicing, debtors, creditors, general ledger, VAT accounting, balance sheet and income statements, and plenty of reports - and also supports multiple users, and even multiple companies. These are well configurable as per your need. Lets have a look at them:

1. TurboCASH 5

TurboCash is an open source small business accounting package, which the developers say has more than 80,000 users worldwide.

It has all the usual standard functions - stock control, invoicing, debtors, creditors, general ledger, VAT accounting, balance sheet and income statements, and plenty of reports - and also supports multiple users, and even multiple companies.

As with any similar package, if you're new to accounting in general then there's a great deal to learn. TurboCASH does make things easier with example books, though, and a detailed online manual helps you to get started.

The program is also highly configurable, and it's also a relief to use a free accounting tool which isn't always demanding that you "upgrade".

2. TAS Basics

TAS Software (a division of Sage) sells several accounting packages, but gives Basics away for free. This means it has plenty of limitations - you can't record sales orders or create invoices, for instance - and there's no real support, but if you can live with that then Basics proves to be a very straightforward package.

It can maintain customer and supplier records; you're able to maintain multiple bank accounts, recording the money in and out; simple reporting means it's easy to record who owes you money (and who you own money to), and you get useful help with your VAT return.

3. GnuCash

First released back in 1998, the open source GnuCash has been constantly developed ever since, and it's now a very flexible accounting system.

A straightforward register makes it quick and easy to enter transactions, but there's also plenty of power here: customer and supplier tracking, invoicing and bill payment, scheduled transaction support, and a host of reporting tools.

Advanced features include budget management and stock portfolios, while each of your accounts can be in different currencies. Double entry accounting and a reconciliation tool help you uncover any errors, and with versions available for Windows, Linux and Mac (and even an Android app) you can run the program just about anywhere.

4. NCH Express Invoice

Express Invoice is free only for businesses with less than five employees, and annoyingly you're asked to confirm that every time the program launches. That aside, though, Express Invoice is a very easy-to-use invoicing package.

After installation, you can create a quote or invoice immediately; just entering a customer's name, product details and so on creates those records for you, and you can print, email or fax the results from within Express Invoice.

It's straightforward to schedule recurring invoices, you can track payments as they come in, and reports keep you up to date with outstanding invoices, item sales and more. If you only need invoicing then check out Express Invoice first.

5. xTuple PostBooks

PostBooks is another open source tool with all the usual accounting features: general ledger, accounts payable and receivable, invoicing, bank reconciliation and more, all accessible via a well-presented interface. But that's just the start.

The program also includes equally capable modules like Products, Inventory, Purchase, Manufacture, CRM and Sales, for instance, while an integrated OpenRPT report writer helps you create the reports you need.

Unsurprisingly, this also comes with a steep learning curve, but PostBooks could be useful for larger businesses, and you can upgrade to commercial packages later if you need more power.

6. VT Cash Book

If your accounting needs are simple then VT Cash Book might appeal, as it's just about recording your income and expenditure. So there's no database of customers or suppliers, no invoicing or purchase order module: instead you'll spend most of your time simply entering transactions via VT Cash Book's straightforward interface.

Still, the program does support multiple accounts, has a simple reconciliation option, and can help with your VAT returns. So if you're a small trader, and just looking for a way to record your cash transactions, then VT Cash Book is worth a look.

7. Invoice Expert XE

Invoice Expert XE is the free version of a commercial product, and has some major restrictions, the most significant being that you're limited to 100 customers and products.

It's still packed with powerful features, though - comprehensive quote and invoice creators, detailed inventory and customer management, useful reports, and more.

There are lots of configuration options, and an excellent interface makes the program very easy to use. The 100 customer limit will be a big problem for most people, then, but if you have a small business where that isn't an issue, Invoice Expert XE's mix of power and simplicity could make it a reasonable choice.

8. Adminsoft Accounts

Adminsoft Accounts is the work of a single developer, rather than the usual large team, but it doesn't look that way from the feature list.

The program is a double entry accounting system which supports accounts payable and receivable, general ledger, invoicing, purchase order processing, stock control, payroll and more. And there are even a few specialist modules (AutoManager helps run a garage, for instance).

Learning how to use all this can take a while, as there are a vast number of menus and dialog boxes to explore. But if you need a lightweight program with plenty of functionality then Adminsoft Accounts could still be a good choice.

Intuit QuickBooks vs Sage Peachtree: Small Business Online Accounting Software Comparison

Intuit QuickBooks vs Sage Peachtree: Small Business Online Accounting Software Comparison

Are you searching for best accounting software for your small/medium business? There are a lot of online free and cheap small business accounting software packages available but we would recommend you to pay some dollars to get a good accounting software for your business. We have shunted out two good accounting software solutions for you: Intuit QuickBooks and Sage Peachtree. We will provide a brief comparison of features of Intuit QuickBooks and Sage Peachtree. We will help you to decide which accounting software is the best option for you? Which accounting software package (Intuit QuickBooks or Sage Peachtree) best matches your accounting and financial demands?

As a small business owner, your to-do list is a mile long. It’s stressful enough handling customer demands or vendor requests, but then there’s day-to-day administrative tasks that must be completed as well. While accounting software programs can’t keep tabs on your new competitor down the street, they can at least make one part of your job a little easier.

Sage Peachtree and Intuit QuickBooks own major share of the small business accounting software market. They both provide excellent solutions to many, if not all of a small business’s bookkeeping conundrums. 

QuickBooks is usually considered the easiest accounting software to implement for someone without an accounting background but the competitor Sage Peachtree also offers intuitive features like Setup Advisor and Sage Advisor, a tool that follows user activity while explaining how the software can handle different tasks.

When it comes to tracking financials, there are simply no substitutes for accuracy, usability or quality reporting. While you can certainly find basic accounting and financial management solutions for little or no cost online, these bare-bones programs typically offer few if any real capabilities. And it’s in usability and depth that QuickBooks and Peachtree both really shine.

Intuit QuickBooks

QuickBooks boasts a well-developed and easy to use invoicing system dubbed the Collections Center. QuickBooks Premier includes the ability to track data from different departments, locations or funds, all in one report. Batch invoicing is another new feature that QuickBooks offers, allowing one invoice to be created and applied to everyone in a group.

From top to bottom, QuickBooks has updated their offerings to keep pace with software and technology trends enabling easier online integration. For example, all versions of QuickBooks can be used in conjunction with your online banking and web-based email account (e.g., Gmail, Hotmail, Yahoo! Mail). They can also be connected via QuickBooks Sync to Intuit’s online servers, making information seamlessly available.

Sage Peachtree

Peachtree, on the other hand, is great for loads of specific small business tasks and offers a very customizable tool set. Each version of Peachtree can deftly manage workflow analysis, volume pricing, complicated inventory concerns (e.g., multiple warehouses) and vendor reports. Peachtree has also teamed up with business intelligence firm Alchemex to provide Excel-based business intelligence summaries for Complete and Premium users.

With Peachtree you can keep an eye on cash flow with preset alerts that send email notifications when inventory amounts get too low or an account’s balance passes a predetermined threshold. Perhaps the most valuable tool that Peachtree offers is its Internal Accounting Review that audits your data to detect common accounting mistakes. This makes sure that your hard earned money doesn’t slip through the cracks.

Conclusion

These are slightly different products being catered to slightly different crowds, and they aren’t cheap, but they are well worth the investment in terms of both dollars and hours saved. In fact they will allow you to get back to the really fun tasks of running a small business. You can visit official websites of Intuit QuickBooks and Sage Peachtree to learn more.

Friday, December 27, 2013

MySQL vs PostgreSQL: Which Open Source Database to Choose? Which one is best?

MySQL vs PostgreSQL: Which Open Source Database to Choose? Which one is best?

If you are thinking of choosing a free and open source database for your project, you will surely get confused between MySQL and PostgreSQL. MySQL and PostgreSQL are both free and open source powerful and full-featured databases. Your major question here is: Which is the best open source database: MySQL or PostgreSQL? Which open source database to choose: MySQL or PostgreSQL?

When you're choosing a database, you're making a long-term decision, because changing your mind later is difficult and expensive. You want to get it right the first time. Two popular open source databases, MySQL and PostgreSQL, are often the final two candidates. This high-level overview of these two open source databases should help you choose which is more appropriate for your needs, MySQL or PostgreSQL?

MySQL

MySQL is a relative youth, first appearing in 1994. It calls itself the world's most popular open source database. MySQL is the M in LAMP, the software bundle frequently used for web development that also includes Linux, Apache, and Perl/PHP/Python. Most applications built on a LAMP stack incorporate MySQL, including such well-known applications as WordPress, Drupal, Zend, and phpBB.

Initially MySQL was designed to be a fast web server back end, using a fast indexed sequential access method (ISAM), with no ACID support. Since those lean, speedy early days MySQL has added support for a number of additional storage engines, and ACID compliance is now available via the InnoDB engine. MySQL also supports other storage engines, providing capabilities such as temporary tables using the MEMORY storage engine, an example for developers with the EXAMPLE storage engine, fast read-mostly databases using the MyISAM engine, plus several other core storage engines and a number of third-party engines.

MySQL documentation is abundant, and includes good free reference manuals, many books and online articles, and training and support from Oracle and third-party vendors.

MySQL has gone through changes in ownership and a fair bit of drama in recent years. It was first developed by MySQL AB, which sold itself to Sun Microsystems for a cool billion dollars in 2008. Sun was in turn acquired by Oracle in 2010. Oracle supports multiple editions: Standard, Enterprise, Classic, Cluster, Embedded, and Community. Some of these are free downloads, some cost money. The core code is GPL, and commercial licenses are available for developers and vendors who prefer not to use the GPL.

Nowadays there are even more choices for databases based on the original MySQL code, because several key MySQL developers have released MySQL forks. Michael "Monty" Widenius, one of the original founders of MySQL, appeared to develop a case of seller's regret after the Sun sale, and developed his own MySQL fork, MariaDB, free of cost and licensed under the GPL. Drizzle, a fork by prominent MySQL developer Brian Aker, is a substantial rewrite and change in core concepts that is optimized for multi-CPUs, cloud and net applications, and massive concurrency.

PostgreSQL

PostgreSQL bills itself as the world's most advanced open source database. Some of its fans say it is as good as Oracle, but without the baggage of high cost and snooty customer service. It has a long history, having been developed originally in 1985 at the University of California, Berkeley, as a descendant of the Ingres database.

PostgreSQL is a 100% community-driven open source project, maintained by a worldwide community of more than a thousand contributors. It provides a single completely functional version, rather than the multiple different community, commercial, and enterprise versions that MySQL offers. Its license is a liberal BSD/MIT-type, which allows organizations to use, copy, modify, and redistribute code with only a copyright notice required.

Reliablity is PostgreSQL's top priority. It is known for being rock-solid and well-engineered, capable of supporting high-transaction, mission-critical applications. Documentation is first-rate, with comprehensive manuals available for free online, along with archives of manuals for older releases. Community support is excellent, and commercial support is available from independent vendors.

Data consistency and integrity are also high priorities. PostgreSQL is fully ACID-compliant (atomicity, consistency, isolation, durability.) It has strong security for controlling access to the database, making good use of enterprise security tools such as Kerberos and OpenSSL. You can define your own checks to ensure data quality according to your own business rules. A favorite feature of many admins is point-in-time recovery (PITR), a flexible high-availability feature with powers such as the ability to create a warm standby server for fast failover, and snapshots and restores to specific points in time. But that's not all – the project provides several methods to manage PostgreSQL for high availability, load-balancing, and replication, so you can use what fits your particular needs.

Platforms and Workloads

Both MySQL and PostgreSQL power some of the Web's highest-demand Web sites:

MySQL: Slashdot, Twitter, Facebook, Wikipedia
PostgreSQL: Yahoo runs a multi-petabyte modified PostgreSQL database that processes billions of events per day, Reddit, Disqus

Both MySQL and PostgreSQL run on multiple operating systems: Linux, Unix, Mac OS X, and Windows. Both are open source and free of cost, so the only cost for testing them is your time and hardware. Both are flexible and scale well for uses ranging from small deployments to giant distributed systems. MySQL goes one level smaller than PostgreSQL, down into the embedded space, with libmysqld. PostgreSQL does not support embedded applications, sticking instead with traditional client/server architecture.

MySQL is often thought of as the speedy database back end for websites and applications, performing fast reads and numerous small queries, but offering fewer sophisticated features and data integrity checks. PostgreSQL is considered the solemn, full-featured, no-nonsense workhorse for transactional enterprise applications, with strong ACID compliance and many data integrity checks. Each is faster at some tasks, and MySQL performs differently with different storage engines. The MyISAM engine for MySQL is by far the fastest, because it performs the fewest data integrity checks. It works great as a back end for busy read-mostly websites, but it is a disaster for any read/write database containing sensitive data, because MyISAM tables will inevitably become corrupted. MySQL has good tools for recovering corrupted MyISAM tables, but for sensitive data InnoDB, which is ACID-compliant, is a better choice.

In contrast, PostgreSQL is a complete integrated database server with a single storage engine. You can improve performance by tweaking parameters in postgresql.conf, and tweaking your queries and transactions. The PostgreSQL documentation goes into detail on fine-tuning performance.

Both MySQL and PostgreSQL are very configurable and can tuned to optimize performance for different tasks. Both support extensions for added functionality.

A common misconception is that MySQL is easier to learn than PostgreSQL. Relational database management systems are all complex, finicky beasts, and these two have comparable learning curves.

Standards Compliance

PostgreSQL aims for SQL standards compliance (the current standard is ANSI-SQL:2008). MySQL is mostly SQL-compliant, but also has its own extensions and support for non-SQL features, which are documented in the reference manual. There are pros and cons to each approach. Standards adherence makes life easier for database admins, database developers, and application developers, because it means they have only one standard to learn, a common set of features and commands to use and support, and their code is portable. This adds up to savings in time and effort, and freedom from vendor lock-in.

Arguments in favor of using non-compliant customizations include freedom to quickly roll out useful new features, rather than waiting for them to work through the standards process. ANSI/ISO standards change and evolve, so standards compliance is a moving target anyway; the big-name RDBMSes, such as Microsoft SQL Server, Oracle, and IBM's DB2 are only partially compliant. Many of the MySQL's customizations are not exactly game-changers; for example, the differences in the way single and double quotes and escape characters behave in MySQL don't seem worth the bother or the potential for errors. MySQL adds even more complexity by supporting multiple SQL modes, such as ANSI, to conform more closely to standard traditional SQL for strict data input checking and various other strict and relaxed data-checking modes.

Conclusion

Despite their different histories, engines, and tools, no clear differentiator distinguishes either PostgreSQL or MySQL for all uses. Many organizations favor PostgreSQL because it is so reliable and so good at protecting data, and because, as a community project, it is immune to vendor follies. MySQL is more flexible and has more options for being tailored for different workloads. Most times an organization's proficiency with a particular piece of software is more important than differences in feature sets, so if your organization is already using one of these, that is a good reason to stick with it. If you held my dogs hostage and forced me to choose a database for a new project, I would pick PostgreSQL for all tasks, including Web site backends, because of its rock-solid reliability and data integrity. And I would keep Drizzle running on a test machine, to stay acquainted with it, until it is ready for prime time, and then roll it out for cloud and application servers.

Thursday, December 26, 2013

Windows Server Performance Monitoring Tools

Windows Server Performance Monitoring Tools

Today Windows Servers are used in heavily to maintain a lot of big applications. It is normal for a window server's performance to diminish over time as more applications, drivers, etc. are installed. Eventually though, a system's performance may reach an unacceptably low level. 

When this happens, you need to know what to do about the problem. Windows Server Performance Monitoring Tools can help you here to detect what is going wrong with your windows server and why the performance of your windows server has declined?

Windows Server Performance Monitoring Tools helps you to identify potential bottlenecks and threats to your network and windows servers before your users are affected. For example, you will see if CPU or memory usage gets too high on a Windows server, if you are running out of disk space, or if an application creates an unusual amount of network traffic.

Windows Server Performance Monitoring software gives administrators insights into file system, OS and application conflicts that can result in poor server performance. Windows Server performance monitoring software can identify problems with Windows servers and automatically trigger corrective measures. Depending on how it is configured, Windows Server performance monitoring software may try a range of healing operations and, if none are effective, notify the administrator.

There are several performance monitoring tools available to Windows Server administrators. Which tool you use will depend on what you are trying to accomplish, your operating system and your technical skills.

Features of Good Windows Server Performance Monitoring Tools

1. Ease of Use

A good Windows Server Performance Monitoring Tool should be easy to setup, configure and use.

2. Distributed Site Monitoring

A good Windows Server Performance Monitoring Tool should provide multiple-location monitoring and make it possible to distribute the load for CPU-intensive tasks such as packet sniffing. 

3. Access Through Your Web Browser

A good Windows Server Performance Monitoring Tool should be accessible from anywhere at any time. The interface should work perfectly in any modern web browser including the iPhone.

In short, A good Windows Server Performance Monitoring Tool should monitor your Windows servers and your entire network 24/7 and notifies you if something needs your attention. This means you can stop worrying about the status of your windows servers and concentrate on your many other tasks. It should give you peace of mind, because you can rely on the Windows Server Monitor to inform you if you should really worry about anything.

List of Windows Server Performance Monitoring Tools

1. Paessler's PRTG

Paessler's PRTG server monitoring tool continuously checks server availability, health and performance for you and send you instant alerts of any problems.

PRTG can track availability of many types of servers, including web servers, file servers, email servers, FTP servers, database servers, etc. 

The software's comprehensive feature list makes it also the perfect solution for monitoring network bandwidth, usage and availability of networks of all sizes. 

PRTG is a professional server monitoring tool that scales up to 20.000 and more sensors. 

PRTG as a professional server monitoring tool comes with comprehensive features for monitoring web servers as well as SQL servers and entire networks. It offers more than 190 sensor types, bandwidth management functionality using SNMP monitoring, NetFlow and packet sniffing (port sniffer), remote probes for monitoring locally distributed networks and much more.

Quick and easy installation and configuration make PRTG an extremely user friendly server monitoring tool. Additionally PRTG comes with an easy to use web-interface. Monitoring results can be published in many different ways and comprehensive rights and roles management allows you to set up different users with precisely defined rights.

2. SolarWinds WMI Monitor

SolarWinds WMI Monitor monitors any Windows application or server, giving you amazing insight into real-time performance. Use built-in, community-sourced, or custom templates to start monitoring immediately!

Setting up Windows Management Instrumentation monitoring for your Windows servers and apps can be time consuming and tedious. Ready to take the guesswork out of determining which Windows Management Instrumentation counters to use for applications like Microsoft Active Directory and SharePoint? Want to look like an application expert without sifting through boring Windows Management Instrumentation tutorials?

SolarWinds free WMI Monitor is the answer. This free tool makes it easy to monitor your Windows applications and servers and gives you amazing insight into real-time performance with a slick desktop dashboard.

With WMI Monitor, you can monitor virtually any application. Choose from pre-built application templates in the tool or explore templates created and posted on thwack by the SolarWinds community of tens of thousands of system administrators. You can also create your own custom templates and share them with one click to help supercharge our free tools!

3. Windows Performance Monitor

Windows Performance Monitor is a Microsoft Management Console (MMC) snap-in that provides tools for analyzing system performance. From a single console, you can monitor application and hardware performance in real time, customize what data you want to collect in logs, define thresholds for alerts and automatic actions, generate reports, and view past performance data in a variety of ways.

Windows Performance Monitor combines the functionality of previous stand-alone tools including Performance Logs and Alerts (PLA), Server Performance Advisor (SPA), and System Monitor. It provides a graphical interface for the customization of Data Collector Sets and Event Trace Sessions.

4. ManageEngine Windows Health Monitor Tool

System performance and availability is crucial for business productivity. Windows Health Monitor tool is easy to use and monitors up to 20 servers/desktops simultaneously. ManageEngine Windows Health Monitor Tool is equipped with following features:

System Monitoring: It monitors system CPU, memory, disk space, number of ports open, response time and network bandwidth utilization.

Response Time: Windows Health Monitor Tool tracks the response time of the servers/systems in an intuitive graph and ensure that the user doesn’t have to wait long to use an application.  
 
Dashboard View: View top 3 systems memory, CPU, disk utilization along with their name and IP address details. Watch for color-coded alerts showing the systems with high resource utilization.

Threshold Settings: Set warning and critical threshold values for CPU, disk and memory usage.  

TCP Port Scanning: View open ports in the selected server with its description.

Port Scan Setting: Configure the port scan setting by adding the port numbers which you want scanned or by specifying the from-port and to-port numbers that needs to be scanned. Windows Health Monitor scans all the ports in the specified range.
Report Generation: Generate reports for a particular server with CPU, memory, disk space, number of ports and bandwidth utilization. The report is available in PDF format.

Email: Trigger an email about the server status to your team by attaching the device performance screenshot as a report.

5. NewRelic Server Monitoring Tool

NewRelic Server Monitoring Tool is a good option for server administrators. New Relic's server monitoring allows developers and sys admins to look at the same data in the same web interface. Three most important characteristics for an APM tool are End-User Performance, Server Performance and Application Performance. At this point, New Relic delivers all three for IGN. Using NewRelic Server Monitoring Tool, you can:

A) Get alerts for server health issues, including CPU utilization, memory utilization, disk I/O utilization, and disk capacity.
B) See which servers have capacity issues so you can take corrective action.
C) See processes prioritized by memory or CPU consumption.
D) Track server health availability in cloud, physical, or hybrid environments

6. Semonto Server Monitoring Tool

Semonto will email you the exact warning or error message when a check fails. If you have an iPhone or iPad, you can download Semonto free iOS-client to receive Apple Push Notifications. For those who haven't, Semonto offers the possibility to be alerted via SMS, Twitter or even a webhook (POST).

Semonto has multiple test servers around the globe. That way you can choose which server needs to check your server. It is also possible to select a different server for every host, so you can test the connectivity to your host from several countries. With those multiple servers, we eliminate the false-positives.

Semonto offer webapplication tests like measuring the latency, checking if a webapplication contains some defined words, or simply don't contains. You can also test servers like doing ping-tests, port-tests. When your Semonto small webapp on your server, you can also test your server load, database-server, memory-usage and more. You can implement custom tests as you want, eg to monitor queues.