Building a high volume app without a RDMS or Domain objects

 ThinkGeek T-Shirts will make you cool!

I have two concept applications that I think could work quite well without having to use a RDBMS or an OO domain layer. The question is, would they actually benefit from this approach?

There is no doubt that relational databases are the king of data storage and the object oriented applications are the predominant methodology and for good reasons, but how practical is it to build a high traffic application that doesn’t use a relational database or an domain object layer?

For both of the scenarios I’m thinking of, the hardware architecture would be very similar and based on Amazon’s Elastic Cloud and S3 services. The idea being that the data would reside in S3 in a text format (we’ll use XML for sake of argument), with the actual site work running off of elastic cloud instances. I was inspired a bit by a post made by the.codist{}.

Why Bother?

Good question. The idea behind thinking of this route is twofold. First, you would get the horizontal scalability of adding web servers — and possibly cache servers — quickly as traffic increases. Second is rapid development.

Rapid development. Isn’t that why we have Ruby on Rails, Grails and other frameworks like these? True, but how valuable are the domain driven OO frameworks that have dumb domain objects? I will concede that with some applications, working with the data is easier using objects that say a tabular model as the data is naturally hierarchal in nature. Then again, that is where the XML/JSON data models can fit. Also, frameworks like Ruby on Rails, Grails and ORMs like Hibernate, JPA, entity beans, etc. are most valuable when you need a full CRUD application. While both of these scenarios have CRUD operations, they aren’t data entry CRUD apps in the traditional sense.

What, no OO?

Well, the apps wouldn’t necessarily be non-object oriented, they just wouldn’t use domain objects. Rather they would have controller and action objects, commonly referred to as service objects. It is often debated on the benefits of having an anemic domain layer anyway. I know the point of Martin’s comments on the subject is to put more logic into the domain model, but what if your domain model doesn’t need any logic other than data retrieval and storage? (All of which is really a different debate)

So with those points in mind…

Scenario One: A Single User Style Application

Our first scenario is more along the lines of what we tend to think of as an ‘application’. While not single user in the sense of a desktop app, but single user in the sense that the user isn’t looking at other users or global data. Think of apps like simple, infrequent data entry and occasional reads. The volume and need for scalability from this app comes from the number of users or account holders, like say a 37Signals style application, Flickr or maybe even MySpace.

The data is stored in S3 as XML or perhaps even JSON format, and accessed as needed. Speed of access isn’t nearly as important in this application, but given that the amount of data retrieved at any one time would be relatively small, the speed shouldn’t be an issue anyway, especially over the (presumably big) pipes going between S3 and EC2.

Scenario Two: A High Traffic Social Networking Style Site

This application would be a high read, low write web site along the lines of say Digg, MySpace, etc. This one would be a little trickier to implement as the volume of reads would be quite high on common data. However I think it is still possible.

Data storage would be pretty much the same as in scenario one, however for this to work effectively, this application would almost certainly require caching using either a simple in-memory cache or using something like JCS or OSCache. The even trickier part would be if the site had something like voting. This portion of the application could see a high volume of writes and would have to be handled correctly. One possible solution to this would be to ‘write’ to the cache (of sorts) of the model and flush the writes to the file system at determined intervals. This flushing or notification would be done via a messaging system (which Amazon also provides incidentally).

At the moment the only way I can think of this really working would be that the data isn’t really being modified concurrently, but rather incrementally. To use Digg again, if one person gets a vote in before another person, it doesn’t really matter. The same could be said for comments. It doesn’t really matter that one person’s comments get posted before another’s. In other words the data being modified isn’t a single data item like say a product price or an account balance, but rather is being appended to.

Issues With Both Approaches

Transactions

The first issue that comes to mind is transaction support. Obviously this is where any RDMBS shines, but given that in both cases there is relatively low to no multi-user modifications of the data, one could argue that the ‘transaction’ could be simply done at the middle tier or application side.

Queries

Again, SQL is wonderful for queries, especially dynamic queries. This could be countered with using either XPath style queries or a search engine like Lucene, or even a combination of the two. Yes, yes, nothing really compares the power of SQL for query capabilities and I know that. The point is that it would really depend on the kind of queries needed. If you are not doing analytical queries and really only need “get object where property is like X” style queries, then other methods can provide that.

The downside to using something like XPath or the equivalent JSON/JavaScript mechanism is that the data would have to be parsed on each query. Depending on the amount of data needed for the query, that could be unacceptably CPU intensive. This could be countered with using a cache and executing those queries against the cache — something I have done in the past against object trees via JXPath with great success. Using this approach really degrades when your data files are really large. I have yet to find a SAX parser that allows access via XPath, which would go along way towards overcoming this problem. (anybody know of one by the way?)

Using something like Lucene really shines in the performance department, but fails when you need to do cross-data queries. In a RDMBS this would be akin to joining tables and such, again back to the more analytical queries. The flip side is that if your data is pretty much hierarchal in nature and doesn’t need to be normalized, then you are good to go.

I know that RDMBS’ provide many other benefits, but again we aren’t building an ERP system here, rather high read, low write applications.

Benefits

The first benefit is that you would have you don’t have to incur the overhead of a database and your scaling isn’t dependent on needing to cluster database servers or using replication strategies like a write database that replicates out to read databases. You also don’t have the disk I/O associated with a RDMBS. Yes, those files have to load off of the file system at some point, but loading simple files is much faster than going through a database any day. Look at any decent content management system and you will see that they usually implement caching by generating a static HTML page that the web server can serve directly. Yes it is true that databases are pretty darn fast these days for the most part, but without some complicated configurations and installations, they don’t cluster as easy as other means of data access.

The applications should be fairly easy to build, and build quickly, and the scaling of those apps should come almost free. The architecture is straightforward yet effective. If the app needs to use a caching tool, then expanding that cache should as easy as telling it the IP addresses of the newly instantiated cache servers. If can make the web servers stateless then you don’t have to worry about that either, or use a method like sticky sessions.

Here is a thought, what if we combined the rapid development of say Grails into this architecture? Instead of accessing the domain objects via Hibernate, they were populated from JSON or XML as needed? Or have simple coarse grained domain objects used for display purposes, again populated in controllers or services and passed on to the UI? Graeme, Guillaume or any other Grails/Rails guru out there have a comment on that? I know it is technically feasible — such as the S3 API for rails — but does it make sense?

So, Can It Be Done

I’m sure the DBA’s among you will protest and say that I’m forgetting about feature A,B,C,D…Z that a RDMBS provides. Yes I know about relational integrity, data integrity, yada, yada, yada. Yes they all have their place and usefulness. I am not denying nor forgetting about those features/benefits. The point is are they absolutely needed for these two scenarios?

For the object fanboys (and yes I love OO as much as the next developer), that need can be satisfied by caching domain objects and running queries on them like the JXPath method I mentioned earlier. One could also make the argument that DOM is an object model, a generic one, but one none the less.

Has anyone built anything like this? Any other thoughts?



Don’t miss anything, subscribe!
1 Total TweetBacks: (Tweet this post)
  • : RT @DarenBBC: Isn't it cool to read how others think of us in the #UK ? Again well played @DirDigEng for Data.gov.uk http://bit.ly/4vQV ... 01/22/10 04:10am

Did you enjoy this post? Why not leave a comment below and continue the conversation, or subscribe to my feed and get articles like this delivered automatically to your feed reader.

Comments

[...] Original post by Thinking Outloud and software by Elliott Back [...]

You probably are already aware of this, but if you restrict your XPath to forward-looking (axles?), you can use SAX. For python, you might be interested in ElementTree (which is somewhat anemic in it’s XPath support); you can always build your own — which is probably boring.

Thanks for the comment Luis. I haven’t seen any examples of using XPath against a SAX parser, but then I haven’t had to use one in quite some time. I certainly don’t want to write one either!

Discarding the database isn’t necessarily of great benefit, but discarding the idea of writing directly to the database — and all that it implies — allows you a tremendous amount of freedom.

In other words, if you eliminate the guarantees that the user’s change will always be visible instantly, you open up an enormous amount of freedom in finding alternative solutions.

If you queue “write” events up, either on a local-to-the-web-server database, or a log file or some such, and then process those asynchronously into your data store you can achieve the goal of not having a central database bottleneck (single point of failure) quite easily. It also makes it much easier to get around the lack of transactions — you can cheat and use a database to act as a central locking authority for locking individual files or resources — it’s not used to serve web requests, just used by the back-end for updating things.

Don’t be afraid of a hybrid approach where entity data that is searched for only by (or primarily by) some natural key (id, email, whatever) is stored in the filesystem (or S3) but a summary is kept in a DB (and replicated out to web servers using a one-way replication scheme, like MySQL has — sadly, Postgres’ Slony is not a good choice for this as it exhibits N^2 properties) for purposes of performing queries.

Honestly, I wouldn’t recommend going down the rabit hole of using XPath for actually *searching* for stuff. Doing so implies either that you have many entities in one file, which means you have to parse much or all of the file just to display one entity (blech!) or that you’re going to query a bunch of different files, which implies a lot of file ops (and the filesystem doesn’t scale better than a database in terms of concurrent usage, for many of the same reasons).

Use the filesystem or S3 for the common database pattern of find-single-entity-by-PK, or find-group-of-entities-by-FK but there are plenty of other options for search (Lucene and other search engines, databases, etc).

-JF

Thanks for the comment Jon. I’m really thinking of trying this out and possibly using a message queue for the write events, much like you mention.

Good point on the XPath. I wouldn’t use it to ‘query’ so much as to get by a certain key. Going this route I would most likely use a Lucene based search engine (actually probably use the Solr project which is Lucene based). That would return me a list of IDs that match the query from which I could either get one at a time — probably expensive from S3 — or from larger groups of files via XPath or something similar.

Then again, I recently got an email about a plugin for MySQL that uses S3 as the storage system which seems intriguing.

I think that the style of application to which this technique would be applicable is very small. I would prefer to see a distributed database be developed that works on top of S3. That way there is no need to discard traditional database development but still get scalability of utility computing architecture.
Something like the version of MySQL that stores data on S3 coupled with Hiberbate Shards would be what I would prefer….

http://fallenpegasus.com/code/mysql-awss3/
http://www.hibernate.org/414.html

There are plans in the works for building both a distributed MySQL cluster for EC2 and there is also a plugin for MySQL that uses S3 for storage. Either of those solutions has the potential to really help those applications that really need a relational database. Where I was going with the concept was to question whether we should always use a relational database for storage when there are other options available. RDBMS’ are so common that we tend to use them without any real regard as to why we are using them. It has been more of a ‘because that is what you do’.

[...] Frank Sommers discusses an idea presented by Robert McIntosh about building a high volume application without a RDBMS. The idea itself is not new, I have seen references to scalability problems converging towards the database. But the details with which Robert McIntosh tries to achieve some advantages of the database, like indexing, through other options are engaging. Again, SQL is wonderful for queries, especially dynamic queries. This could be countered with using either XPath style queries or a search engine like Lucene, or even a combination of the two. Yes, yes, nothing really compares the power of SQL for query capabilities and I know that. The point is that it would really depend on the kind of queries needed. If you are not doing analytical queries and really only need “get object where property is like X” style queries, then other methods can provide that. [...]

There’s a far easier way to scale. First, partition your data by the major natural search paths (geography, last name, subject, etc.) and then back-end the application with an object-oriented database. If you want data distribution to be handled for you, look into something like Intersystems Cache database.

The thing is that for a lot of truly large scale usage as is seen on successful websites, conventional RDBMS have the wrong model. Bosworth says it best:

http://www.adambosworth.net/archives/000038.html

There are a lot of good suggestions here. Some key points are to consider not using an RDBMS to drive website display, but rather consider storing in an RDBMS then publshing to a read-only system. The read-only system could also be a DB engine, but one optimized for mainly serving up blobs. A file system sort of looks like that, but Yahoo uses MySQL and Amazon uses BerkleyDB (now owned by Oracle).
One suggestion was to send messages instead of writing to a DB, but many user-oriented apps would benefit from having a transactional ‘edit’ portion separated from a ‘search and serve’ caching system – the messaging would happen from database writes, either homegrown or using replication to slaves.

The suggestion for partitioning is also valuable, but be very very careful about choosing the key to partition on – it should never change. People change names, emails, locations all the time – you want to avoid moving data between partitions.

The replicate to a read-only db is rather common, and one could argue that you could accomplish this withing MySQL without having to actually replicate since MySQL’s default engine is optimized for reads anyway. Replicating would distribute the load however.

I’ve seen how eBay partitions their system and it is pretty slick and complicated. As for keys, this is one of the reasons I don’t like DB generated keys.

[...] There’s been a lot of chatter recently in the blogosphere about the technical direction of the database. This discussion has been ongoing for some time and dates back to at least Bosworth’s utterings. [...]

[...] Scaling Without A Database Before I wrote up an article entitled “Scaling and Uptime”, I came across another article by Frank Sommers entitled “Scaling Without A Database” which is well worth reading. It is a take on another article by Robert McIntosh entitled “Building a high volume app without a RDMS or Domain objects.” [...]

Although I’m a database consultant (and make a living from advising clients on appropriate use of an RDBMS, so this article was an interesting read.

I agree with Jon Frisby’s earlier comments that discarding the database entirely isn’t necessarily a good thing.

For large systems like the ones mentioned, each technology has its own place.
- File-system storage and storing multiple copies of data (stored initially by a natural key) are a good way to start.
- Large-scale caching systems will read-only replicated copies of the database (or appropriate sections of it) also have their place.
- However, even in these situations, RDBMS systems still offer advantages such as proper transacional locking on concurren access (perhaps of configuration-settings or financial management)

Many articles that I’ve read today seem to start by suggesting that their particular design paradigm is (or could be made) applicable as the solution to too many problems.

The successful systems seem to be the ones that don’t try a “one solution fits all” approach, but instead only use RDBMS systems in appropriate places, making the bast use of caching, queued-updates, and replication, using each technology to its own advantage.

Thanks for the comment Steve. I completely agree that RDBM’s have lots to offer and you mention only a fraction of them. My thoughts were along the lines of those apps that don’t need the things that a RDBMS is really good at, like transactions. Databases can be good for caches (such as MySQL’s in memory tables and such), and other things that can be done with other systems.

relational databases are just so common these days that I was curious about other alternatives.

[...] I’ve been investigating the Amazon S3 service for while now and even opined about building a scalable application that used that service for data storage instead of a relational database. In my article, Building a high volume app without a RDBMS or domain objects, I talked about using a relatively simple flat file format such as XML to store the data in S3 and combined with the right kind of caching, have a reliable, performant and scalable application. [...]

Many good thoughts in this thread, interesting to consider in light of how Digg and other similar sites are scaling etc. I think that assuming no db is a great formalism (see where it takes you and all that), but not the whole picture. In this post I start to think down the “this is good, what else might help” parth a bit.

Thx for exploring this point – it’s definitely time to figure out how to scale the both the data layer and the apps that depend on them cheaper & easier.

[...] As Frank Sommers discusses in this post and Robert McIntosh contends in here, much can be done for apps like Digg without even thinking of the database. While their comments start along the right path (even though I don’t agree with all of their observations), they necessarily pull up short of what’s possible. You may be wondering why I say “necessarily pull up short” … and that’s definitely a fair question. [...]

One other issue with this setup from a more practical perspective – the choice of S3 itself carries some potential negative consequences with it:

* It *does* have outages from time to time. If you’re using it as the backing store of a high-volume web app, then when it goes down your app goes down. Probably best not to tie your site’s reliability to AWS’s. Most web companies that use S3 (e.g., SmugMug) use it as backup or “cold” storage for that reason.

* There’s propagation latency inherent to S3. So if one of your EC2 instances stores something to S3, other instances might not see it for a while until it propagates through.

Hello,

Your RSS button seems kinda tiny. Can you make it a little bigger?

Thanks,
Joe

Hi guys!! This is my first website by my self, and i confused that is it good or not made by wordpress or Joomla,wholesale new orleans saints jerseys, i want to choose one 4 me,and give me some advice.Thank you!
http://www.sportsjerseysshop.com/

what it is making the site tick all without limiting content and effectiveness.I have spent some time to eventually stumble on your blog post about this topic. Great work.

It said that jeans can match with your every outfit perfectly. And it is loved by both men and women for the endurance and practicality. True religion is one of the high-end jeans in the United States. The true religion jeans dominate the field of jeans. The true religion sale store online provide you with many kinds of discount religion jeans.

This is a content I like, I think you must have spent a lot of effort to prepare, very grateful, yes, yes, I think we can communicate with each other via the Internet to our common interest in the topic Maybe we are separated by great distances, it is advances in technology make it possible. I will always care about the content of your hair. Thank you!
gucci sunglasses
high heels

For both of the scenarios I’m thinking of, the hardware architecture would be very similar and based on Amazon’s Elastic Cloud and S3 services.

thank you for tharing.

Great article, I think you covered everything there.

Great ideas need landing gear as well as wings.

href=”http://www.chaussreairjordanpascher.com/100-chaussre-air-jordan-defining-moments-pas-cher” title=”Chaussre Air Jordan Defining Moments Pas Cher”>Chaussre Air Jordan Defining Moments
cheap jordan shoes,cheap jordansJordan Sneakers,cheap jordansnike shoes,jordna shoes FAQsPrivacy PolicyLooking back Chaussre Air Jordan Dub Zeros
at the years Air Jordan hasJordan the Chaussre Air Jordan Flight 45
opportunity to major league games

learn french

I think you covered everything there.

every man has his weak side.

I love such features, they make blogging to fun and loveable.

Superb. It’s the same here in Sydney. Can be remarkably frustrating, but that’s how it is in this day and age.

Love understands love; it needs no talk.

This article is very realistic, reflecting social problems, it can give you about some social experience, this is a good article, the article highlights the point of view, clear, makes it easier to understand, this is a good one start, if you are not a rich social experience, and this is very important to you, thank you!

Thanks for your sharing,I will pay more attentions to your blog.

July Thirty (Xinhua) — This particular language Chief executive Nicolas Oakley Frogskins sunglassesSarkozy will be dealing with willing competitors inside subsequent years presidentiamonster dog oakley ducatil political election since rivals replicas oakley sunglassesfrom diverse functions announce for

cheap puma shoes sale

I’m so interested in this topic. It’s very informative.
http://www.nfljerseysmalls.com

nice sharing article..thanks for the post.

Thank you for sharing this article.It is great! There are some information which will help me very much.oakley sunglasses
oakley

Imagine the greatest athletes on the planet, such as Lance Armstrong or Bruce Irons, and try to understand their Cheap Oakleys commitment to be at the pinnacle of their chosen sport; only now could you begin to grasp the demands they make to ensure Oakley Glasses the equipment they use is instantly reliable, instantly unbeatable. It is these very athletes that trust Cheap Oakleys eyewear with the protection of their vision as their simply is no rival. In this collection you will find Oakley Outlet sunglasses that are lightweight, shockingly revolutionary and astonishing in terms of their lens quality and frame comfort. This is probably the greatest collection of sporting eyewear on the planet and you have the chance to purchase into legendary sporting eyewear and understand why Oakley Sunglasses On Sale is simply the best available.

Welcome to buy Timberland Boots on our website, Timberland Outlet online store provides you kinds of styles timberland shoes to choose.

Nice post

seo company

oakley replica sunglasses
replica oakley

[URL=http://www.replicaoakleymarkets.com/]replica oakley sunglasses [/URL]
[URL=http://www.replicaoakleymarkets.com/]oakley replica sunglasses [/URL]

I would like to thank the author for this marvelous efforts .[url=http://www.newerahatstimes.com/Monster-Energy-Hat_98.html]Monster Energy Hats[/url]I appreciate your efforts in preparing this post.[url=http://www.newerahatstimes.com/]Adjustable Hats[/url] I really like your blog articles.

I’m glad I got to read this article. It would seem we see eye-to-eye on much of this topic. I’m adding this to my favorites.Tommy Mens T-Shirts

In many cases, we are always innocent, always chasing the surf in the future, the happiness of reverie in the distance. Naive after we discovered the very far future, endless reverie, we have designed the most perfect way of life, very few had come to the place. So we know, the experience is real, is his own, imagined as a cloud, only empty dotted heart, can not melt in life.

[url=http://ebayhandbagsoutletstores.com]handbags for less[/url]
[url=http://onlinecoachfactoryoutlets.com/Coach-Handbags-c-1.html]coach handbags[/url]

I totally agree with it. Thanks for your opinion. I like fake watch well and someone is looking for. People usually prefer when they visit some Replica watch. In some areas, people like to wholesale watches. Certainly, designer watches are a good way to earn money.

I love that all of the fragility of a flower opening is captured, helping us appreciate black nike shox what goes in to one little bud opening to the world. It’s simple, it’s sweet, and I do believe nike shox torch this morning meditation is a wonderful start to the day, no matter what the weather outside the window.If you are lucky enough to have a perfectly sunshiney spring day where you are, watch anyway. These stunning videos can only make it nike shox mens shoes even better.

Golfers used to set the standard for a hole bogey to finish a number of holesVenezuelan President Hugo Chavez on March 28 speech on national television that the U Through nearly 14 years of development, Qingdao International Golf Club have become a prestigious regional club In addition many cases, it is difficult to get to compete on equal terms, as long as we can get the same conditions, we do not difference than foreign designers, as can design a good course workS help

Nike can be an iconic brand using a big market share worldwide.nike air 24 7is the fashion shoes in 2011, it has been attracted most people.It is always a treat to receive such an iconic silhouette like the Air Max 24/7 in a clean and simple colorway. The shoes has already been had sold out concerts on various websites. It definitely has some qualities which are irresistible to prospects.This year the NBA championship has been won by Lakers, ending at the Staples stadium, and then the other significant event was a no price agent contract battle, the attention received by the battle is absolute a lot additional than the championship. This year, the 1st signs hanging star who holds the most attention is surely Lebron James. But to fans, his newest personal sneaker shoes buy air max 24 7 is a lot far more expected.

In Summer 2011, you can expect at least the following four colorways to drop: grey/black, black/blue, white/orange and black/green.Check out more pictures after the jump, and let us know what your thoughts on air max 24 7 2011are.

air jordan 5 is the first style in the air jordan line to have a clear rubber sole.The soles gave the shoe a whole new and unique look. Some elements were the same from the nike air jordan 5 Vbut the Air Jordan V’s most distinctive feature is arguably its reflective tongue.
air jordan 5 fusion is really fantastic in appearance.The Nike Swoosh is removed from the panel.The laces are made of cotton and with an innovation design of lace lock.The nubuck vamp of cheap air jordan 5feels so good.The high quality and stylish designs are attractive to people all over the world.

I think this is interesting and do not see posted often. This is great information. I feel strongly about it and love learning more on this topic.
http://www.Fake-replicaoakleys.com

Shopping is the best place to comparison shop for Coach Handbags. Coach Outlet Stores are selling imported brand new 100% authentic and genuine Coach Handbags.Coach is the leading global organization dedicated to advancing the coaching profession by setting high standards, providing independent certification bags.

Our online Juicy Couture Sale is consistent quality to customers as the first professional production, with professional technical staff and QC.2011 new style Juicy Couture Bags for latest fashion women for cheap on our juicy couture outlet,cheap for sale online store,pay by visa.

A man of words and not of deeds is like a garden full of weeds.

i am happy to read your post,thank you.

shox clearance

Your article very good, I like, buy fake oakleysthank you for sharing, I hope you write a better article, fake oakelysI will continue to concern. fake oakley sunglasses Also thank you for your attention. I want to know the layout of the you ever considered change your blog?

Thanks for your sharing!
New Era Hats
http://www.likehats.com

good

Your article write very well.

I am very interested in your blog, thank you for sharing.Shox R4 featured is perfect for wear, for running, for walking, for sports and casual.

I’ve been looking for a new pair of glasses. Might have to give these a try.
cheap prada sunglasses
fake prada sunglasses

Please, [url=http://www.wholesalesreplica.com/New-era-hats-c679.html]59 fifty hats[/url]as you gain information, [url=http://www.wholesalesreplica.com/Jacket-Coat-c642.html]wholesale jacket[/url]please update this blog with more information.

There are a lot of motivating views and opinions. I think that you certainly discovered an significant fact…

pas cher supra chaussure,Supra france,supra shoes,supra footwear,supra skytop,supra chaussure:http://www.pascher-supra-chaussures-fr.com
Blanc Supra Dixon Hommes Chaussures:http://www.pascher-supra-chaussures-fr.com
Bleu Supra Dixon Hommes Chaussures:http://www.pascher-supra-chaussures-fr.com
Gris Supra Dixon Hommes Chaussures:http://www.pascher-supra-chaussures-fr.com
Noir Supra Dixon Hommes Chaussures:http://www.pascher-supra-chaussures-fr.com

Ferragamo outlet online store provides great ferragamo mens shoes and ferragamo handbags for men and women.

Fake oakley sunglasses[oakleyssunglassesreplica.com]Thank you for you post,it is very good Replica oakley sunglasses[oakleyssunglassesreplica.com]

What kind of mood to see the article.
http://www.Fake-replicaoakleys.org

[url=http://www.coast-dress.net/]fashion dress[/url] very useful and interesting.

Thanks for your infor

[url=http://www.coast-dress.net/coast-dress-cocktail-hour-c-5.html]coast clothing[/url] Thank you for your sharing

[url=http://www.coast-dress.net/coast-dress-races-c-8.html]dresses sale[/url] Thank you for your sharing.

Thank you for sharing it ! Very nice..

Nice post.Thank you for taking the time to publish this information very useful!

The new post of your blog is defintely stunning![url=http://www.hats-wholesale.net/New-Era-Hats-Series-c632.html]New era caps[/url]I enjoys your blog quite a lot and at the same time, gain great benificial from that.[url=http://www.hats-wholesale.net/Sunglasses-Series-c633.html]Cheap sunglasses[/url]They really remarkable.Come one and take care!

Thank you for taking the time to publish this information very useful!I’m still waiting for some interesting thoughts from your side in your next post thanks.http://www.paylessnfljerseys.com

This really answered my problem, thank you!
new era hats
http://www.hats-world.com

M Moncler Netherland Ondanks de economische neergang is in een, dus veel companie hebben uitgeschakeld, Moncler jas maar Moncler is nog steeds in een goede staat met 50% omzetgroei vorig jaar, De belangrijkste reden is dat de Moncler veel trouwe aanhang, die is een grote schat en garanderen heeftde developent van Moncler.Moncler kleding is iets hebben aangepast aan elke ppeople drukke lifestyle.The CEO en creative director van Moncler, zei: Moncler Dames Jacks “We willen ook Moncler kostbare erfenis te vinden, onze inzet is om te innoveren Moncler voor Dames bergsporten merk, dat is gesticht in de 20e eeuw, 60jaar.”

thanks for sharing and i get some tips form the post

cozy, comfortable, warm and moderate fall and winter scarf is absolutely new era mlb hats things. The designers this season are also under the foot work, so the traditional scarf, scarf also magically transform a variety of magical method. Long scarves in a single product from a number of Win, attracting everyone’s attention. ,

hi wats your mspace page

Womens Ugg Boots I have a letter here from a young man who holds a diploma in forestry.Discount Uggs Boots He wants an extra ten pounds a year on the strength of it, but it is vision I need, Ugg Outlet Mr Pennyfeather, not diplomas. I understand, Cheap Uggs Boots On Sale too, that you left your University rather suddenly. Now   why was that?’
Brand Dress This was the question that Paul had been dreading, and, true to his training, he had resolved upon honesty.

thanks for sharing and i get some tips form the post

Thank you for your effort, very glad that you gave this to us. It’s some pretty great and valuable reading.

The article is worth reading,Nike Dunks I like it very much.SB Dunks I will keep your new articles

Cheap Louis Vuitton Handbags
http://www.bag-onsale.com
New Era Hats
http://www.likehats.com
Top brands handbags
http://www.wholesalebrandshandbags.com
Wholesale Sunglasses
http://www.likehats.com/sunglasses-c727.html

I just book marked your blog on Digg and StumbleUpon.I enjoy reading and brwosing youe site .

I’m still learning from you, but I’m improving myself. I definitely liked reading everything that is written on your blog.Keep the information coming. I liked it!

I really favor in your blog!Thanks for sharing with us.When you choose a pair of nike clearance shoes,you must pay attention to their quality,whether it can protect you make you heath.shox clearance can promise you.Welcome to our online nike clearance store.

nice post

The designers this season are also under the foot work, so the traditional scarf, scarf also magically transform a variety of magical method. Long scarves in a single product from a number of Win, attracting everyone’s attention.

Apparently while relational database systems remain the dominant choice for both transactional and analytical applications, newer structures are competing with RDBMSs in data warehouse applications including column-oriented and correlation database systems.

Aw, this was a really quality post.

This post bring a big surprise for me.I like those shell house.And i hope it is become the truth one day and i can live in it.It is a art.

Late into the night, and was so drunk on the shoulders of friends, barber staggered came out from the bar.
He said to his friends, “you remember, no matter what happens in the future, for example, your house is on fire! Run away, and your wife there, you children’s sick, you come here, to me, the elder brothers son said of, I give you shave, and will not accept a penny……”

love that idea jeff. bringing the digital into the physical world is also a nice way to introduce people beginning to get their feet wet in tech and SM to what all these things actually mean. really nice, simple idea. also like the fact that you’re using pen and paper — still indispensable tools. thank you for thinking.

clean,I really enjoy reading your blog popular distributed: a good article waiting for you!,clean,I really enjoy reading your blog popular distributed: a good article waiting for you!,clean,Hi buddy,clean,Hi buddy,and I like it,Hi buddy,and I like it.Hi buddy,and I like it.your blog’s design is simple,and I like it

clean.I really enjoy reading your blog popular distributed: a good article waiting for you!,clean.I really enjoy reading your blog popular distributed: a good article waiting for you!,clean.Hi buddy,clean.Hi buddy,and I like it,Hi buddy,and I like it,everything tastes great.

even people who want to heaven is not willing to die to achieve through their purpose. But death is the end of each joint, no one can escape.

I am very pleased to read your article, very interesting. I like this article, thank you for sharing …

I am very pleased to read your article, very interesting. I like this article, thank you for sharing …

This article was written well. This is an interesting twist of history in many different ways. These photos will give us clues, but I guess we will never know the truth. Thank upstairs information.

To the outward eye, never had a girl cause to he miserable. She was undoubtedly the belle of the barbecue, the center of attention. The furore she was causing the men, coupled with the heart burnings of the other girls, would have pleased her at any other time.

I will be really thankful for the author on this post to make this lovely and informative article live to put us. We actually appreciate ur effort. Maintain the excellent work. . I had been extremely pleased to get this web site.I want to to we appreciate you a great read!! I definitely enjoying every part of it and I have you bookmarked to check out new belongings you post.

one Karen Millen Sale day, when you look back, you suddenly realize thatit’s always light, light.

heaviest love must grow up withthe time.In this Karen Millen Dress world, only those men who

Dresses sale emotion; if she is not emotional, she needs reason; if she is not reasonable, she has to know herself Karen Millen Dresses clearly. coz only she has is misfortune.

in collaboration with his creative firm, fragment design. Although the Dunk Hi

Here are all you want, take a look
nice post it looks delicious your article is skill
Ugg has been considered as a fashionable brand and spread all over the world.

Don’t part with your illusions . When they are gone you may still exist , but you have ceased to live. (Mark Twain , American writer)

I would name your blog the dreamland! While Santa knocks at our door just once per year, you blog is open the whole year – wow!

Youth in the struggle to show the beautiful, youthful beauty is always hard to show canada goose jacket in her struggle being. Like the eagle is to show the beauty of the wind blow the rain in his stroke, such as flying in the soul of heaven, is with our youth, why not overshadowed by Yong Rui cowardice, to seek security ahead overwhelming, raised the sail it hard! Constantly in rough seas ahead, show us the magnificent sub-generation youth canada goose parka and strength, let us just the same as fighting the sky eagle it! Song of Youth Young let out high-spirited melody, let’s declare a dazzling light.   
Compose no regrets youth struggle in life’s long road, although only a short youth, but when you look back at the white-haired, you will find youth who have still moving in the memory of shining glory. Regrets that the youth is the pursuit of each of us canada goose sale , we only have a good grasp of youth every day, constantly fighting the rapids in flood, we can proudly say: “My youth is regret!.” http://www.canada-goosesale2012.com

Thanks for your infor

I must say, the wholesale nba hats available this season is making my tisa hats and my wholesale dc hats cry out in hats! I think cheap winter hats wholesale could be one of the hottest shoes.

Perk up established common will become cooled using a a terrific way to through manufacturers like Outside Look. Without a as few as money 20 well you can acquire an important propensity Lawn Learn head wear. You’ll find nothing as you all on your own common lower price fledgling age [url=http://wholesale-hats-2012.com]cheap winter hats wholesale[/url] Top and also a coating due to the fact change for the working weather conditions. If you decide on, think of making use of the idea head wear Exterior To endure Bombshell Container all on your own however the Top blood vessels holding denim jeans , nor [url=http://wholesale-hats-2012.com]tisa hats[/url]More than a wind resistant, more sleek sort of the typical box cover, the idea jacket will take slightly femininity, elegant and elegant hear sadly mindful, is to find be careful about your hair styling right away.

jackets, which make you gaze fat and short. These jackets are designed exceptionally to provide a fashionable, sophisticated look, even though with the exact same time, being

said. Brozek said counterfeiters are getting better at producing real looking fakes. “It does shows they’re getting a little more sophisticated. It shows they’re spending a little more effort in certain areas. They are trying to duplicate cosmetically even more

Office supply stores and the internet are great places to get started on your fine pens quest.

I am very much pleased with the contents you have mentioned.I wanted to thank you for this great article.

Marathon team staff said, at the beginning of the team solution is his chickens, “we bought himself more than 20 only in the backyard where wuji, keeping free-roaming.” The staff said. Be worth what carry is, the leadership of the national team with the average coaches and athletes together, rolled up their sleeves personally stood chicken feed. Only on a few chicken, affirmation can’t satisfy the team’s body requirement, the leader TianXiaoJun and captain wang bin after much about, in lijiang affiliate ninglang yi nationality autonomous county of the jinsha river side can buy original.

Hello, friends! Welcome to http://www.nicerjerseys.net . We offer the nicer jerseys, caps and so on. We have updated a lot of jerseys such as: NFL, MLB, NBA, women jerseys and youth jerseys. If you pay by Western Union, you’ll get 10% discount. We can give you the best discount. If any questions, please contact me freely. Thanks a lot for looking around and ordering.

Sorry, the comment form is closed at this time.