Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Oracle Software Businesses Databases Programming Linux IT

Oracle Adds Data-integrity Code To Linux Kernel 53

jazir1979 writes "ZDNet is reporting that Oracle has added code to the Linux kernel for ensuring data integrity. The code has been developed in partnership with Emulex and was recently accepted into the 2.6.27 kernel release." According to the article, "The code adds metadata to data at rest or in transit, to monitor whether that data has been corrupted. It helps make sure that I/O operations are valid by looking at that metadata — which acts as verification information — exchanged during data transmissions."
This discussion has been archived. No new comments can be posted.

Oracle Adds Data-integrity Code To Linux Kernel

Comments Filter:
  • Dumb question... (Score:4, Insightful)

    by geminidomino ( 614729 ) * on Thursday December 11, 2008 @04:24PM (#26080297) Journal

    How badly does this affect performance?

    • Re:Dumb question... (Score:4, Informative)

      by afidel ( 530433 ) on Thursday December 11, 2008 @09:42PM (#26085135)
      It doesn't matter much. This patch adds T10-DIF which basically brings minicomputer level data integrity to the commodity computer market. It adds about 1.54% to data storage requirements (8 bytes of ECC per 512 byte block, just like the AS/400) and some small amount of code at the OS and APP layers to check the CRC's. With Oracle I would imagine this might actually INCREASE performance for the most fault intolerant environments since it wouldn't need to do a read after write if the storage system acknowledged a successful T-10 DIF block save.
      • by afidel ( 530433 )
        Hmm, on second thought after doing some more research it MIGHT matter:
        CRC is somewhat expensive. 200-300 MB/s on a modern CPU looking into ways to optimize
        SSE4 will have a CRC instruction (any poly)
        linky(pdf) [usenix.org]

        Not sure what he means by CPU there, if he means core then it's not so bad (other than freaking expensive per core Oracle licensing), if that's per processor then that's very bad. Guess I might only be able to implement this on the new Shanghai beast we got last week or a new Corei7 Xeon system
  • by aztektum ( 170569 ) on Thursday December 11, 2008 @04:26PM (#26080321)

    It adds a 2nd layer of metadata that is used to verify the first layer of metadata wasn't corrupted so you can be EXTRA confident that your original data was actually handled correctly.

    • It pre-corrects a future corruption in the as-yet-unimplemented third layer of metadata. Kernel developers have decided to add the third layer and accept the patch on the grounds that the corruption might still have occurred even if Oracle hadn't said anything.
  • Terribly old news (Score:4, Informative)

    by zdzichu ( 100333 ) on Thursday December 11, 2008 @04:56PM (#26080963) Homepage Journal

    Block integrity patches were discussed in excellent article on LWN [lwn.net] in July 2008. Kernel 2.6.27 was released in October 2008. This is old news.

    • by XaXXon ( 202882 ) <xaxxon.gmail@com> on Thursday December 11, 2008 @05:10PM (#26081215) Homepage

      Oh my god! Not news from October. That was going on two months ago. Everyone knows everything that happened two months ago. What were the editors thinking? Fire them immediately. Let's all go to digg or reddit or myspace where they don't do things like post things that are almost two months old. PANIC PANIC PANIC!!!

      Wow, just let other people read it and go on about your business not caring.

      • Re:Terribly old news (Score:5, Informative)

        by Nick Ives ( 317 ) on Thursday December 11, 2008 @06:06PM (#26082249)

        That LWN writeup is far better too though, TFA is terrible. LWN makes it clear that this adds device checksum support, i.e. if your SATA drive supports adding checksum data to blocks this patch will enable that functionality.

        • Thanks for that summary. It's been many years now since I kept up with the kernel changelogs and articles... the kernel now Just Works.

  • by HighOrbit ( 631451 ) on Thursday December 11, 2008 @05:07PM (#26081169)
    You've invented the Checksum [wikipedia.org]

    On a more serious note (yes I did RTFA), somebody please explain where this fits. Other than network or disk errors (which generally already have error detection schemes), I'm not sure what the target problem is that this is supposed to fix. The article says "the code helps maintain integrity as data moves from application to database, and from Linux operating system to disk storage", that it checks I/O operations, and that "code contribution includes generic support for data integrity at the block and file-system layers". That's still not clear what they think the problem is. Don't most of the modern file systems already check data operations?
    • Re: (Score:3, Informative)

      by setagllib ( 753300 )

      I don't know where it fits either, but ZFS and eventually BTRFS actually have checksums at the block level, and can heal over corrupted blocks using redundant copies whose checksums do work. That alone is enough reason to use ZFS for a file server, but similar improvements could be made inside the Linux stack without a new filesystem on top. However ZFS' reliability also comes from copy-on-write updates which is not trivially installed into an existing filesystem.

    • I'm not certain but it appears to be checksumming data while it is moving around the kernel after a write or read call is made.

      Seems like something that should be handled in hardware with ECC, but what do I know.

      • by scheme ( 19778 ) on Thursday December 11, 2008 @06:07PM (#26082273)

        I'm not certain but it appears to be checksumming data while it is moving around the kernel after a write or read call is made.

        Seems like something that should be handled in hardware with ECC, but what do I know.

        Kernel bugs can cause data to get corrupted and hardware ECC won't correct that. Likewise with transfers from memory to disk. Ultimately it'll need to be a hardware/software thing but the software portion is needed as well.

      • by Detritus ( 11846 )
        ECC usually covers specific paths or devices, but it doesn't give you an end-to-end integrity check. A similar situation happens with IP packets. You can disable packet checksums if you like to live dangerously. Then, all you need is a bit of noise or a hardware problem to silently corrupt data that flows over the network.
    • by afidel ( 530433 )
      This is industry standard checksumming to ensure end to end data integrity from the disk to the storage system to the HBA to the OS to the app. I'm quite stoked for this since my SAN vendor (Xiotech) has the first system to support the standard (Emprise 5000/7000) and we have Oracle 10/11G already in our environment.
      • SAN vendor (Xiotech) has the first system to support the standard (Emprise 5000/7000

        Which standard?

        Has Xiotech added Emulex HBAs to the compatibility matrix for those systems yet? ROFL.

    • RAM errors.

      Spontaneous bit flips change data in transit.

      It also helps against errors in kernel code or malicious data injection attacks

    • Re: (Score:3, Informative)

      by Detritus ( 11846 )
      One of the problems that this is supposed to detect is blocks getting written to the wrong place or being read from the wrong place. I think it's one of those rare problems that stops being quite so rare when you have huge amounts of data stored on cheap hardware.
    • The article says "the code helps maintain integrity as data moves from application to database, and from Linux operating system to disk storage", that it checks I/O operations, and that "code contribution includes generic support for data integrity at the block and file-system layers". That's still not clear what they think the problem is. Don't most of the modern file systems already check data operations?

      You might not understand why we need it, but trust me, it is needed. Not all storage device drivers a

      • You might not understand why we need it, but trust me, it is needed. Not all storage device drivers are created equally, and some will happily report to the kernel that the write operation was successful even if it wasn't, and you end up with corrupted data. When Oracle operates on a trusted environment like Solaris on Sparc, this type of integrity is built in to the operating system and it's not necessary to do a read after write to verify the data was written correctly. On Linux, and other untrusted opera

        • The article I read about this states that Linux is the first operating system to implement these standards, T10 PIM and DIE. It says that they are looking to implement the same technology in Windows, Solaris, and other Unixes. It also states that this is implemented both in hardware and software. In what way does this differ from Solaris/SPARC's data integrity implementation?

          It may not be the same implementation, but Solaris on Sparc has built in ECC across all data paths, including CPU -> memory, CPU -

  • link is skim on details. any word if there is error correction or is it just detection? what does this add that say erasure coding (reed-solomon) lacks?
  • Excuse me if this is a dumb question, but how does this differ from the journal in many existing filesystems?
    • Re: (Score:3, Informative)

      by JohnFluxx ( 413620 )

      The purpose of a journal is to make sure that operations either happen or they don't happen - i.e. you don't leave the filesystem in some half way state if the power goes out.

      It doesn't verify the actual data written or anything.

  • ... whatever that means.

    Info [wwpi.com]

Two can Live as Cheaply as One for Half as Long. -- Howard Kandel

Working...