That might be a bit strong. Depending on the
nature of the in-image data, it might not be too hard to export
the data in some neutral format which could be imported into a
newer version image. YMMV.
Cheers, Bob On 4/18/11 8:00 AM, Philippe Marschall wrote: you'll also never be able to switch to a new version of your dialect _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
2011/4/18 Bob Arning <[hidden email]>:
> That might be a bit strong. Depending on the nature of the in-image data, it > might not be too hard to export the data in some neutral format which could > be imported into a newer version image. YMMV. It's not possible for SqueakSource, not without serious effort. The last time it was done "interesting" issues popped up like the object format of Timestamp changed. And supposedly fast import/export mechanism like SmartRefStream become unusably slow. Cheers Philippe _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Philippe Marschall
ok, then our dear squeaksource is an anti-example on that too
On Apr 18, 2011, at 9:00 AM, Philippe Marschall wrote: > 2011/4/18 Janko Mivšek <[hidden email]>: >> Hi guys, >> >> Let me support Nevin claims strongly with my the same experiences with >> image based persistency. Anyone just enough pragmatic and with a bit of >> probability calculus can soon discover, how right Nevin is. >> >> I know that from my experience, ok, with VisualWorks images, which >> snapshot every hour. One such sole image hosts 50+ sites and in last 8 >> years without any loss of data. We have just few crashes (around 2-4 per >> year) because of DOS attacks, and that's all. >> >> It is true that there is 1 hour window to loose data and that we had >> luck loosing nothing during those few (mostly nightly) crashes, but when >> I compare that with horror stories of friends using, say MySql... >> >> Of course such image is backup every hour, every night - just plain >> usual safety measures therefore. > > Everyone how thinks image based persistence is a good idea please look > at SqueakSource. Not only do you suffer from the impacts of the > non-transactional behavior (yes, data got lost several times in the > past, the image hangs for quite some time when saving) you'll also > never be able to switch to a new version of your dialect and you are > limited to one image doing the processing. > > Cheers > Philippe > _______________________________________________ > seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Philippe Marschall
On Mon, Apr 18, 2011 at 3:42 PM, Philippe Marschall
<[hidden email]> wrote: > It's not possible for SqueakSource, not without serious effort. The > last time it was done "interesting" issues popped up like the object > format of Timestamp changed. And supposedly fast import/export > mechanism like SmartRefStream become unusably slow. I must say that I am also one who is very uneasy when my data is stored in the image, including my pier based blog. If procedures to export and import data are not seriously tested, they tend to become slightly unworkable when situation arises. If they are thoroughly tested and maintained, why bother with image based persistence? Btw, there was a quite large data availability incident with DabbleDB that lasted for weeks and affected many clients, does any one know details of what caused it? Davorin Rusevljan http://www.cloud208.com/ _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by NorbertHartl
"But you cannot scale horizontally just simply" Not working the way Nevin does. But that's not the Nevin's case. He's saying this "yes is one image, yes if it crashes we need to rollback, yes that architecture doesn't scale horizontally so what? is enough for the business it get us there just fine." (Nevin please correct me if I'm wrong) Our case is different. Image persistence didn't fit our needs. We really needed to be able to scale horizontally. The way we found is to treat images like servers. Any user is be able to be attended by any image. That's how you do it. Sticky sessions is a non issue once the httpd is configured (and properly balanced). About being forced to use a central data storage, that sounds plain wrong. I mean at design level. To be able to scale horizontally any time you have to design in a way that doesn't generate points of contention. How you design evading points of contention is an art. You need to find your most convenient way for your application. In our case we used one object database per group of people. Lots of groups, plenty of room for everybody's activity. About memory size in images, we monitor the images and restart them as needed. The worst thing that can happen in an image restart is that you see your last request failed and in your next request, the http balancer sends you to another image. This is ACID so things gets done or do not. Nothing is lost. That could happen with any image in any server (hardware). About oversimplification and *most* scenarios: I'm sharing with you guys some details on how we got this thing done. What I'm not doing is trying to make people decide on "this" or "that" like some people suggested. Who the f* will invest or employ a guy deciding architecture like that? I'm making my case because is working and I think some could find it interesting or useful. I thought it was clear but... hey, I'm counting with the intelligence and critical thinking of the reader. Always. Seriously, who decides the architecture of a startup in what he/she reads on a f* list? Do your homework. If it f* works, then it does. If it doesn't, then it doesn't. with love On Apr 18, 2011, at 3:19 AM, Norbert Hartl wrote:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Sebastian,
I personally was just fishing for deployment scenarios because I think it is important and could be added in some documentation. And that's why I was inquiring into depth. I think it is very valuable to know that you can just use image persistence if you meet the following criteria: Your model fits completely in the memory and concurrency is not that high. Or your model can be separated into distinct parts that you can spread over multiple images. Or you create some logging of the transcractions that you can pull back in if you experience a crash. Or you can rollback without much problems and that is feasible because crashes do not occurr that often. I just didn't get Nevins approach. On the one hand he has everything in his image on the other hand he can "pull back in data" after experiencing a crash. That doesn't fit in my head. Nothing more I wanted to know. Your statement that you can just simply scale is not proper without declaring the assumptions. And I would just want to hear your approach so it is documented as well and might enlight a lot of people like stubborn me. Am 18.04.2011 um 15:59 schrieb Sebastian Sastre: It is not judging about architectural decisions. If it works it is fine. Who wants to argue? That's what I meant by saying domain partitioning. To me it doesn't matter if it is partioned in domains or access layers. If you think towards social networks your contention point free design might be hard to work out. Well, that must be another approach than the "object database per group of people". Again, I just asked because what you said wasn't clear to me. This confirms I'm someone that "find it interesting or useful". But in order to let me understand it you might need to answer some questions. If this is not what you want I can take it that way. You are right and the outcome of that is often a question. I don't know. But I could imagine there are some people reading this list that are interested in exactly how you did it as an example of how things can be done. Most people will have a n-tier architecture as a background. It is hard to believe for them that you don't need it. And here you go and explain it. Than they have to decide if you are a genius or a jerk. That's up to them. Agreed. piece, Norbert
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
On Apr 18, 2011, at 11:36 AM, Norbert Hartl wrote:
The documentation is the right place to clarify those ideas. The reader will know if it fits or not. I would add a disclaimer saying that things can go wrong and a secondary way to dump and import the object graph is emphatically suggested.
I don't know how Nevin does the "pull back in data" but if you wan't an idea to start visualizing that happening think a SIXX dump being read in a fresh image. There is even a guy that worked on a way to do that streaming the XML to dump big data. Another idea is ReferenceStream.
Sure, that's why I've answered the email, to clarify our assumptions.
for social it makes sense to make an odb per guy. The golden dream would be not partition at all but I don't see that feasible. We find out that in our domain one odb per group was a good design trade off.
I didn't get what you mean, that's exactly how it's working for us today. You open an account for your company (group of people) and when you activate it it creates an odb for you. That's it.
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Remember, the primary data I "pull back" is inventory control data. In other words, if the image crashes, the inventory needs to be adjusted for the orders that were placed since the last image save. So, the question is: how is this done? To answer that, please remember that the website sends emails for every order placed. For each order, it sends a total of six different email accounts the order details-- one is an email to the customer with their order confirmation, and five of them are internal Bountiful Baby email accounts used for various control purposes (incidentally, we also run our own email server, so any emails sent to any internal email account never leave our internal network-- not that it would matter, though). For those "control" emails, it is trivial to have the website include a simple URL in the email sent to one of the control accounts that, when clicked, replays the order. So, if the image crashes, I go grab the last backup image (which is usually just a few hours old). I note the timestamp on the backup, and then I look at the orders that were generated since that time. And then a few clicks later-- it's all re-entered. Folks, remember, if your Seaside application is sending emails every time it does something that effects the data in the image, those emails *become* your log history record. And, it is trivial to include whatever URL you want in one or more of those emails to accomplish any kind of data replay you need. So, just grab the last backup, click on some emails, and you are back in the game. It is so darn simple, it's crazy. :-) And it works. Just fine. Plus, I rarely need it, because it is so darn stable anyway. We actually also have a similar interface for our Endicia program for generating shipping labels, customs forms, and package postage. The website includes a different (but simple) URL in the email it sends to the email control account going to the label/postage computer. While sitting at the label/postage computer, folks click that link in the email, and the label (with postage) is automatically generated for that order. All via a URL in the email. And, (almost) nothing is ever hand-entered. Nevin _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by sebastianconcept@gmail.co
> Not working the way Nevin does. But that's not the Nevin's case. He's saying > this "yes is one image, yes if it crashes we need to rollback, yes that > architecture doesn't scale horizontally so what? is enough for the business it > get us there just fine." (Nevin please correct me if I'm wrong) > You are exactly right. And for Seaside, I don't think our case is very unique. Your case sounds quite a bit different, though. Nevin _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Yes because we couldn't sleep if it wasn't scalable like hell yah! by design :)
have fun o/ On Apr 18, 2011, at 2:26 PM, Nevin Pratt wrote: > >> Not working the way Nevin does. But that's not the Nevin's case. He's saying this "yes is one image, yes if it crashes we need to rollback, yes that architecture doesn't scale horizontally so what? is enough for the business it get us there just fine." (Nevin please correct me if I'm wrong) >> > > You are exactly right. > > And for Seaside, I don't think our case is very unique. > > Your case sounds quite a bit different, though. > > Nevin > > _______________________________________________ > seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Nevin Pratt
Am 18.04.2011 um 19:25 schrieb Nevin Pratt: > Folks, remember, if your Seaside application is sending emails every time it does something that effects the data in the image, those emails *become* your log history record. And, it is trivial to include whatever URL you want in one or more of those emails to accomplish any kind of data replay you need. So, just grab the last backup, click on some emails, and you are back in the game. > > It is so darn simple, it's crazy. :-) Thanks Nevin for clarifying it. The emails are the missing link I tried to inquire. That is a really good solution and you have a client for it at no cose: your mail client. Great! Norbert _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Philippe Marschall
Sounds like an interesting problem.
On 4/18/11 9:42 AM, Philippe Marschall wrote: It's not possible for SqueakSource, not without serious effort. The last time it was done "interesting" issues popped up like the object format of Timestamp changed. And supposedly fast import/export mechanism like SmartRefStream become unusably slow. _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by sebastianconcept@gmail.co
Am 18.04.2011 um 19:50 schrieb Sebastian Sastre: > Yes because we couldn't sleep if it wasn't scalable like hell yah! by design :) > > Sebastian, I think you made it bigger then it was intended by anyone. I was just saying that the proposed solution cannot work without keeping external state. An email account with prepared emails is equivalent to a replay log. So you have snapshots and replay logs. That not only makes it a database (an email account is one) but one with a solid approach. I'm glad Nevin clarified it so everybody can see how simple a smart solution can be. To assume things is one choice. To explain it is a better one. At least in my opinion. Norbert > On Apr 18, 2011, at 2:26 PM, Nevin Pratt wrote: > >> >>> Not working the way Nevin does. But that's not the Nevin's case. He's saying this "yes is one image, yes if it crashes we need to rollback, yes that architecture doesn't scale horizontally so what? is enough for the business it get us there just fine." (Nevin please correct me if I'm wrong) >>> >> >> You are exactly right. >> >> And for Seaside, I don't think our case is very unique. >> >> Your case sounds quite a bit different, though. >> >> Nevin >> >> _______________________________________________ >> seaside mailing list >> [hidden email] >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside > > _______________________________________________ > seaside mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Bob Arning
2011/4/18 Bob Arning <[hidden email]>:
> Sounds like an interesting problem. No, it's not. It's not what you want to spend your time on. It's not a problem you want to have. Cheers Philippe _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
How could you know what I want to spend my time
on?
Cheers, Bob On 4/19/11 1:07 AM, Philippe Marschall wrote: 2011/4/18 Bob Arning [hidden email]:Sounds like an interesting problem.No, it's not. It's not what you want to spend your time on. It's not a problem you want to have. Cheers Philippe _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Of course we cannot know with certainty, but generally, given all the other interesting and important problems to worry about, this one seems like a bit of a downer. Sent from my iPhone
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
I guess that's part of what makes it so
appealing. ;-)
Cheers, Bob On 4/19/11 8:17 AM, Boris Popov, DeepCove Labs wrote:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
There's a special place in geek he..^^..aven for folks who enjoy working on these kinds of issues for no good reason ;) Sent from my iPhone
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Ah, but enjoyment *is* a good reason.
Cheers, Bob On 4/19/11 8:33 AM, Boris Popov, DeepCove Labs wrote:
_______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
In reply to this post by Robert Sirois
On Sat, Apr 16, 2011 at 10:43 AM, Robert Sirois <[hidden email]> wrote:
> There's sandstonestone db (with the GOODS backend). Is there a SandstoneDB with GOODS howto? --Peter -- There's neither heaven not hell, save what we grant ourselves. There's neither fairness nor justice, save what we grant each other. _______________________________________________ seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
Free forum by Nabble | Edit this page |