Building a high volume app without a RDMS or Domain objects
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!
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
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
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
[...] 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.
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.
[...] 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.
[...] 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.
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/
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
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
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!
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
I’m so interested in this topic. It’s very informative.
http://www.nfljerseysmalls.com
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.
oakley replica sunglasses
replica oakley
[URL=http://www.replicaoakleymarkets.com/]replica oakley sunglasses [/URL]
[URL=http://www.replicaoakleymarkets.com/]oakley replica sunglasses [/URL]
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.
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
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
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
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.”
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. ,
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.
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
http://www.nbajerseysoutlet.com NBA jerseys Outlet
http://www.paylessnfljerseys.com/ Cheap NFL Jerseys
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.
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
Good post.Thank you for your share!
http://www.buy-shoes-bag.com
http://www.bag-onsale.com
http://www.likehats.com
http://www.wholesalebrandshandbags.com
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.
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
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.
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.


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