Thread: Is CREATE TABLE non-blocking ?

Is CREATE TABLE non-blocking ?

From
Benjamin Dugast
Date:
Hello,

We have an issue with tables creations in our application.

We think CREATE TABLE returns before the tables are created. Because this looks like a non-blocking operation, our inserts (in a callback) are actually happening before the tables are created.

We tried to use a Thread.sleep() just before the insert and it works but we can't stay with this.

What can we do to avoid this problem?

Re: Is CREATE TABLE non-blocking ?

From
hubert depesz lubaczewski
Date:
No, it's not.
What might happen, though, is that you call your callback before the transaction with create table got committed.

depesz


On Wed, Jul 23, 2014 at 12:33 PM, Benjamin Dugast <bdugast@excilys.com> wrote:
Hello,

We have an issue with tables creations in our application.

We think CREATE TABLE returns before the tables are created. Because this looks like a non-blocking operation, our inserts (in a callback) are actually happening before the tables are created.

We tried to use a Thread.sleep() just before the insert and it works but we can't stay with this.

What can we do to avoid this problem?

Re: Is CREATE TABLE non-blocking ?

From
David G Johnston
Date:
Benjamin Dugast wrote
> Hello,
> 
> We have an issue with tables creations in our application.
> 
> We think CREATE TABLE returns before the tables are created. Because this
> looks like a non-blocking operation, our inserts (in a callback) are
> actually happening before the tables are created.
> 
> We tried to use a Thread.sleep() just before the insert and it works but
> we
> can't stay with this.
> 
> What can we do to avoid this problem?

Nothing in the server is asynchronous (expect maybe notify/listen) but that
doesn't prevent you from interacting with the server in an asynchronous way
client-side.

Showing code usually helps people provide suggestions on how to avoid a
problem.

David J.





--
View this message in context:
http://postgresql.1045698.n5.nabble.com/Is-CREATE-TABLE-non-blocking-tp5812506p5812524.html
Sent from the PostgreSQL - sql mailing list archive at Nabble.com.



Re: Is CREATE TABLE non-blocking ?

From
Benjamin Dugast
Date:
We finally solved our problem,
Thanks for your help.


2014-07-23 15:43 GMT+02:00 hubert depesz lubaczewski <depesz@gmail.com>:
No, it's not.
What might happen, though, is that you call your callback before the transaction with create table got committed.

depesz


On Wed, Jul 23, 2014 at 12:33 PM, Benjamin Dugast <bdugast@excilys.com> wrote:
Hello,

We have an issue with tables creations in our application.

We think CREATE TABLE returns before the tables are created. Because this looks like a non-blocking operation, our inserts (in a callback) are actually happening before the tables are created.

We tried to use a Thread.sleep() just before the insert and it works but we can't stay with this.

What can we do to avoid this problem?


Re: Is CREATE TABLE non-blocking ?

From
Rob Sargent
Date:
On 07/23/2014 09:13 AM, Benjamin Dugast wrote:
We finally solved our problem,
Thanks for your help.


2014-07-23 15:43 GMT+02:00 hubert depesz lubaczewski <depesz@gmail.com>:
No, it's not.
What might happen, though, is that you call your callback before the transaction with create table got committed.

depesz


On Wed, Jul 23, 2014 at 12:33 PM, Benjamin Dugast <bdugast@excilys.com> wrote:
Hello,

We have an issue with tables creations in our application.

We think CREATE TABLE returns before the tables are created. Because this looks like a non-blocking operation, our inserts (in a callback) are actually happening before the tables are created.

We tried to use a Thread.sleep() just before the insert and it works but we can't stay with this.

What can we do to avoid this problem?


And the solutions was....


Re: Is CREATE TABLE non-blocking ?

From
Benjamin Dugast
Date:
So the solution was a simple problem in our program that send some INSERT requests before we actually CREATE our tables.

We didn't figured out this problem on our first test system because it was really fast.
On our second test environment that is much slower, the application shut down instantly because of the tables were not created.


2014-07-23 17:13 GMT+02:00 Benjamin Dugast <bdugast@excilys.com>:
We finally solved our problem,
Thanks for your help.


2014-07-23 15:43 GMT+02:00 hubert depesz lubaczewski <depesz@gmail.com>:

No, it's not.
What might happen, though, is that you call your callback before the transaction with create table got committed.

depesz


On Wed, Jul 23, 2014 at 12:33 PM, Benjamin Dugast <bdugast@excilys.com> wrote:
Hello,

We have an issue with tables creations in our application.

We think CREATE TABLE returns before the tables are created. Because this looks like a non-blocking operation, our inserts (in a callback) are actually happening before the tables are created.

We tried to use a Thread.sleep() just before the insert and it works but we can't stay with this.

What can we do to avoid this problem?