Well, I was away for a few days, my wife had a baby – great times! Sorry if there were any site problems, I noticed there were a few when I got back today.
The predictions should start working any minute now (Tuesday @ 1:30pm EST). The reason was all to do with MongoDB, some records disappeared on me. I suppose that is what you get for using bleeding edge systems. I will be converting everything over to Mysql as Mongo is way too young to be used in a production environment with things related to money (I am actually making trades with these predictions).
Speaking of Mongo… here area a few things I do not like about Mongo besides the lack of stability, and why I am going back to Mysql
- Lack of Transactions – there is simply no way to create a transaction as of yet, this is my biggest need.
- Missing Records – I lose probably about 5-10 records a week, I can sometimes get most of them back if I take the site down, and run a db.repair.
- No means to do any joins, though I must agree, it ends up much quicker this way.
- Schema-less, although this is the main reason I moved from Mysql, it is the same reason I am moving away from it. I always (usually) test my code, however, sometimes small things get missed. I noticed that some of my data was incorrect… it turned out that I had a typo in my table selector, and it automatically created another table with my typo. (More descriptive: I had two tables: Balances and Balancse). I had to create a migration program to move data from ‘balancse’ and merge it into ‘balances’ Perhaps there is a way of stopping this, but I just didn’t like the fact that it would just create anything on the fly. I am simply not perfect, and I will make mistakes, therefore, I’d rather see an error when the table, or field doesn’t already exist.
- Unstable Replication – I have had nothing but problems with the replication, however, I should admit- they do get fixed and pushed into the latest ‘stable’ version all the time.
- Not stable… after using MongoDB for a few months, I have come to the realization (which I already knew) that Mongo is new, bleeding edge, and is nowhere near stable. I am doing a server reboot every few days as there are still memory leaks on the process.
In Mongo’s defense- I really like it, and hope to use it in the future when it becomes stable. I’d also prefer an option to not allow Table or field additions unless there was another step or explicit command. The table and field creates should follow suit to at least the update/insert data rules. INSERT NEW FIELD into Collection, or INSERT NEW TABLE into Database X, etc.
My response to Mongo’s FAQ:
“When should I use Mongo?” – Always…
Whenever you don’t care if records go missing, don’t need replication, you’re a seasoned beta tester, like on the fly table/record creation, or simply like to use bleeding edge software.
Although I sound like a hater, this is just my advice to you. I will use it, when it becomes stable, but it is not currently stable in my opinion. My advice – stick with something that works, or wait until Mongo is not releasing a new version every couple weeks.
Back to the grind…