Closed Bug 1367050 Opened 7 years ago Closed 7 years ago

handle multiple pieces of data in a single field better

Categories

(Release Engineering Graveyard :: Applications: Balrog (backend), enhancement, P1)

enhancement

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 1367054

People

(Reporter: bhearsum, Unassigned)

References

Details

OS_VERSION and SYSTEM_CAPABILITIES are meant to handle multiple pieces of information in one field. OS_VERSION generally contains all of the OS or other non-Firefox software information that we care about for updates, while SYSTEM_CAPABILITIES holds hardware information.

Matching these can be tricky. We can do simple "foo && bar" matches now, but bug 1366917 is talking about adding RAM to SYSTEM_CAPABILITIES, which means we'd probably want to be able to do <, <=, >, and >= matches on that part of the field as well.

I think the best way to do this is to continue storing additional parts of these fields in their own database columns, and have the web layer of the public app unpack them before querying the database.

Another way to do this is to map multiple "fields" (as shown in the UI) to a single database column. Eg: the UI would show "processor level" and "memory" in the UI, but something in the web or (more likely) database layer would put them both in the systemCapabilities column, and unpack them upon retrieval. We'd have to figure out some way to deal with empty fields as well. Eg: if a Rule is only specifying "memory", we'd need a sentinel value or some other way to make sure we don't accidentally parse memory as process level. This method has the advantage of not requiring database migrations when we add new fields, but I think the added complexity of dealing with packing/unpacking when working with the database probably makes this a bad idea.
Blocks: 1367054
Priority: -- → P1
I ended up rolling this into bug 1367054 - it was too tough to do separately.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → DUPLICATE
Product: Release Engineering → Release Engineering Graveyard
You need to log in before you can comment on or make changes to this bug.