In my opinion, Postgresql + hstore + PLv8js (Javascript as a language for stored procedures, see http://code.google.com/p/plv8js/ ) could really rock the world if it became an accepted standard and got some people behind it. It's not so great if you start using something and one year later see that the original authors lost interest and move on, leaving you with 10k lines of code that depend on a pray-for-no-bugs uns…
The key value store we ignored (Postgresql)
11–20 of 65 posts
Re: The key value store we ignored (Postgresql)
#12Re: The key value store we ignored (Postgresql)
#13Re: The key value store we ignored (Postgresql)
#14I tried hstore on a project for many of the reasons mentioned. I just hated having to always represent data as strings.
There are whole Salvatore posts about doing binary data structures in Redis string values.
Re: The key value store we ignored (Postgresql)
#15> ...gives me 14689 rows just under 360ms on average
Uh, 360ms seems like an awfully long time to query such a small dataset.
Re: The key value store we ignored (Postgresql)
#16The main selling point of the various NoSQL products out there today isn't the schemaless storage, instead it's the ability to grow beyond a single server that's compelling. 228MB of data is nothing, it fits in RAM of any machine. What would the examples in this blog post look like if it was 228GB of data spread across 10 servers instead? How would you grow/shrink such a cluster? How would you perform a query that cu…
I think for schema-less storage systems we know 2 major competitors in market. MongoDB and CouchDB. - CouchDB by default has not ability to scale out except master master replication, solution? Sharding for distribution and Replication for reliability. Or you BigCouch with prayers that it won't trash out your data. - MongoDB is know to stand on its Sharding server mongos and you have to issue sharding commands whenev…
Um, what about Riak, Cassandra, Voldemort, and Hbase? (I'm sure there's a bunch more I'm forgetting)
Re: The key value store we ignored (Postgresql)
#17how does this compare to MySQL's HandlerSocket?
Re: The key value store we ignored (Postgresql)
#18Anybody using this with rails? https://github.com/softa/activerecord-postgres-hstore
Yes -- but not with that module. We're using it to tag documents (individual rows in Postgres and Solr) with user-defined metadata. http://blog.documentcloud.org/blog/2011/05/arbitrary-metadat... ... which can then be used to power custom indexes of particular collections of documents, like this one: http://www.nytimes.com/interactive/2011/12/02/us/oil-and-gas... The fun bit being, that in both Postgres and Solr, you…
Re: The key value store we ignored (Postgresql)
#19Also, I'm pretty sure Heroku uses hstore, because they're the ones that taught me about it.
So not everyone forgot about it.
Re: The key value store we ignored (Postgresql)
#20Postgres does have (finally!) a nice replication story, so you have data protection on a second server, but the failover mechanics are much more complicated and you still have a single point of failure at the master/writer node. The story gets even more operationally complex when you talk about sharding and the fact that you now have to have a replica per master -- and it really needs to be the same size as the master if you want to be able to trust that you have enough capacity to fail over to it. Suddenly you need to have half of your database capacity sitting idle.
Now, don't get me wrong, I think Postgres is a wonderful database server. For the vast majority of applications it is the correct default choice. Very few applications ever get to the point where they need to scale further than they can get vertically on a single node and most can tolerate a few minutes of downtime to fail over to a backup server. Hand-wavy "sharding is easy" comments, however, ignore a lot of operational reality and that's dangerous.
Understand your use case. Understand the failure modes. Decide how available your datastore needs to be and how much data you need to support. Know the consequences of the choices you make.