• forgottenlord (unregistered)

    I need a shower

  • (cs)

    I tried running it on Mono, and it's giving me an exception:

    Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.EntryPointNotFoundException: GetCurrentProcess
      at (wrapper managed-to-native) Papadimoulis.Alex.APDB.Engine.MemoryManager:GetCurrentProcess ()
      at Papadimoulis.Alex.APDB.Engine.VirtualMemoryPtr..ctor (Int32 memorySize) [0x00000] in <filename unknown>:0 
      at Papadimoulis.Alex.APDB.RuntimeEnvironment.IsExecutingInVirtualMachine () [0x00000] in <filename unknown>:0 
      at Papadimoulis.Alex.APDB.CommandLineApp.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
      at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
      at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
      --- End of inner exception stack trace ---
      at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
      at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0 
      at Papadimoulis.Alex.APDB.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0

    Hope this can be fixed soon.

    Btw: I'm not sure you understand Namespaces correctly, but nevermind.

  • (cs)

    I immediately recognized this as an April firdeleted by moderators

  • swschrad (unregistered)

    obviously, we can take this one step further.

    direct memory access.

    to make it faster, specify the actual memory write lines from the processor or memory controller as parameters.

    making the requests off hex keypad will reduce all the overhead necessary for GUI or CLI screens.

  • Patrick (unregistered)

    The trackback spoils it. Take it off.

  • (cs)

    The sad thing is, while this post is an April Fool's joke, the idea that RDBMS are dead and MongoDB or CloudDB or whatever the latest fad are the "wave of the future" is not a joke. I've seen a lot of well-known, prominent developers hyping these new fads as the "way to go" for new development.

  • NotaDBA (unregistered)

    I know this was meant to be funny, but most of what it says about relational databases is true.

  • Worf (unregistered)

    SOrta figured it out by the end, but it's so plausible because the first part is true.

    Though, I was half expecting a Real WTF to follow.

  • J (unregistered) in reply to Loof Lirpa
    Loof Lirpa:
    Hmm, I think this is pretty dumb. You are taking away a lot of the abstraction which has been put in, over the years, for a very good reason. I can imagine that using physical locators is fast, but you are taking away a lot of the checks & strategy which the filesystem does for you.

    Admittedly this will make things faster in a single instance, but overall you will have worst robustness and you will have to implement filing strategies yourself (of course, this may be what you want!).

    Also, I am not sure how many people will want to give up SQL!

    Of course people will give up SQL when they realize that AFQL will support natural language queries like "get me all the data I need right now". Syntax optional.

  • (cs) in reply to ObiWayneKenobi
    ObiWayneKenobi:
    The sad thing is, while this post is an April Fool's joke, the idea that RDBMS are dead and MongoDB or CloudDB or whatever the latest fad are the "wave of the future" is not a joke. I've seen a lot of well-known, prominent developers hyping these new fads as the "way to go" for new development.
    Well, it is a joke. The RDBMS is not dieing, nor will it any time soon. Sure, there are paradigms that the NoSQL DBs excel at, and they are replacing RDBMS in those areas (Content centric websites, stats management, distributed file systems, etc). But the idea that they aren't good for anything is foolish. Show me one bank that'll consider replacing their SQL cluster for a MongoDB cluster, and I'll show you one that I'll pull my money out of today. If the only tool you have/like is a hammer, every problem looks like a nail...
  • (cs) in reply to ircmaxell
    ircmaxell:
    Well, it is a joke. The RDBMS is not dieing, nor will it any time soon. Sure, there are paradigms that the NoSQL DBs excel at, and they are replacing RDBMS in those areas (Content centric websites, stats management, distributed file systems, etc). But the idea that they aren't good for anything is foolish. Show me one bank that'll consider replacing their SQL cluster for a MongoDB cluster, and I'll show you one that I'll pull my money out of today. If the only tool you have/like is a hammer, every problem looks like a nail...

    I agree, but like I said a lot of well-known developers are hyping this NoSQL stuff and trashing RDBMS. It makes it frustrating looking at what to learn because you have very experienced people saying that these weird fads are the way to go.

  • (cs)

    New in 2.0:

    • Create an "index" for the data so it can be accessed by name instead of CHS#
    • Add "extension" at the end of a data field's name to determine the type of data
    • Add permissions to the data by setting an 'owner' to the data field, and also read-write permission, possible using an octal number
    • organize the data into a hierarchical structure using a delimiter in the data's name, such as a '/' or ''
  • A Gould (unregistered) in reply to SR
    SR:
    PS It'd be as futile as trying to explain Twitter to someone from 2010.

    The internet's natural extension of award show acceptance speeches? (You can say whatever you want, but we cut you off before you can say anything really profound.)

    Anyhow, for those of us stuck at work without a spare harddrive to "test" this one, would someone mind show/telling what this thing actually does at some point today/tomorrow?

  • stat (unregistered)

    I must admit that I fell for this hookline and sinker. For a few hours until I posted the link to a friend and he was joking about it, and I was taking it seriously until finally he was like "... You know what day it is right?".

    Hangs self

  • Jeff (unregistered)

    Wow, thats amazing! What could possibly go wrong!?!?! ...wait for it... wait for it... can't... hold.. in.. pedantry... a corrupt sector kills the linking and now your db is trashed!!

  • Ike (unregistered)

    Sigh. We've been through all this before. Accessing the disk directly through CHS? Way too slow. Putting all the data in RAM? Still too pokey for REAL TIME. I even experimented with keeping the database in processor registers, but even then, it can take as long as a whole processor clock cycle to manipulate the data.

    No, the solution is to hardcode all of your data in silicon. The processor should have a unique instruction for each database record. You want record 292 of your database? You just execute the machine code instruction FETCH_RECORD_292, and BAM!, you've got your record. What if you don't know the record number, and want to look up a record by its index? That's what compilers are for, duh.

    The only faster solution is to put each record on a wooden table, photograph it, and put it in a filing cabinet with the other photographs of records. And we all know that's just not practical.

  • JohnFx (unregistered)

    Damnit Alex!

    What if my CEO had seen that post!?!??

    I'd be writing business cases for APDB for the next quarter!

  • Mike (unregistered)

    Didn't fall for this one, but I and a friend of mine both fell for Google's AFD joke. Took me almost a minute for the light to turn on.

  • southamerican (unregistered)

    hahaha!! in this part of the world fools day is November 28... hahaha, so mine was a truly "WTF?!?!?!?!?!" I mean, I knew something went wrong and (or the editor went crazy...) had to check the comments!!

  • (cs) in reply to stat
    stat:
    *Hangs self*
    Pics or it didn't happen!
  • (cs) in reply to Jeff
    Jeff:
    Wow, thats amazing! What could possibly go wrong!?!?! ...wait for it... wait for it... can't... hold.. in.. pedantry... a corrupt sector kills the linking and now your db is trashed!!
    That's easily solved. Just keep a second, duplicate backup of the table in which you index all your file allocations.
  • (cs)

    Well, it came to nothing in the end, but a looong long time ago, I started working on a project for a simple little address-book style database, to run on C64 + 1541 disk drive.

    The data was all going to reside in a fixed block of preallocated sectors at the start of the disk, using fixed record sizes for random access.

    The fun bit was that the drive had its own cpu, so all the searches were going to be run on the drive itself, which was probably more-or-less capable of reading the sectors and searching for the desired record on the fly, as fast as the disk turned. It made a lot of sense given the cripplingly-slow serial interface between the drive and the actual C64, as sending all the data to the computer to be searched there would have been vastly slower.

  • Rajandeep Sekhri (unregistered)

    hi,

    pls show me example of using javascript and APDB.

  • your name here (unregistered) in reply to Tom
    Tom:
    I Topeka'd for other DBs of this type, but didn't find anything like it.
    You failed. You topeka'd other DB's of this type with AltaVista.
  • Right Wing-Nut (unregistered) in reply to sadwings
    sadwings:
    Nice of you to let TopCod3r submit today's article!

    Yep, first paragraph made it clear. You guys who took longer to identify the fox by his paw are scary.

    Really, Alex should make that a featured comment.

  • Tanuki (unregistered) in reply to JayT
    JayT:
    Using javascript to access a database directly...

    Yep I can't see a single flaw in tha... oh wait... in superfast days is security still important? no? great news :D

    Nice contribution to the calendar date :D

    Can you btw XMLHttpRequest to port 118, or what ever port the database is configured to listen, on local server to directly access DB from JS?

  • ssaboum (unregistered)

    I kept on thinking... "no man! he can't be seriously thinking..." good job :-)

  • Telepath (unregistered)

    So... where's the joke? How is this funny?

  • nocturnal YL (unregistered)

    I was actualy shocked when I first read "Relational Database is dead"! Nice April's Fool.

  • (cs) in reply to Rajandeep Sekhri
    Rajandeep Sekhri:
    hi,

    pls show me example of using javascript and APDB.

    +1

  • TheRealWTF (unregistered)

    ** \.\PHYSICALDRIVE0 ** Model: WDC WD15 00AHFD-00RAR SCSI Disk Device (Supported) Sector Count: 293040720 (Supported) Interface: IDE (Not Supported) Firmware: 21.0 (Needs Reflash)

  • Catalin (unregistered)

    I got all excited about taking apart your hacked HDD firmware :(

  • James (unregistered)

    I'm interested in why you chose .NET Framework for "The Worlds's Fastest Database" since direct hardware access isn't available until 4.1.

  • ErikF (unregistered)

    Your APDB is okay, but it uses a hard drive for storage which everyone knows is literally exagigamegabillions times slower than using RAM. In fact, if you use RAM for your next version of APDB, you can avoid using CMS altogether and switch to a linear system (maybe its location in memory) for referencing data! You can even avoid the need to use chaining if you store the size of the data before the data itself.

    I propose calling this method "programmable online immediate named text entity retrieval", or POINTER for short. I think that it will revolutionize the data-storage industry. Sure, some people will argue that having to keep track of these POINTERs to data is a chore, but people like that obviously shouldn't be programming anyways!

  • Aigarius (unregistered)

    While I appreciate the Fools Day fun, I really wish that more people would actually consider if they really, REALLY need a RDB. Especially when performance really matters. If you want more than 1000 requests per second from each thread of your program, the big Oracle DBA will just tell you that you are nuts. However, if you go with the key:value store, such as Tokyo Cabinet, you can actually achieve millions of read or write requests per second on each thread on decent hardware.

    Databases (round-trip latencies, 2-3 hard drive accesses per request, ACID overheads, SQL parsing costs, ...) can easily be the bottleneck in many high performance environments, but too many programmers are used to just getting the latest from Oracle, sticking it on a few millions worth of hardware and hoping for the best.

  • my name (unregistered)

    YOU DO NOT MAKE JOKES ABOUT SUCH THINGS! It won't take long until some very, very sick person implements this.

    I read the text by reading the executable in the text viewer integrated into WinRAR. Nice one with the VM detection.

    Its quite obvious that it is an aprils fools joke as the style of the article differs greatly from the others and it is dripping of irony and sarcasm.

  • (cs)
    Another inherent problem that relational databases have is that, fundamentally, they’re designed for insecure developers. This whole notion of “data integrity” is a crutch for the weak that cripples the able-bodied. I don’t need some database telling me what data I can and can’t store: accept the bytes that I give you, and give them back to me when I ask. I know what they are, I know what they’re supposed to be, and I know how to use them, thank you very much.
    This had me seriously doubting its functionality, but that didn't make me question its reality.
    Think about and savor that last point for a moment. Mmmm, JavaScript. Think about how much code you’d not have to write if you could go directly to your database from Client Script.
    That's when it hit me. ;D

    Awesome post, Alex!

    It would be nice if you'd post the source code (for those of us too paranoid to execute binary only releases :P).

  • Aurelien (unregistered)

    Need a database, and it give you a file system ... ?!?!?!

  • Aurelien (unregistered)

    Need a database, and it give you a file system... ?!?!?!

  • Jerry (unregistered) in reply to Ike

    You guys make me laugh. That's why I love this site.

  • nande (unregistered)

    this is ... april 1st.

  • Dave (unregistered) in reply to Brompot
    Brompot:
    APril fools DataBase!

    Nope, this is how the SABRE database, dating from the 1950s, worked. It's still in use today, or at least its legacy is, your airline record locator located the position on the DASD where your travel information was stored.

  • Gary B (unregistered)

    My team built a fast system - one of the very first 911 map display systems, if not the first, for Fairfax County VA in 1985. The maps were 8-bit color images, not vector files (although other data was overlaid from vector files) One of the key design elements was that the map image tiles were stored in physically optimal sectors on the disk so that when the user was 'live' panning across the county, the next image tile could be found and read as fast as possible. The visible image was two tiles square (IIRC), and the display buffer held all the bordering tiles. Given a street location, the system could look up the address in the geolocation database, and would get back a list of the disk addresses of the necessary tiles to retrieve.

    This system was powered by a 286 with six expensive display cards. Each 286 system supported six graphic terminals, and there were four systems sharing two disk servers via an early SCSI interface with hacked drivers (to allow multiple controllers). This system supported 24 911 operators with an average initial display of 1.5 seconds from the moment the address came in - a lot better than the required 7 seconds.

  • Alys (unregistered)

    clap clap clap! I actually read up to "The APDB Engine & Architecture" before I realised, and the sense of relief then was overwhelming. :) I wouldn't want to live in the same universe as this product! :)

  • (cs)

    Sorry to be U-boat captain.... I mean naval Nazi.... But sextant is not exactly "dead". It´s just so damn reliable it takes away all fun from the navigation. In all other aspects - Great job, Alex! Oracle is sitting and rotting on it´s stinking throne for way too long now...

  • Bonghit (unregistered)

    Hi

    I am now selling a full APDB package on ebay for $199.95AUD, full manual & support included.

    This is your chance to get this brilliant database software delivered to your door!

    For a limited time only i will also be providing installation & setup support, totally free of charge.

    Don't miss out on this exciting offer, bid now so you wont be disappointed.

  • DBfool (unregistered)

    It was april foolday

  • Simon (unregistered)

    If you're going to do April Fool's joke stories, can't you even try to be clever, to be subtle? This one stood out at a joke from the title alone, and didn't get any better.

    There's an art to these things, you know - it's not just a case of mixing up a load of bullshit, and posting it online.

  • Filo (unregistered) in reply to Simon
    If you're going to do April Fool's joke stories..........
    Simon, Simon, Simon

    Relax fella, it's only a bit of fun.

  • (cs)

    Very good...reminds me of the 4/1 PC magazine stories of old:

    "4-bit processors to replace 32 or 64 bit" (because 4-bit processing goes faster than 32 or 64 bits, just like risc goes faster than cisc), etc.

Leave a comment on “Announcing APDB: The World's Fastest Database”

Log In or post as a guest

Replying to comment #:

« Return to Article