I don't know the correct way to explain this type of word in English, but it's similar to the word 'specificity'. You can describe something as specific using this word. I'm looking for a similar way to use 'atomic'. My intended usage of 'atomic' here is to describe the nature of an operation in programming: To perform an operation atomically, means that this operation completes 100% without being interrupted. It means the operation is guaranteed to be complete.

When discussing the property of being atomic with my coworkers, I wish to use it somewhat like: "This gives you the guarantee of atomicity". I know that 'atomicity' isn't a word (at least according to Google), but I hope that gives you an idea of what I'm trying to do.

What is the correct way of using 'atomic' in this way? Or am I maybe going down the wrong path here?

  • 15
    There certainly is a word atomicity as shown by Mr G. But anyway telling your co-workers that an "atomic" operation guarantees "atomicity" is no explanation at all. – Weather Vane Oct 19 at 13:41
  • Are you sure that the concept of “atomic” is the best way to express the idea ? – user240918 Oct 19 at 13:52
  • 10
    @user240918 atomic is a technical term term used in the computer industry. – Weather Vane Oct 19 at 13:55
  • 3
    How can you say that Google doesn't thinks that "atomicity" is a word??? – Hot Licks Oct 19 at 22:25
  • 4
    The title of this question could be improved. My first thought (before reading the full question) was “atomically”. – Stephen Powell Oct 20 at 13:04
up vote 78 down vote accepted

Atomicity is a perfectly cromulent word. It is often used in the context of database transactions1,2,3 or thread safety4,5. For example, from 3 :

Atomicity takes individual operations and turns them into an all-or-nothing unit of work, succeeding if and only if all contained operations succeed.

  • 33
    +1 just for "perfectly cromulent". You is my kinda people. – Dan Bron Oct 19 at 14:15
  • 3
    Wow, I learned about a new meme today too. I got more than I bargained for! – void.pointer Oct 19 at 17:17
  • 11
    This is how words can embiggen your mind – Hagen von Eitzen Oct 21 at 9:40

Wikipedia recognizes separate meanings for programming and databases which may be why there is a bit of an argument about what it means.

But there is a more important point. People on this site may like "cromulence" and "atomicity" but your co-workers may not. If you have to ask here about the word and if we can't agree about its meaning and usage then you can be pretty certain it will not be clear to your intended readers. Say

This guarantees that the process will be atomic.

  • 16
    I worked in computer science for 45 years, and "atomicity" was always a legitimate term, and one that was readily comprehended. – Hot Licks Oct 19 at 22:27
  • I taught database design and programming for a large computer manufacturer, back in the day. "Atomicity" was a perfectly legitimate word. But, apart from whether people knew the word or not, there was confusion on the part of a lot of programmers as to why such a feature would be a good idea. You had to teach them what could go wrong if database transactions were not atomic. – Walter Mitty Oct 20 at 13:15
  • 1
    So you have to be very careful about the target audience. If they know and understand the word then use it, but if not you have to decide whether to use it and explain it or avoid the technical stuff altogether and say something like "guarantees that the process will work reliably without data loss." If you are trying to get funding to do a decent job and you tell the board it is for improved atomicity you are guaranteed not to get any money. If you mention critical data loss which they understand as "loss of business" or "risk of lawsuits" then the funding will appear while you blink. – David Robinson Oct 20 at 13:32
  • "guaranteed...without data loss " implies a great deal more than atomicity does. If "atomicity" is too obscure, use "atomic transactions", "indivisible transactions" or "uninterruptible transactions". Provided you are talking about transactions. – Walter Mitty Oct 20 at 15:41
  • 4
    Atomicity is the accepted jargon. Like many jargon words, they aren't considered real words outside of the application domain. If computer scientists only used the words that laypeople use, we wouldn't have words for quite a few things that we need to talk about daily. – Tim Seguine Oct 21 at 0:20

Atomicity is fine, but I think it's important to understand atomicity and atomic operations. They aren't guaranteed to succeed, they are simply guaranteed to not complete partially. They can (and do) still fail, but it is an all or nothing operation.

Atomic is used to describe an individual operation that is as small as it can possibly be - not made up of components itself. An example in programming would be to fetch the read/write status of a file. That operation is atomic. But you can still fail to fetch the status (I/O Exception). Or, you can succeed (this file is read-only, this one is read-write). You cannot, however, partially succeed (this file can be read, but we don't know if it can be written).

So, be sure to use "atomicity" correctly. If you use it to state that something is guaranteed to succeed, you will be setting incorrect expectations and incorrectly using the word.

  • 1
    I am not totally persuaded that OP, or his technical colleagues, or any one else, really, thinks there can be or is some characteristic or methodology that guarantees success. I think IT people understand atomicity the same way traders do IOC or FOK orders; I don't think there's any confusion on the matter. – Dan Bron Oct 19 at 14:23
  • 5
    I would hope not, but I've seen things... terrible things. I assume the OP, with the name void.pointer, probably knows a thing or two. But I'd hate for some tech sales guy to wander in here, see this post, think atomicity means guaranteed success, and use it in glossy slides. And yes, I've experienced this lol. – Jesse Williams Oct 19 at 14:26
  • 1
    Nitpicking, "as small as it canpossibly be" may not be the right notion either. E.g., in a high level language such as C, you cannot subdivide an instruction such as x = 42 and yet it may not be atomic (depending on the type of x). Even at CPU level, a single instruction such as INC mem is not necessarily atomic. Locking or other technical measures, sometimes special instruction variants (and in particular some that at first glance or by their very name - COMPAREANDSWAP - are not as small as they can possibly be, are put in place, and this gives you the guarantee of atomicity – Hagen von Eitzen Oct 21 at 9:56
  • @HagenvonEitzen - very good point! – Jesse Williams Oct 22 at 14:30

The phrase

This gives you the guarantee of atomicity

is perfectly valid, I have used it, or something very similar, on many occasions.

However, I've never heard "atomically" used like this in the U.K. tech industry.

Instead, I would say

To perform an atomic operation, means...

  • 3
    Myself and coworkers have definitely said things like "To perform an operation atomically ...". Both of your examples are good, though. – Matthew Read Oct 19 at 19:45
  • Maybe this is one of those subtle British vs American English differences @MatthewRead. – Mark Booth Oct 22 at 8:16

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.