Uploaded image for project: 'Mongoid'
  1. Mongoid
  2. MONGOID-5405

Attribute storage refactoring

    • Type: Icon: Epic Epic
    • Resolution: Unresolved
    • Priority: Icon: Unknown Unknown
    • None
    • Affects Version/s: None
    • Component/s: Attributes
    • None
    • To Do
    • Attribute storage
    • 0
    • 0
    • 0
    • 100

      Summary

      This is a follow-up project to https://jira.mongodb.org/browse/MONGOID-5332, consistent mongoization/demongoization/evolution. Unlike 5332 which was scoped to minor changes in m/d/e, this epic is more ambitious in changing how Mongoid stores the attribute values and performs type conversions.

      The starting point is storing attribute values in declared field type , MONGOID-5406. This is a significant change but it will bring with it a major simplification of Mongoid's architecture, improved data reliability (it will be easier to guard against invalid data, MONGOID-5382), new functionality (e.g. persistence of modified container attributes, MONGOID-2951) and potentially better performance due to elimination of repeated demongoization on field access.

      Motivation

      Who is the affected end user?

      Who are the stakeholders?

      How does this affect the end user?

      Are they blocked? Are they annoyed? Are they confused?

      How likely is it that this problem or use case will occur?

      Main path? Edge case?

      If the problem does occur, what are the consequences and how severe are they?

      Minor annoyance at a log message? Performance concern? Outage/unavailability? Failover can't complete?

      Is this issue urgent?

      Does this ticket have a required timeline? What is it?

      Is this ticket required by a downstream team?

      Needed by e.g. Atlas, Shell, Compass?

      Is this ticket only for tests?

      Is this ticket have any functional impact, or is it just test improvements?

      Cast of Characters

      Engineering Lead:
      Document Author:
      POCers:
      Product Owner:
      Program Manager:
      Stakeholders:

      Channels & Docs

      Slack Channel

      [Scope Document|some.url]

      Technical Design Document

            Assignee:
            Unassigned Unassigned
            Reporter:
            oleg.pudeyev@mongodb.com Oleg Pudeyev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: