>> How it works is a trade secret that I plan to keep to myself.
If you change your mind, a write up of your algorithms and data structures would receive a lot more peer review than releasing just the source code alone.
gg
I think that this is answered in post #28:Originally Posted by Elkvis
That is, Will1 is going for your suggestion that ADAM provide a storage engine for higher level database systems. This arguably fits even the claim from the MASM32 forum that "if you need something to create a data base system, it's the best there is", i.e., if you need that component to implement a higher level database system, then Will1 asserts that this is the best available. The problem with this interpretation is that Will1 has also made claims that compare ADAM with SQL and relational database systems and -- if we infer from the comment about cloud computing -- other high level approaches to database systems.Originally Posted by Will1
Will1: could you clarify this?
Look up a C++ Reference and learn How To Ask Questions The Smart WayOriginally Posted by Bjarne Stroustrup (2000-10-14)
O_oIf you change your mind, a write up of your algorithms and data structures would receive a lot more peer review than releasing just the source code alone.
Are you part of that discussion? Or do you just have mad ranks in "googlefu"?
[Edit]
How has no one referenced "Berkeley DB" or any of the other bazillion key/value or similarly many "big block" stores?
[/Edit]
Soma
“Salem Was Wrong!” -- Pedant Necromancer
“Four isn't random!” -- Gibbering Mouther
Because this doesn't seem to be along the same lines, or rather claims to be along the same lines and more, and then maybe not. The closest we get to the interface provided by ADAM for database functionality is from post #37, which does remind me of those, but then we have claims like "SQL does have the ability to establish relationships but it is cumbersome and could be done more efficiently by a program".Originally Posted by phantomotap
Look up a C++ Reference and learn How To Ask Questions The Smart WayOriginally Posted by Bjarne Stroustrup (2000-10-14)
O_oBecause this doesn't seem to be along the same lines, or rather claims to be along the same lines and more, and then maybe not.
My views could probably be inferred, but several of you are participating. That being your view only makes me wonder more why you haven't asked how this compares with such other systems. We've only really seen "buzzword bingo" or "I'm not telling." when directly asked so I was seriously wondering why other comparisons, other than SQL, haven't been invited.
We've also seen "real", "best", "fastest", "easiest", and similar thrown around. I'm not sure "more" and "different" have any more a reliable meaning when faced with a salesmen.then we have claims like "SQL does have the ability to establish relationships but it is cumbersome and could be done more efficiently by a program".
Soma
“Salem Was Wrong!” -- Pedant Necromancer
“Four isn't random!” -- Gibbering Mouther
Patience, my old padawan.Originally Posted by phantomotap
Look up a C++ Reference and learn How To Ask Questions The Smart WayOriginally Posted by Bjarne Stroustrup (2000-10-14)
I think we need some specs of this database.
Max number of rows?
Max size of a single column in a row?
Max number of columns in a table?
Max number of table joins?
Are left joins supported?
Is something like SQL null supported?
Tim S.
"...a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are,in short, a perfect match.." Bill Bryson
Those are all SQL functions. If you were to use ADAM you would need to think in records and fields rather than rows and columns. In any event, It looks like I'm just going to have to abandon the project. Even IBM's OS/2 operating system restricted program's from using the DS and ES registers. I can only tell you that, when the 186 was the state of the art processor, I wrote an application for Snelling and Snelling for their "temp" data base that had blink of an eye speed running under DOS. Nothing else would run with that kind of speed. It's too bad I don't have the facilities or the time to write a really good Operating System, and DOS is, size wise, so small that it has been out-dated. The other thing that has happened is that the modern processors are so fast that you can write terribly inefficient code and it will run reasonably fast because of the speed of modern processors. Wonder why the dinosaur main frames that IBM deals in are still being used? I think our prsident found out when he tried to get too many people, too fast to sign up for Obamacare.
Wrong about those being SQL database items; they are all relational database items.
The only difference is they do NOT normally use the names rows and columns instead the word tuples is used often in relation algebra and relational database field.
Sounds like ADAM is NOT a relational database.
Tim S.
"...a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are,in short, a perfect match.." Bill Bryson
It makes no difference since you do not explain what "records" and "fields" are in the context of ADAM. That which we call a rose by any other name would smell as sweet. If you have a very different paradigm for data storage, then you have not given any hints of it, other than in post #37, which does not provide any such explanation.Originally Posted by Will1
There are current non-relational database systems that do not use SQL and which can be used when one needs a '"temp" data base', among other things, and that are usually sufficiently blazingly fast for this purpose. Then there are relational database systems that do use SQL and which can also be used when one needs a '"temp" data base', e.g., SQLite can be embedded into a C program to utilise an in-memory database.Originally Posted by Will1
phantomotap was so excited over in post #49 asking 'How has no one referenced "Berkeley DB" or any of the other bazillion key/value or similarly many "big block" stores?' Did you read that? Tokyo Cabinet is another well known example, though I see that it has been superseded by Kyoto Cabinet. (Off-topic: for the actual cities, I prefer Kyoto to Tokyo, so that is good news for me )
"I have discovered a truly marvellous proof of this, which this margin is too narrow to contain."Originally Posted by Will1
I note that Will1 has not responded to my post #48.Originally Posted by stahta01
Look up a C++ Reference and learn How To Ask Questions The Smart WayOriginally Posted by Bjarne Stroustrup (2000-10-14)
And I've been trying to tell you throughout this discussion that you don't need them. I can guarantee beyond a shadow of a doubt that there is a way to implement your system without using segment registers. You said in an earlier post that protected mode isn't the problem. Based on your own description of ADAM, I'd say that it is. I say that simply because segments don't work the same way in protected mode as they do in "real address" mode, as in DOS. Memory addressing happens in a completely different way in protected mode, which I outlined briefly in post 24.
What can this strange device be?
When I touch it, it gives forth a sound
It's got wires that vibrate and give music
What can this thing be that I found?
O_oThat which we call a rose by any other name would smell as sweet.
If it looks like a duck, swims like a duck, and performs a unit join by processing prepared statements sampling information from a store of a values like a duck, then it probably is a duck.
o_O
Wait. That doesn't sound at all correct...
Soma
“Salem Was Wrong!” -- Pedant Necromancer
“Four isn't random!” -- Gibbering Mouther
The CS, DS, and ES registers act as "Base" registers. A (mainframe) Base register is a register that you use as a Base and offset the Code and Data from the address held in the Base register. I'll guarantee you that Windows and Liinux use the (E)CS, E(BS) and E(ES) registers as Base Registers. Programming without being able to establish Base Registers makes it virtually impossible to do complex passing of data between programs (and subroutines) that are compiled separately. It virtually destroys the ability to write really good subroutines like ADAM. Tell me how you pass the address of a "record" (column) of data between a program and call a separately compiled subrotine that uses it. (I managed to do that for 1 ADAM file by "cheating Windows" but most uses of ADAM, like SQL, require more than 1 file (data structure). For KISS puposes if I move field A to field B, A must be at an offset from a Base register and B must be at an offet from a Base register, otherwise how could my program address them?
Using tables instead of Base registers seems terribly inefficient to me!
Last edited by Will1; 07-21-2014 at 05:56 PM.
O_oI'll guarantee you that Windows and Liinux use the (E)CS, E(BS) and E(ES) registers as Base Registers.
You are correct in that most kernels still use those registers; you are just wrong in how those registers are used.
Tell me how you pass the address of a "record" (column) of data between a program and call a separately compiled subrotine that uses it.Code:LibraryRoutine(&MyRecord);A universal offset is in every way superior to a segment offset for such a trivial mission.For KISS puposes if I move field A to field B, A must be at an offset from a Base register and B must be at an offet from a Base register, otherwise how could my program address them?
Are you seriously not aware that professional database engines push metal?Using tables instead of Base registers seems terribly inefficient to me!
This is so extraordinarily wrong I am now confident that you are putting significant effort into being wrong.Programming without being able to establish Base Registers makes it virtually impossible to do complex passing of data between programs (and subroutines) that are compiled separately.
Soma
“Salem Was Wrong!” -- Pedant Necromancer
“Four isn't random!” -- Gibbering Mouther