Results 1 to 6 of 6

Thread: Best Database approach

  1. #1
    Join Date
    Jul 2008

    Best Database approach

    Hi all,

    I wonder if someone might have some prior experience to the following issue.
    Any advice would be greatly appreciated.

    I am constructing a very large web app that will house a lot data.
    The data is pulled in from partner services via RPC.
    To streamline the data, it is automaticly put into its relevant database table enabling more accurate searches.

    My concern is for the future as the data increases.

    Scenario 1
    My current thought process is to have a server acting a controller routing requests through to a different server holding the requested data. Something like a 1 to many relationship.

    As data is added to the database its put (in a relevant way) in to a server on a rotational basis.

    This is what i am leaning towards.

    Scenario 2.
    Data is brought in and processed over time in to server 1.
    Then it is replicated on server 2 for usage.

    This doesnt make much sense to me, but could be the caffeine.

    I would really appreciate any ideas, debates or approaches that others have used.

    Thanks in advance,

    Last edited by memerson; 06-16-2009 at 06:55 AM.

  2. #2
    Join Date
    Aug 2005
    The Garden State
    to be honest, i'm not a big fan of the idea of replication. anything that's not done "in real time" seems like it has the potential for causing problems (objects not being found when they should be, for example). you should think about clustering your database servers. this typically involves providing a shared file system for multiple servers to use.
    Acceptable Use | SQL Forum FAQ | celery is tasteless | twitter

    celery is tasteless - currently needing some UI time

  3. #3
    Join Date
    Feb 2003
    Clustering is a High Availability solution, not a Scalability solution.

    Replication works fine for very large applications, including those distributed over geographically distinct areas.

    None of us know enough about your application to give a thorough answer. What do you mean by "a lot" of data? A server to act as an index for other servers (a you describe) can be implemented, but is probably not necessary, or even a good idea.

    What hardware is available to you?

  4. #4
    Join Date
    Jul 2008

    More information

    First of all, thanks to all that replied.
    Let me see if I can be more descriptive.

    We are working with a large organization that sells millions of products retail.
    They range over 300 different categories.

    What I have done sofar is to create tables for each category.
    Products can easily be browsed by category and I have written
    a details SQL query that enables a custom search to be performed on categories that relate to the search query.

    My concern is that If we are starting off with millions of products, where will we be in a year. 1 billion?
    In that case can the database handle this amount of data and more also can it serve user requests if the site is going to be as active as we suspect it will be.

    We are running on ubuntu server Dedicated server
    Intel Quad Core Xeon 2.13GHz
    2GB RAM
    Tier-1 network.

    Any ideas, oppinions, pointers in the right direction are welcome and appreciated.



  5. #5
    Join Date
    Feb 2003
    A million unique items? Wow. A well thought out schema and appropriate indexing is going to be key. That said, the amount of data isn't the issue, it's the amount of transactions. How many write operations (Inserts, Updates, Deletes) do you expect per hour or minute? That's the question you need to answer first. And how much data (in MB or GB) growth and change will you have over a defined period of time.

    For a highly volatile OLTP system, that server isn't going to be able to handle it. Plus, I assume you will have other things besides the POS running on it (nightly jobs, lookups etc.), besides hitting it from the back end with your data imports.

    Is this an upgrade to an existing system or a brand new app?

    If it's an upgrade, measuring the current transaction volume and growth trends will help you determine your hardware needs. If it's a new application, you'll need to make some educated guesses. Scaling out can be done at a later date if necessary, but you'll need to have an idea well before it becomes necessary.

    What database platform are you going to use? If MSSQL or Oracle, replication is pretty easy and dependable.

  6. #6
    Join Date
    Jun 2009
    House in the Woods
    If you're planning something that big you're going to need some robust management tools and a highly scalable platform. I agree that the server isn't going to be able to handle it.

    BTW, Microsoft has a Web Edition of SQL Server 2008. it's marketed as a scalable low cost option. (E.g., Can be 32 cores for an 8 core server, @$3K/processor). It has some capabilities that other providers either don't or charge more for: spatial data, native XML, integrated with Visual Studio, lots of reporting features.

    You can check it out with a free download Microsoft Web Platform Installer 2.0 RC.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.09381 seconds
  • Memory Usage 2,884KB
  • Queries Executed 13 (?)
More Information
Template Usage (32):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (6)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (6)postbit
  • (6)postbit_onlinestatus
  • (6)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (71):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates