dbTalk Databases Forums  

Size matters to some

comp.databases.pick comp.databases.pick


Discuss Size matters to some in the comp.databases.pick forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
dawn
 
Posts: n/a

Default Size matters to some - 07-27-2006 , 12:20 PM






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


Reply With Quote
  #2  
Old   
BobJ
 
Posts: n/a

Default Re: Size matters to some - 07-27-2006 , 01:44 PM







"dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote

Quote:
Blatant ad for my latest blog entry entitled "To Whom Should Size
Matter?"
The answer, of course, is to whom it may concern. BobJ
Quote:
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




Reply With Quote
  #3  
Old   
dawn
 
Posts: n/a

Default Re: Size matters to some - 07-27-2006 , 04:45 PM




BobJ wrote:
Quote:
"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



Reply With Quote
  #4  
Old   
BobJ
 
Posts: n/a

Default Re: Size matters to some - 07-27-2006 , 05:08 PM




"dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote

Quote:
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




Reply With Quote
  #5  
Old   
dawn
 
Posts: n/a

Default Re: Size matters to some - 07-27-2006 , 09:43 PM




Glen B wrote:
Quote:
"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?

Quote:
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
Quote:
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.

Quote:
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 ;-)

Quote:
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.

Quote:
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.

Quote:
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.

Quote:
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.

Quote:
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.

Quote:
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!

Quote:
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



Reply With Quote
  #6  
Old   
dawn
 
Posts: n/a

Default Re: Size matters to some - 07-27-2006 , 11:48 PM




Glen B wrote:
Quote:
"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

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).



Reply With Quote
  #7  
Old   
Glen B
 
Posts: n/a

Default Re: Size matters to some - 07-28-2006 , 06:38 AM



"dawn" <dawnwolthuis (AT) gmail (DOT) com> wrote

Quote:
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.

Quote:
--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!

Glen




Reply With Quote
  #8  
Old   
dawn
 
Posts: n/a

Default Re: Size matters to some - 07-28-2006 , 08:07 AM




Glen B wrote:
Quote:
"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.
We will just consider them delimiters :-)

Quote:
--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!
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'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.

Thanks. --dawn



Reply With Quote
  #9  
Old   
dawn
 
Posts: n/a

Default Re: Size matters to some - 07-28-2006 , 10:40 AM




Glen B wrote:
Quote:
"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?
Maybe I'm not saying it properly. I want to be able to validate a data
element, such as an attribute that must be an integer between 4 and 30,
let's say separate from writing the record that includes this
attribute. No one using Pick does otherwise. Additionally, I still do
want to validate the information getting written. In the case of green
screens and their ilk, this can be done with validation at the time of
data entry and then we know we have a good value and can write it. In
the case of a rich browser UI, for example, we can validate at the time
of data entry, but someone might greasemonkey the data, for example,
and what comes into the back-end might need to be re-validated. If the
services that write data also validate it (yet again), that is better
than if the DBMS revalidates it -- it is a more flexible approach in
that this service can use whatever the UI uses for validation specs
(perhaps). If there is no need for a revalidation, then surely don't
do it. My interest is in bumping up the validation to the layer above
the DBMS for a number of reasons.

Quote:
Have you considered performance implications?
This is what we do with MV -- we validate above the layer of the DBMS.
Does that degrade performance? No, I would think it improves it,
right? We are still speaking different languages and I'm really
interested in learning yours, so keep talking -- what do you mean and
what do you think I mean?

Quote:
MV is fast,
compared to many databases, because it doesn't have to put each read and
write underneath a high powered magnifier.
Yes!

Quote:
Your comments on the OpenQM
group, regarding integrity, were along the same lines. I still disagree,
mostly from a performance stand point.
This is such an unbelievably perplexing statement to me. So, you think
that it is better for performance to have the constraint handling, such
as type, size, range, lookup table, etc testing done in a way that is
tightly coupled with the database writes rather than in the layer above
it? So, even if an application knows that the data are completely
compliant with the constraints, they must be reapplied in the write? I
really, really want to understand your point and am clearly clueless
about it.

Quote:
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.
I have no idea where that is coming from. I'm not looking for a big
thing, just something that both accomodates the need for integrity and
the need for flexibility. We have that with Pick by NOT coupling
logical database constraints (such as your average, everyday data
validations) with the writes.

Quote:
Don't expect a high-performance
database, though.
I'm not asking for something that I can't see today. Are you planning
to increase the speed of Pick by tightly coupling constraint handling
and database writes?

Quote:
Each single disconnection from the core inserts a
predictable amount of hardware resources and CPU time per transaction.
Yeah.

Quote:
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).
WOW -- I never even considered doing anything remotely like that. I
wish I knew which words triggered this type of thinking. I my use of
the term service in the way it was used before SOAP got in the picture
is now making you think I'm looking for SOAP services when I just want
subrs/functions, then maybe that is what is causing the disconnect.
Hmmm. I'll re-read what I wrote and maybe instead of using the more
human term of "service" I should just use the term "function" or so?
Still perplexed, but this last sentence at least gave me some more
clues on what the words I'm typing mean to you compared to what they
mean to me. thanks a bunch. --dawn

Quote:
Thanks. --dawn


Glen


Reply With Quote
  #10  
Old   
Mike Preece
 
Posts: n/a

Default Re: Size matters to some - 07-28-2006 , 11:23 AM




dawn wrote:
Quote:
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
I'm not really sure where or if this fits in with the discussion here
but...

In the early stages of development of what was to become ASPick (a web
development framework for Pick), and formed the core of the web
application for the web-site Hill House Hammond used to sell insurance
on the net, a colleague wondered what would happen if he just kept his
finger on a key for a very long time, entering an enormous string into
a text field on the browser.

I can't remember if it actually broke the app or not. I know the
PickBasic would have handled it. I know there wouldn't have been a
problem writing and reading it. I just realised I would have to build
something into the framework to prevent that sort of thing from being
allowed to happen.

I didn't even consider putting the constraint in a CALLX or anything at
that level. It had to be prevented from happenning at source as soon as
it hit the application driver program. I decided the best thing to do
was make the framework generating the HTML force a maxlen property for
every text (and similar) field. Then, as always, I had to build the
same validation into the framework driver (ASPick itself).

I took the view then that no matter what validation was being done on
the browser, every single datum had to be rechecked, *more* rigorously
than what the javascript was able to check at the client end, before
the application framework did anything else with it - as soon as it was
extracted from the name/value pair list. This is a "belt and braces"
approach, but it really *must* be done, imnsho, when writing apps for
the web. <aside>One of the beauties of having a single "master" or
"driving" program is that it is easily extensible in this way. One
change applies at once to everything.</aside> Who knows whether the
name/value pair list actually originated from your browser app or
whether some hacker is sending a name/value pair list they've
constructed themselves to try and fool your server?

So - size constraints are necessary on the client, and they're
necessary in the DBMS too. That driver program I mentioned is, of
course, within the DBMS.

Regards,
Mike.



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.