![]() | |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Blatant ad for my latest blog entry entitled "To Whom Should Size Matter?" |
|
http://www.tincat-group.com/mewsings I hope it is a good read. Feel free to leave comments in the blog or by e-mail (or even here). Cheers! --dawn |
#3
| |||
| |||
|
|
"dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154020817.229436.206850 (AT) i42g2000cwa (DOT) googlegroups.com... Blatant ad for my latest blog entry entitled "To Whom Should Size Matter?" The answer, of course, is to whom it may concern. BobJ |
#4
| |||
| |||
|
|
BobJ wrote: "dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154020817.229436.206850 (AT) i42g2000cwa (DOT) googlegroups.com... Blatant ad for my latest blog entry entitled "To Whom Should Size Matter?" The answer, of course, is to whom it may concern. BobJ That's all I get after pouring my heart and soul into it, Bob? I guess when I pick titles like that, I deserve it, eh? Other comments, particularly ones about the topic of the blog, would also be welcome. Agree? Disagree? This should largely be an agreeing crowd, I think, maybe, perhaps, while the relational crowd might have a bone to pick (no pun intended on anything in that last phrase). Cheers! --dawn Do you have any idea how hard that was to resist?? |
BobJ
#5
| |||||||||||
| |||||||||||
|
|
"dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154036743.320661.14210 (AT) i3g2000cwc (DOT) googlegroups.com... BobJ wrote: "dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154020817.229436.206850 (AT) i42g2000cwa (DOT) googlegroups.com... Blatant ad for my latest blog entry entitled "To Whom Should Size Matter?" The answer, of course, is to whom it may concern. BobJ That's all I get after pouring my heart and soul into it, Bob? I guess when I pick titles like that, I deserve it, eh? Other comments, particularly ones about the topic of the blog, would also be welcome. Agree? Disagree? This should largely be an agreeing crowd, I think, maybe, perhaps, while the relational crowd might have a bone to pick (no pun intended on anything in that last phrase). Cheers! --dawn You have to impose limitations on anything that is technological. |
|
If allocation of physical data wasn't a problem, |
|
malloc() in C. In MV BASIC, all variables could be pre-dimensioned with a reference to infinity. |
|
There would be no performance implications with either situation. However, technology has to have limitations and databases are no exception. |
|
What happens when I tell the CRUD services to update unsized field "A" with a continuous stream of characters? |
|
That'd be a lovely DoS exploit that would kill any machine in a few minutes. Even if your "size specification" comes from the client, during a create process, the database still has to physically set and manage the data at a certain size. |
|
If you say: Splt my 10TB update into 1GB field sets and then join them for reads, deletes, and other updates. and then also say Field A is supposed to be 2 characters of a country abbreviation, so error-out when updates are 3 or more characters Then you are contradicting the generic field size rule. |
|
Having said that, you could implement the first and second comments in the same database as long as the phyiscal layer understands when it's allowed to split and merge a "virtual excessive length", versus a real forced length. |
|
So, what's my real take? Yes and No. I think it's a waste of resources to make the physical layer manage "logical" oversized fields for you. |
|
That doesn't mean that I don't think it could be useful in some situations. Regardless of what I think, it's far more effective to do the development research and say field A will never be more than 10TB max and then enforce logical size limitations in the client code. |
|
hmm... Weren't you just stating that you wanted the database to do that for you, in the QM integrity discussion? Maybe I'm confused or mistaken there? If not, then how do you expect to have "physical" integrity checks if you don't strictly define the maximum size of the fields in the first place? |
#6
| |||
| |||
|
|
"dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154036743.320661.14210 (AT) i3g2000cwc (DOT) googlegroups.com... BobJ wrote: "dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154020817.229436.206850 (AT) i42g2000cwa (DOT) googlegroups.com... Blatant ad for my latest blog entry entitled "To Whom Should Size Matter?" The answer, of course, is to whom it may concern. BobJ That's all I get after pouring my heart and soul into it, Bob? I guess when I pick titles like that, I deserve it, eh? Other comments, particularly ones about the topic of the blog, would also be welcome. Agree? Disagree? This should largely be an agreeing crowd, I think, maybe, perhaps, while the relational crowd might have a bone to pick (no pun intended on anything in that last phrase). Cheers! --dawn You have to impose limitations on anything that is technological. If allocation of physical data wasn't a problem, then there would be no malloc() in C. In MV BASIC, all variables could be pre-dimensioned with a reference to infinity. There would be no performance implications with either situation. However, technology has to have limitations and databases are no exception. snip |
#7
| |||
| |||
|
|
You have to impose limitations on anything that is technological. If allocation of physical data wasn't a problem, then there would be no malloc() in C. In MV BASIC, all variables could be pre-dimensioned with a reference to infinity. There would be no performance implications with either situation. However, technology has to have limitations and databases are no exception. snip I(1) think(5) this(4) might(4) be(2) a(1) better(6) response(8) to(2) this(4) type(4) of(2) comment(7),(1) perhaps(7)?(1) |

|
--dawn P.S. Does that make my point clearer or not? (again, I appreciate you preparing me for others who I suspect would share your response). |
#8
| |||
| |||
|
|
"dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154062137.803260.214680 (AT) 75g2000cwc (DOT) googlegroups.com... You have to impose limitations on anything that is technological. If allocation of physical data wasn't a problem, then there would be no malloc() in C. In MV BASIC, all variables could be pre-dimensioned with a reference to infinity. There would be no performance implications with either situation. However, technology has to have limitations and databases are no exception. snip I(1) think(5) this(4) might(4) be(2) a(1) better(6) response(8) to(2) this(4) type(4) of(2) comment(7),(1) perhaps(7)?(1) What about white space. ![]() |
|
--dawn P.S. Does that make my point clearer or not? (again, I appreciate you preparing me for others who I suspect would share your response). Not really. Actually, reviewing your point there makes things even more complicated. Consider a client that needs to talk UTF-8 and ASCII for different data stores. The storage sizes are completely different! |
#9
| |||||||||
| |||||||||
|
|
"dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154092040.980665.107730 (AT) h48g2000cwc (DOT) googlegroups.com... Not really. Actually, reviewing your point there makes things even more complicated. Consider a client that needs to talk UTF-8 and ASCII for different data stores. The storage sizes are completely different! Yes, but you need to pop up a level or two in network layers to the logical and implementation specifications from a developer. Is it necessary or even good for development teams to specify maximum length constraints to the DBMS? We don't have to do it in Pick, right? So it clearly isn't necessary. I can play ball on either side of the team, but I love debates more than just saying "Yes, I agree". This is especially true in regards to theories and application of theories. Review this incomplete RFC if you want more support material for CRUD in MV: http://www.mvdevcentral.com/mv-rfc.txt Then, put on your XML glasses and replace all of the raw ASCII specifications with XML transactions. Either solution works without specifying field size limitations. The underlying remote database connection could be a Perl script that uses Postgres or a service written inside of MV. The only difference there is the fact that when using MV, you won't have to setup the database ahead of time. Write methods can create new items with irrelevant field lengths. So, yes, I do agree in some situations. Unforatenetly, some people here and outside of MV see this as weak, mainly because the data store has no pre-conceived notions of what will be stored. Is that bad? Well, that depends on the business environment. Strict data storage policies may require something unlike MV, simply because it allows you to put _anything_, of any length, in any field. Typed databases prevent this to a fair extent by requiring type and size limitations to be assigned when the database is designed and fields are created. Even though the physical layer is actually managing it all, the logical layer is forced to abide by the rules too. If you circumvent those rules by performing inappropriate updates, then all you are doing is hurting the company and more likely the database too. I'm most interested in learning how I can make the point I'm trying to make and still have people who think like you do, Glen, at what we might call a more technical level, closer to the machine, understand what my point is and maybe even track with the argument enough to see that it might be a good point. If someone who knows and understands Pick doesn't see my point, you can imagine how hard it would be for someone who has only known DBMS's that require and enforce maxlen constraints as specified by developers. So, any clues you can give on whether you understand my point and how I can say it so that you would have understood it right away, are most welcome. So you want to separate the integrity and validation layer from the data storage layer? |
|
Have you considered performance implications? |
|
MV is fast, compared to many databases, because it doesn't have to put each read and write underneath a high powered magnifier. |
|
Your comments on the OpenQM group, regarding integrity, were along the same lines. I still disagree, mostly from a performance stand point. |
|
If you want a 10-piece SOA data service, then I don't have a problem building one or even suggesting technical or theoretical ways to do it. |
|
Don't expect a high-performance database, though. |
|
Each single disconnection from the core inserts a predictable amount of hardware resources and CPU time per transaction. |
|
It's bad enough having to pass each transaction through an in-core filter, much less having to send that transaction off to a distant galaxy(remote server) and wait for some sign of life to return(status code). |
|
Thanks. --dawn Glen |
#10
| |||
| |||
|
|
Glen B wrote: "dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154036743.320661.14210 (AT) i3g2000cwc (DOT) googlegroups.com... BobJ wrote: "dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote in message news:1154020817.229436.206850 (AT) i42g2000cwa (DOT) googlegroups.com... Blatant ad for my latest blog entry entitled "To Whom Should Size Matter?" The answer, of course, is to whom it may concern. BobJ That's all I get after pouring my heart and soul into it, Bob? I guess when I pick titles like that, I deserve it, eh? Other comments, particularly ones about the topic of the blog, would also be welcome. Agree? Disagree? This should largely be an agreeing crowd, I think, maybe, perhaps, while the relational crowd might have a bone to pick (no pun intended on anything in that last phrase). Cheers! --dawn You have to impose limitations on anything that is technological. Of course, but you can make block sizes or select a modulus oand put a limit on the size of all values globally in a way that does not prompt designers to identify a maximum first name length of 15 and last name of 26 (or other somewhat arbitrary lengths). As we can clearly see, there is no particular reason why individual attributes needs to be specified to the DBMS tools with a maxlen specification, right? If allocation of physical data wasn't a problem, Perhaps I should modify it to make it very clear that surely I know that one must allocate computer resources somehow, I'm just opposed to allocate them by requiring a maxlen on every attribute ? then there would be no malloc() in C. In MV BASIC, all variables could be pre-dimensioned with a reference to infinity. I predicted that I'd be told about the fact that computer resources were not infinite, so I probably should have said something to stave that criticism off. I might toss in a line. There would be no performance implications with either situation. However, technology has to have limitations and databases are no exception. I do find it curious that it would not be assumed that I comprehend that point and appreciate you pointing it out because then I'll be prepared for the "well, little girl, it's like this" responses ;-) What happens when I tell the CRUD services to update unsized field "A" with a continuous stream of characters? There is a still a size to a Pick data value even if there is no maxlen defined for an attribute schema. That'd be a lovely DoS exploit that would kill any machine in a few minutes. Even if your "size specification" comes from the client, during a create process, the database still has to physically set and manage the data at a certain size. But it need not do it like a SQL-DBMS does -- it can do it like a Pick database does, without the maxlen specification to the DBMS. If you say: Splt my 10TB update into 1GB field sets and then join them for reads, deletes, and other updates. and then also say Field A is supposed to be 2 characters of a country abbreviation, so error-out when updates are 3 or more characters Then you are contradicting the generic field size rule. Even if field A should be 2 characters, I don't want to specify that size to the DBMS -- it only increases how brittle the software is. Having said that, you could implement the first and second comments in the same database as long as the phyiscal layer understands when it's allowed to split and merge a "virtual excessive length", versus a real forced length. Precisely -- the DBMS, plus any paramters, tuning, file sizing, overflow handling, etc that must happen need not depend on me telling the DBMS how big a first name can be. So, what's my real take? Yes and No. I think it's a waste of resources to make the physical layer manage "logical" oversized fields for you. I take it that it does not sound to you like I am advocating for an approach that functions from a developer & end-user perspective the way that Pick does?? I'm not catching your point on this as it sounds like you were not catching mine. That doesn't mean that I don't think it could be useful in some situations. Regardless of what I think, it's far more effective to do the development research and say field A will never be more than 10TB max and then enforce logical size limitations in the client code. Yes! hmm... Weren't you just stating that you wanted the database to do that for you, in the QM integrity discussion? Maybe I'm confused or mistaken there? If not, then how do you expect to have "physical" integrity checks if you don't strictly define the maximum size of the fields in the first place? Does a system designer/implementer physically define the size of fields in Pick? We describe a display length in the dictionary, optionally, but we do not put a maxlen on every attribute in every file, right? Maybe I'm missing your point -- feel free to try to help me catch on. Thanks. --dawn |
![]() |
| Thread Tools | |
| Display Modes | |
| |