Distributed database question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • J Goldman

    Distributed database question

    I'm looking for documentation pointers to learn what I need to put together
    a distributed database system. I've read through "Oracle 9i Database
    Administrator's Guide: Distributed Database Concepts" and Oracle Database
    Concepts: Introduction to the Oracle Server: Distributed Databases
    Overview", but I don't see how to do what I want.

    I would like to set up a distributed database system with location
    transparency and a shared schema (i.e. horizontal fragmentation). I'll
    provide a little more context: I have three databases, running on separate
    systems, all of which use the identical schema. So, each has entries in a
    table "foo", which are unique. I'd like to provide a global access to this
    data, so a client can effectively query the set of databases. So, asking
    for all entries in the "foo" table would retrieve the contents of db1.foo,
    db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning to
    wrap this in an enterprise java bean to provide an object interface.

    Database links looked like the closest idea I could find, but they don't
    deal well with the idea that my "foo" table has entries spread across the db
    instances.

    A pointer in the right direction would be greatly appreciated.

    Jason
    jason@fc.hp.com


  • Jim Kennedy

    #2
    Re: Distributed database question

    "J Goldman" <jason@fc.hp.co mwrote in message
    news:3f68c63a$1 @usenet01.boi.h p.com...
    I'm looking for documentation pointers to learn what I need to put
    together
    a distributed database system. I've read through "Oracle 9i Database
    Administrator's Guide: Distributed Database Concepts" and Oracle Database
    Concepts: Introduction to the Oracle Server: Distributed Databases
    Overview", but I don't see how to do what I want.
    >
    I would like to set up a distributed database system with location
    transparency and a shared schema (i.e. horizontal fragmentation). I'll
    provide a little more context: I have three databases, running on
    separate
    systems, all of which use the identical schema. So, each has entries in a
    table "foo", which are unique. I'd like to provide a global access to
    this
    data, so a client can effectively query the set of databases. So, asking
    for all entries in the "foo" table would retrieve the contents of db1.foo,
    db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning to
    wrap this in an enterprise java bean to provide an object interface.
    >
    Database links looked like the closest idea I could find, but they don't
    deal well with the idea that my "foo" table has entries spread across the
    db
    instances.
    >
    A pointer in the right direction would be greatly appreciated.
    >
    Jason
    jason@fc.hp.com
    >
    >
    Why do you want them spread over 3 machines? On one machine you might want
    to partition the data into 3 tables and access the partition. You could use
    database links and views, but it is going to be very inefficient.(th e link
    might have to retrieve the whole table and resolve the query on the database
    you are attached to - ouch, dragging all that data over a link.) Whereas a
    RAC might be better.
    Jim


    Comment

    • Sybrand Bakker

      #3
      Re: Distributed database question

      "J Goldman" <jason@fc.hp.co mwrote in message news:<3f68c63a$ 1@usenet01.boi. hp.com>...
      A pointer in the right direction would be greatly appreciated.
      >
      Jason
      jason@fc.hp.com
      I would like to set up a distributed database system with location
      transparency and a shared schema (i.e. horizontal fragmentation). I'll
      provide a little more context: I have three databases, running on separate
      systems, all of which use the identical schema. So, each has entries in a
      table "foo", which are unique. I'd like to provide a global access to this
      data, so a client can effectively query the set of databases. So, asking
      for all entries in the "foo" table would retrieve the contents of db1.foo,
      db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning to
      wrap this in an enterprise java bean to provide an object interface.
      >
      Your scenario has 'DISASTER AHEAD' inscribed all over it. You would be
      better off by using a few 1000 of voting machines using punchcards.
      Your approach would require to use UNIONs for everything, which means
      the database will resort to full table scan and sorting for ALL sql
      you sunmit.
      Need I say more? Why do you want this? Are you up for a career move,
      or do you like getting sacked by HP?

      Sybrand Bakker
      Senior Oracle DBA

      Comment

      • J Goldman

        #4
        Re: Distributed database question


        "Jim Kennedy" <kennedy-down_with_spamm ers@no_spam.com cast.netwrote in
        message news:eb8ab.2818 62$2x.78696@rwc rnsc52.ops.asp. att.net...
        "J Goldman" <jason@fc.hp.co mwrote in message
        news:3f68c63a$1 @usenet01.boi.h p.com...
        I'm looking for documentation pointers to learn what I need to put
        together
        a distributed database system. I've read through "Oracle 9i Database
        Administrator's Guide: Distributed Database Concepts" and Oracle
        Database
        Concepts: Introduction to the Oracle Server: Distributed Databases
        Overview", but I don't see how to do what I want.

        I would like to set up a distributed database system with location
        transparency and a shared schema (i.e. horizontal fragmentation). I'll
        provide a little more context: I have three databases, running on
        separate
        systems, all of which use the identical schema. So, each has entries in
        a
        table "foo", which are unique. I'd like to provide a global access to
        this
        data, so a client can effectively query the set of databases. So,
        asking
        for all entries in the "foo" table would retrieve the contents of
        db1.foo,
        db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning
        to
        wrap this in an enterprise java bean to provide an object interface.

        Database links looked like the closest idea I could find, but they don't
        deal well with the idea that my "foo" table has entries spread across
        the
        db
        instances.

        A pointer in the right direction would be greatly appreciated.

        Jason
        jason@fc.hp.com
        Why do you want them spread over 3 machines? On one machine you might
        want
        to partition the data into 3 tables and access the partition. You could
        use
        database links and views, but it is going to be very inefficient.(th e link
        might have to retrieve the whole table and resolve the query on the
        database
        you are attached to - ouch, dragging all that data over a link.) Whereas
        a
        RAC might be better.
        Jim
        >
        Well, the first reason why they're spread over three machines is that I'm
        adding
        this to an existing product, where the databases have already been set up
        like this.
        This is designed such that each machine controls its own domain and one
        machine
        cannot access another's data. Aside from security, locality of data is also
        relevant.
        I'm just adding a global management view to collect all that data.

        I'll have to read up on RAC to see if that addresses my needs. Thanks.

        Regards,
        Jason
        jason@fc.hp.com



        Comment

        • J Goldman

          #5
          Re: Distributed database question

          Well, thanks for the vote of confidence. I appreciate your point that
          this approach doesn't seem doomed to success. With that in mind,
          can you offer any contructive suggestion on how I might provide
          global access to this data? My other main thought has been to create
          a set of entity EJBs local to each machine, along with a set of global
          session beans. The global session beans would use something like a
          dbhost parameter (where appropriate) to guide which db should be
          read. Generic requests would query all of the DBs.

          Jason
          jason@fc.hp.com


          "Sybrand Bakker" <postbus@sybran db.demon.nlwrot e in message
          news:a20d28ee.0 309180357.54887 fa3@posting.goo gle.com...
          "J Goldman" <jason@fc.hp.co mwrote in message
          news:<3f68c63a$ 1@usenet01.boi. hp.com>...
          A pointer in the right direction would be greatly appreciated.

          Jason
          jason@fc.hp.com
          >
          I would like to set up a distributed database system with location
          transparency and a shared schema (i.e. horizontal fragmentation). I'll
          provide a little more context: I have three databases, running on
          separate
          systems, all of which use the identical schema. So, each has entries in
          a
          table "foo", which are unique. I'd like to provide a global access to
          this
          data, so a client can effectively query the set of databases. So,
          asking
          for all entries in the "foo" table would retrieve the contents of
          db1.foo,
          db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning
          to
          wrap this in an enterprise java bean to provide an object interface.
          Your scenario has 'DISASTER AHEAD' inscribed all over it. You would be
          better off by using a few 1000 of voting machines using punchcards.
          Your approach would require to use UNIONs for everything, which means
          the database will resort to full table scan and sorting for ALL sql
          you sunmit.
          Need I say more? Why do you want this? Are you up for a career move,
          or do you like getting sacked by HP?
          >
          Sybrand Bakker
          Senior Oracle DBA

          Comment

          • J Goldman

            #6
            Re: Distributed database question


            "Jim Kennedy" <kennedy-down_with_spamm ers@no_spam.com cast.netwrote in
            message news:eb8ab.2818 62$2x.78696@rwc rnsc52.ops.asp. att.net...
            Why do you want them spread over 3 machines? On one machine you might
            want
            to partition the data into 3 tables and access the partition. You could
            use
            database links and views, but it is going to be very inefficient.(th e link
            might have to retrieve the whole table and resolve the query on the
            database
            you are attached to - ouch, dragging all that data over a link.) Whereas
            a
            RAC might be better.
            Jim
            >
            Well, I did a little bit of reading and I'm not convinced that a cluster
            approach will
            really address my problem. I'm leaning towards more of an EJB approach that
            I
            mentioned in another response. Thanks for the suggestions though.

            Regards,
            Jason
            jason@fc.hp.com


            Comment

            • Jim Kennedy

              #7
              Re: Distributed database question

              No, move all the data to 1 machine and have 3 schemas. Then you can create
              a view that joins the 3 schemas(1 view for each table). The entity bean
              approach is a Java programmer with a hammer that thinks everything is a
              nail.]
              Jim

              --
              Replace part of the email address: kennedy-down_with_spamm ers@attbi.com
              with family. Remove the negative part, keep the minus sign. You can figure
              it out.
              "J Goldman" <jason@fc.hp.co mwrote in message
              news:3f69d03f$1 @usenet01.boi.h p.com...
              Well, thanks for the vote of confidence. I appreciate your point that
              this approach doesn't seem doomed to success. With that in mind,
              can you offer any contructive suggestion on how I might provide
              global access to this data? My other main thought has been to create
              a set of entity EJBs local to each machine, along with a set of global
              session beans. The global session beans would use something like a
              dbhost parameter (where appropriate) to guide which db should be
              read. Generic requests would query all of the DBs.
              >
              Jason
              jason@fc.hp.com
              >
              >
              "Sybrand Bakker" <postbus@sybran db.demon.nlwrot e in message
              news:a20d28ee.0 309180357.54887 fa3@posting.goo gle.com...
              "J Goldman" <jason@fc.hp.co mwrote in message
              news:<3f68c63a$ 1@usenet01.boi. hp.com>...
              A pointer in the right direction would be greatly appreciated.
              >
              Jason
              jason@fc.hp.com
              I would like to set up a distributed database system with location
              transparency and a shared schema (i.e. horizontal fragmentation).
              I'll
              provide a little more context: I have three databases, running on
              separate
              systems, all of which use the identical schema. So, each has entries
              in
              a
              table "foo", which are unique. I'd like to provide a global access to
              this
              data, so a client can effectively query the set of databases. So,
              asking
              for all entries in the "foo" table would retrieve the contents of
              db1.foo,
              db2.foo, and db3.foo. Ideally, when all is said and done, I'm
              planning
              to
              wrap this in an enterprise java bean to provide an object interface.
              >
              Your scenario has 'DISASTER AHEAD' inscribed all over it. You would be
              better off by using a few 1000 of voting machines using punchcards.
              Your approach would require to use UNIONs for everything, which means
              the database will resort to full table scan and sorting for ALL sql
              you sunmit.
              Need I say more? Why do you want this? Are you up for a career move,
              or do you like getting sacked by HP?

              Sybrand Bakker
              Senior Oracle DBA
              >
              >

              Comment

              • Michael Lackey

                #8
                Re: Distributed database question

                "Jim Kennedy" <kennedy-down_with_spamm ers@no_spam.com cast.netwrote in message news:<mVsab.507 793$Ho3.85596@s ccrnsc03>...
                No, move all the data to 1 machine and have 3 schemas. Then you can create
                a view that joins the 3 schemas(1 view for each table). The entity bean
                approach is a Java programmer with a hammer that thinks everything is a
                nail.]
                Jim
                >
                --
                Replace part of the email address: kennedy-down_with_spamm ers@attbi.com
                with family. Remove the negative part, keep the minus sign. You can figure
                it out.
                "J Goldman" <jason@fc.hp.co mwrote in message
                news:3f69d03f$1 @usenet01.boi.h p.com...
                Well, thanks for the vote of confidence. I appreciate your point that
                this approach doesn't seem doomed to success. With that in mind,
                can you offer any contructive suggestion on how I might provide
                global access to this data? My other main thought has been to create
                a set of entity EJBs local to each machine, along with a set of global
                session beans. The global session beans would use something like a
                dbhost parameter (where appropriate) to guide which db should be
                read. Generic requests would query all of the DBs.

                Jason
                jason@fc.hp.com


                "Sybrand Bakker" <postbus@sybran db.demon.nlwrot e in message
                news:a20d28ee.0 309180357.54887 fa3@posting.goo gle.com...
                "J Goldman" <jason@fc.hp.co mwrote in message
                news:<3f68c63a$ 1@usenet01.boi. hp.com>...
                A pointer in the right direction would be greatly appreciated.

                Jason
                jason@fc.hp.com
                >
                I would like to set up a distributed database system with location
                transparency and a shared schema (i.e. horizontal fragmentation).
                I'll
                provide a little more context: I have three databases, running on
                separate
                systems, all of which use the identical schema. So, each has entries
                in
                a
                table "foo", which are unique. I'd like to provide a global access to
                this
                data, so a client can effectively query the set of databases. So,
                asking
                for all entries in the "foo" table would retrieve the contents of
                db1.foo,
                db2.foo, and db3.foo. Ideally, when all is said and done, I'm
                planning
                to
                wrap this in an enterprise java bean to provide an object interface.

                Your scenario has 'DISASTER AHEAD' inscribed all over it. You would be
                better off by using a few 1000 of voting machines using punchcards.
                Your approach would require to use UNIONs for everything, which means
                the database will resort to full table scan and sorting for ALL sql
                you sunmit.
                Need I say more? Why do you want this? Are you up for a career move,
                or do you like getting sacked by HP?
                >
                Sybrand Bakker
                Senior Oracle DBA
                If the DBS have to be in different locations, dosn't sound like RAC
                would do you much good. What about doing all the work in the Middle
                Tier and have your java app connect to all three servers and launch a
                seperate query to each one? The oracle app server 9iAS should be able
                to deal with all this easily (have to spend money though if you don't
                have it) as it's meant to connect to many nodes. I would be leary of
                links and union which may come to a screaching hault if one of the DBs
                is unavailable.

                Not sure how much data you have or how often it gets inserts and
                updates, or how up the the minute data your query requires, but look
                into materialized views if data and activity set is not too large or
                you could use replication to have at least one database with all 3 DBs
                data (kind of a data mart approach).

                Comment

                Working...