Remix.run Logo
rogerrogerr 4 days ago

I’ve never really thought about this - how does Outlook handle this? Has anyone received a “sorry, that room you reserved actually wasn’t available; talk to this other dude who reserved it too” message after reserving a meeting room?

Or does it just double book the room? Or is there a global lock on any transaction affecting a meeting room, so only one goes through? (Feels like it doesn’t scale)

appreciatorBus 4 days ago | parent | next [-]

In Google Workspace, rooms are resources with calendars that can be configured to auto accept any invitation unless they’ve already booked. So it’s basically first come first serve. Even if two people are literally trying to book the room, at the same time, simultaneously, one request will go through first and will be accepted and the second will be declined. I imagine outlook is similar.

yccs27 4 days ago | parent [-]

In other words, Google sacrifices availability/latency here - they don't accept the request until they can be sure it's still available.

coldtea 3 days ago | parent [-]

They can accept the request (accept as in receive for processing).

They just can't send the acknowledgement of "succesfully booked" yet.

account42 3 days ago | parent | prev | next [-]

> Or is there a global lock on any transaction affecting a meeting room, so only one goes through? (Feels like it doesn’t scale)

Why wouldn't it scale? How many meetings are booked per second in your organization???

throwaway4226 3 days ago | parent | next [-]

I think the potential for abuse is high. With a locking system, someone could (and probably would) click (manually or with a script) on a time slot to "reserve" a room just in case they needed it.

jon-wood 3 days ago | parent | next [-]

These are physical meeting rooms within a company. The resolution to this sort of abuse doesn't need to be automated, first it's a person in the facilities team having a quiet chat with the person doing that and asking them not to, eventually it gets escalated through various managers until it's a very final chat with HR before being asked to leave the building and not come back.

coldtea 3 days ago | parent | prev [-]

And if they did it a lot, they're scolded or fired.

That's not a real problem - at least not in the "book a corporate meeting room" space.

kirici 3 days ago | parent | prev [-]

Clearly you fell for the premature measuring fallacy, everyone knows to optimize for web-scale first.

bmm6o 4 days ago | parent | prev | next [-]

Exchange server accepts or rejects meeting requests. There's no offline room reservation so it's pretty simple.

bootsmann 4 days ago | parent [-]

Presumably exchange server is not a single node?

immibis 3 days ago | parent [-]

Then it does whatever is needed to make it safe. For example, it might use a hash ring to assign each meeting room to a single node, and that node processes one request at a time. Most distributed systems are like this.

A traditional database funnels all your data changes down to one leader node which then accepts or rejects them, and (if A+C in the case of single node failure is desired) makes sure the data is replicated to follower nodes before accepting.

A distributed database is similar but different pieces of data can be on different leaders and different follower sets.

This comment was rate-limited.

Aurornis 3 days ago | parent | prev | next [-]

> I’ve never really thought about this - how does Outlook handle this?

Simple: It’s server based. These problems are trivial when the server is coordinating responses and the clients can only reserve a room if the server confirms it.

This is the problem that gets hand waved away with local first software that has multi user components: It doesn’t take long before two users do something locally that conflicts. Then what do you do? You have to either force a conflict resolution and get the users to resolve it, or you start doing things like discarding one of the changes so the other wins.

coldtea 3 days ago | parent | prev [-]

It doesn't scale universely, but it doesn't need to: it only needs to cover a specific company/organization/department. So it's trivial to work at that scale.

Hell, it's so feasible, it can even done manually IRL by some person (like discussions where a person holds the "talking stick" and only there are allowed to speak until they pass it to another person - that's a lock).