Обсуждение: Is CREATE TABLE non-blocking ?

Поиск
Список
Период
Сортировка

Is CREATE TABLE non-blocking ?

От
Benjamin Dugast
Дата:
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 ?

От
hubert depesz lubaczewski
Дата:
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 ?

От
David G Johnston
Дата:
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 ?

От
Benjamin Dugast
Дата:
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 ?

От
Rob Sargent
Дата:
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 ?

От
Benjamin Dugast
Дата:
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?