Database January 8, 2026

"The Secret of the 'Like' Button: How to Handle Millions of Clicks Without Data Corruption"

📌 Summary

Explore optimistic concurrency control in database transactions. Learn how it ensures data integrity through concepts, operation, and practical examples. Apply expert insights to real-world system implementation.

Introduction: Even with Exploding Traffic, Data Must Not Get Tangled

In high-traffic situations like course registration or ticketing, the most common problem is 'inventory mismatch'. If there are 100 tickets but 105 people succeed in booking, it is a fatal bug that destroys business reliability. Traditionally, database locks were used to solve such concurrency issues, but they often become the main culprit for performance degradation. This post delves into the principles of Optimistic Locking, which maintains data integrity without locks, and provides an in-depth analysis of modern implementation strategies using JPA and Redis.

Server traffic surge situation and database processing structure
Locking strategy is a key factor determining system throughput. Photo by Christina Morillo on Pexels

Deepening Core Principles: Version Management and CAS Algorithm

The core of Optimistic Locking is not to lock under the assumption that "collisions will rarely happen." Instead, it verifies integrity at the time of data modification using a Version column.

Utilizing @Version in JPA

In Java's JPA (Hibernate), you can implement optimistic locking simply by adding the @Version annotation to an entity.
UPDATE table SET stock = stock - 1, version = version + 1 WHERE id = 1 AND version = 5
In the query above, if another transaction modified it first and the version changed to 6, the query fails (affected row = 0) and throws an OptimisticLockException. Developers only need to catch this exception and implement retry logic.

CAS (Compare-And-Swap) Algorithm

Optimistic locking shares the same principle as the hardware-level CAS algorithm. It enables lock-free concurrency control through the principle: "Update (Swap) only if the value I read (Expected) matches the current value in memory (Actual)."

2025 Trend: Optimistic Locking in Distributed Environments and NoSQL

As Microservices Architecture (MSA) becomes the standard in 2025, problems that cannot be solved by single DB locks alone have increased.

NoSQL databases like DynamoDB and Elasticsearch also support optimistic locking. DynamoDB's 'Conditional Write' feature and Elasticsearch's _seq_no and _primary_term fields have become standard patterns to prevent Lost Updates in distributed environments. Now, optimistic locking is not exclusive to RDBMS but a basic requirement for data integrity across distributed systems.

Database concurrency control algorithm code
Version management is the lightest way to detect data collisions. Photo by Luis Gomes on Pexels

Practical Application: 'Like' Counts and Inventory Deduction

When should you use optimistic locking in practice? The strategy depends on the collision frequency.

  • SNS Likes (Low Collision Frequency): Even if 1000 people click simultaneously, the final result just needs to be +1000. In this case, using Redis Atomic operations (INCR) is much more efficient than optimistic locking.
  • Ticket Booking (Very High Collision Frequency): Thousands compete for 1 remaining seat. Using optimistic locking here causes thousands of retries, spiking DB load. In this case, Pessimistic Lock (SELECT FOR UPDATE) or Redis Distributed Lock (Redisson) is the correct answer.
  • Product Editing in Shopping Malls (Medium Collision Frequency): If admins A and B edit a product description simultaneously, optimistic locking is most suitable. You can simply notify the person who saved later, "Someone edited it first," and ask them to reload.

Expert Insight

💡 Backend Engineer's Note

Tip for Tech Adoption: When introducing optimistic locking, you must design a 'Retry Policy' together. Decide whether to show an error to the user upon collision or automatically retry 3 times in the background. Utilizing libraries like Resilience4j allows for elegant retry logic implementation.

Future Outlook: In the future, rather than application-level lock implementation, 'Conflict-free Replicated Data Types (CRDTs)' technology provided by the database itself will gain attention. This technology allows mathematically automatic merging even if modifications occur simultaneously on physically separated nodes, which is the core of real-time collaboration tools like Google Docs.

Real-time collaboration tools and data synchronization technology
Technologies like CRDT enable conflict-free real-time collaboration. Photo by fauxels on Pexels

Conclusion: There is No Silver Bullet, Choose the Weapon That Fits the Situation

Optimistic locking is an excellent tool that dramatically increases throughput by eliminating database lock wait times. However, in environments with frequent collisions, it can be detrimental. Analyzing your service's traffic patterns and data sensitivity, and finding the optimal balance point between Optimistic, Pessimistic, and Distributed locks is a core competency of an engineer.

🏷️ Tags
#Database #Transaction #Concurrency Control #Optimistic Locking #Data Integrity
← Back to Database