apr

apr

ETS set table write concurrency option is not respected

I am noticing something strange on elixir 1.9.4 with erlang 22.2.

Erlang/OTP 22 [erts-10.6] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Interactive Elixir (1.9.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(app@127.0.0.1)1>  :ets.new(:test_table, [:set, :named_table, :public, {:write_concurrency, true}, {:read_concurrency, true}])  
:test_table
iex(app@127.0.0.1)2>  :ets.info(:test_table)
[
  id: #Reference<0.3021804751.1718747137.69759>,
  read_concurrency: true,
  write_concurrency: false,
  compressed: false,
  memory: 301,
  owner: #PID<0.2177.7>,
  heir: :none,
  name: :test_table,
  size: 0,
  node: :"app@127.0.0.1",
  named_table: true,
  type: :set,
  keypos: 1,
  protection: :public
]

It appears that the write_concurrency property is not being respected. Does anybody know if this is a regression?

Marked As Solved

garazdawi

garazdawi

Erlang Core Team

It is part of the OTP-16315 optimization where any locks around ETS tables are removed when using only 1 scheduler.

13
Post #4

Also Liked

garazdawi

garazdawi

Erlang Core Team

Well, technically the locks in the ETS table still use read_concurrency, there just aren’t any :wink:

It is just an oversight on my part that it is not removed. I’ll make a note of fixing that in a future release.

NobbZ

NobbZ

No, on systems where only one scheduler is started.

This is the default for single core machines, but you can also do that via runtime flags.

Where Next?

Popular in Questions Top

aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
New
tduccuong
Hi, is there any work on GUI with Elixir, that is similar to Electron/Javascript? My idea is to bundle Phoenix and BEAM into a single se...
New
LegitStack
I’m trying to make a websocket server in Phoenix or raw Elixir. I heard about gun, I think I could use cowboy, but since I’m not that sma...
New
JDanielMartinez
Hi! May someone helps me, please! I have two apps into an umbrella project: the first one is Database, which manages queries, and the se...
New
nsuchy
Hi. I’ve noticed that Windows Powershell has it’s own IEX command and you cannot access Elixir’s IEX due to the conflict. This isn’t a cr...
New
PeterCarter
There are pre-rolled solutions for other frameworks that do work. However, Phoenix does not seem to have these. Have people had good expe...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

Other popular topics Top

danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 29377 241
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
lessless
I believe there are people here who are dealing with CSV files import on the daily basis, and since Excel is a really popular tool there ...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 43622 214
New
dokuzbir
I want to highlight html closing tags when i click a html tag. That works in .html files but doesnt work for html.eex templates. How can...
New
alice
Hey, Just curious what are the main benefits of Elixir compared to Clojure? When is Elixir more useful than Clojure and vice versa? Th...
New
klo
Got a question about when to concat vs. prepending items to list then reversing to achieve appending. So i know lists boil down to [1 | ...
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
marick
I had some trouble figuring out how to make many-to-many associations work. Once I got it working, I wrote a blog post. Because I’m a nov...
New
sergio
Kind of like when jquery came out, it was super necessary. Existing drag and drop libraries have a bunch of baggage to support old browse...
New

We're in Beta

About us Mission Statement