Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6472447
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 25, 20262026-05-25T06:20:45+00:00 2026-05-25T06:20:45+00:00

How do you manage a major schema change when you are using a Nosql

  • 0

How do you manage a major schema change when you are using a Nosql store like SimpleDB?

I know that I am still thinking in SQL terms, but after working with SimpleDB for a few weeks I need to make a change to a running database. I would like to change one of the object classes to have a unique id, as rather than a business name, and as it is referenced by another object, I will need to also update the reference value in these objects.

With a SQL database you would run set of sql statements as part of the client software deployment process. Obviously this will not work with something like SimpleDB as

  • there is no equivalent of a SQL update statement.
  • Due to the distributed nature of SimpleDB, there is no way of knowing when the changes you have made to the database have ‘filtered’ out to all the nodes running your client software.

Some solutions I have thought of are

  • Each domain has a version number. The client software knows which version of the domain it should use. Write some code that copies the data from one domain version to another, making any required changes as you go. You can then install new client software that then accesses the new domain version. This approach will not work unless you can ‘freeze’ all write access during the update process.

  • Each item has a version attribute that indicates the format used when it was stored. The client uses this attribute when loading the object into memory. Object can then be converted to the latest format when it is written back to SimpleDB. The problem with this is that the new software needs to be deployed to all servers before any writes in the new format occur, or clients running the old software will not know how to read the new format.

It all is rather complex and I am wondering if I am missing something?

Thanks

Richard

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-25T06:20:46+00:00Added an answer on May 25, 2026 at 6:20 am

    I use something similar to your second option, but without the version attribute.

    First, try to keep your changes to things that are easy to make backward compatible – changing the primary key is the worst case scenario for this.

    Removing a field is easy – just stop writing to that field once all servers are running a version that doesn’t require it.

    Adding a field requires that you never write that object using code that won’t save that field. If you can’t deploy the new version everywhere at once, use an intermediate version that supports saving the field before you deploy a version that requires it.

    Changing a field is just a combination of these two operations.

    With this approach changes are applied as needed – write using the new version, but allow reading of the old version with default or derived values for the new field.

    You can use the same code to update all records at once, though this may not be appropriate on a large dataset.

    Changing the primary key can be handled the same way, but could get really complex depending on which nosql system you are using. You are probably stuck with designing custom migration code in this case.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I am looking to manage a SQL Server 2008 DB using Management Studio 2005.
How do you guys manage the information overflow? What are the tools that you
You do you manage the same presenter working with different repositories using the MVP
I have a pretty big web application that I created last year using ASP.NET
I am always reading that you should always store your database credentials outside of
I'm using NHibernate mappings as a defining schema for my app in the development
I am writing a T-SQL Query, I am developing the e-commerce website, in that
I suspect that lots of business related software is designed to manage a particular
The major advantage I see for using C++ instead of C# is compiling to
I manage a small group and I'd keep my work breakdown in project. However,

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.