Rhino serialization - MDC. How FriendFeed uses MySQL to store schema-less data - Bret Taylo. Background We use MySQL for storing all of the data in FriendFeed. Our database has grown a lot as our user base has grown. We now store over 250 million entries and a bunch of other data, from comments and "likes" to friend lists. As our database has grown, we have tried to iteratively deal with the scaling issues that come with rapid growth. We did the typical things, like using read slaves and memcache to increase read throughput and sharding our database to improve write throughput. In particular, making schema changes or adding indexes to a database with more than 10 - 20 million rows completely locks the database for hours at a time. Lots of projects exist designed to tackle the problem storing data with flexible schemas and building new indexes on the fly (e.g., CouchDB). After some deliberation, we decided to implement a "schema-less" storage system on top of MySQL rather than use a completely new storage system.
Overview Details Indexes are stored in separate tables. . Performance. Dojo HttpChannels Module. Blog » Jaxer + Persevere via Dojo’s JsonRestStore. With the increasing popularity of JavaScript, and rising usage of JavaScript in the browser, it is becoming very effective to use JavaScript on the server to have a single end-to-end language for both client and server-side development. Options for server-side JavaScript are also increasing. Jaxer is a new server that uses server-side JavaScript for HTML generation, using the standard browser DOM model (it is actually running Mozilla’s engine on the server) as the API. Persevere is a JavaScript based database system, that integrates a JavaScript based object model with object persistence. Dojo‘s new PersevereStore, which is built on the JsonRestStore, allows code running in Jaxer to easily query, manipulate, and interact with data in Persevere by running Dojo on Jaxer’s server-side JavaScript environment. Getting started with Persevere and Jaxer is simple, just download, unzip, and start Persevere with java -jar start.jar, and Jaxer with the StartServers script.
Scripting Java - MDC. Twitter-like Microblogging with Dojo & Persevere - HTML - Sn. HTTP Interface (Persevere) The Persevere Server persisted data can be accessed and manipulated with a simple and intuitive JSON REST interface. You can store, retrieve, and modify persisted data using standard REST semantics with the following HTTP methods. Clients communicate through these standard HTTP methods. Note - data is transmitted by default in the application/javascript format, allowing things like dates and functions (not included in the JSON spec) to be transmitted nicely.
If you're looking for just JSON, add an HTTTP Accept header with a value of application/json . Dates and functions will be serialized in this case. The GET method can be used to retrieve an object by id, a value by path, or a result set by JSONQuery. To retrieve an object by id, simply use the url corresponding to the object. GET /Customer/1 {"id":"1", "name","John", To retrieve a value, simply use property path access appended to a starting id.
GET /Customer/1.firstName "John" You can use more complex paths: GET /BlogPost/1.comments[0] Blog » When to Use Persevere: a Comparison with CouchDB and Othe. Persevere and CouchDB are both new JSON-based storage systems, and have been receiving increasing focus. It may be informative to those interested in these new technologies to discuss the differences between these new database systems and what types of applications each is best suited for. While Persevere and CouchDB share an extremely similar JSON HTTP/REST interface and object structured data storage, there are important distinctions.
Each of these different tools has a different target audience, and despite my obvious bias being the developer of Persevere, I hope to give at least some semi-objective differentiations between these tools. Fundamentally, CouchDB is primarily focused on being a general purpose database that is an alternative to a relational database. We will now take more in-depth look at the differences between Persevere and CouchDB (focusing on CouchDB due to it’s similarity to Persevere and its popularity). Querying Server-Side JavaScript Integration Security Schema.