Category Archives: research

The second rejected paper

****Reposting because the previous version didn’t get  shared on LinkedIn****

Object-relational impedance mismatch is by far my favorite research topic, mostly due to the fact that it has a very practical implementation. I would make even stronger statement: the most rewarding optimization is the one when you can reduce the number of SQL statements executed when a web page is rendered and all of a sudden it is loaded 50 times faster (and I mean actually 50 times, not figuratively speaking!).  It always looks like a magic – and I haven’d done anything!

This been said, the ORMs are my worst enemies, and I am always looking for opportunities to promote the better ways of communication between a database and an applications. Most of the time the human factor appears to be more important than the technological challenges, so I always think about these projects as battles.

At Braviant however, first time in my professional career I had nobody to fight about this issue – the app developers were completely on board with my approach since day one. Which allowed us to develop something really cool, and to optimize the interaction between databases and application to the point of absolute perfection. SO, when my husband suggested we’d write a short paper about this project, I had no doubt it will be accepted – because two of my previous papers on the same subject were accepted to the very serious conferences.

Life proved me wrong :), I am not going to name the conference and the workshop, but I have to make some comments about the reviews, so that the level of my frustration can be understood.

One of the reviewers asked: why we think that the number of round trips defines the response time of the web application. Another reviewer asked, whether we tried to use Mongo DB :))). And why we think that (de) serialization of the JSON takes negligible time. And why we think Hibernate is worse.

I think the only valid objection was, that the topic of the paper is not relevant to the workshop topic.  And the latter might explain the whole story.

Several years ago, when I started to attend the database conferences again, after fifteen years of absence, I made an observation that a significant number of the attendees never saw the real applications, and never had deal with performance problems, Fortunately, I’ve also met and got to know some really outstanding researches, whom I admire and feel honored to be aquatinted with, so… I am sure I will find the right place to showcase our work.

And may be it’s time to get back to my old “HDAT” workshop idea,,,

And for my fellow Chicagoans: I will be presenting this work this Tuesday, Feb 13 at the Chicago PUG meetup!

Advertisements

Leave a comment

Filed under research

The second rejected paper: the ORIM again

Object-relational impedance mismatch is by far my favorite research topic, mostly due to the fact that it has a very practical implementation. I would make even stronger statement: the most rewarding optimization is the one when you can reduce the number of SQL statements executed when a web page is rendered and all of a sudden it is loaded 50 times faster (and I mean actually 50 times, not figuratively speaking!).  It always looks like a magic – and I haven’d done anything!

This been said, the ORMs are my worst enemies, and I am always looking for opportunities to promote the better ways of communication between a database and an applications. Most of the time the human factor appears to be more important than the technological challenges, so I always think about these projects as battles.

At Braviant however, first time in my professional career I had nobody to fight about this issue – the app developers were completely on board with my approach since day one. Which allowed us to develop something really cool, and to optimize the interaction between databases and application to the point of absolute perfection. SO, when my husband suggested we’d write a short paper about this project, I had no doubt it will be accepted – because two of my previous papers on the same subject were accepted to the very serious conferences.

Life proved me wrong :), I am not going to name the conference and the workshop, but I have to make some comments about the reviews, so that the level of my frustration can be understood.

One of the reviewers asked: why we think that the number of round trips defines the response time of the web application. Another reviewer asked, whether we tried to use Mongo DB :))). And why we think that (de) serialization of the JSON takes negligible time. And why we think Hibernate is worse.

I think the only valid objection was, that the topic of the paper is not relevant to the workshop topic.  And the latter might explain the whole story.

Several years ago, when I started to attend the database conferences again, after fifteen years of absence, I made an observation that a significant number of the attendees never saw the real applications, and never had deal with performance problems, Fortunately, I’ve also met and got to know some really outstanding researches, whom I admire and feel honored to be aquatinted with, so… I am sure I will find the right place to showcase our work.

And may be it’s time to get back to my old “HDAT” workshop idea,,,

And for my fellow Chicagoans: I will be presenting this work this Tuesday, Feb 13 at the Chicago PUG meetup!

8 Comments

Filed under research

Our bitemporal paper was rejected, and how I feel about it

Actually, this winter I had not one, but two papers rejected. And although I never dispute the rejections (it just means I failed to present my work adequately), I wanted to reflect on why both papers were rejected, and what I can do to make them accepted to other conferences.

With our bitemporal paper I was really upset that it didn’t make it to ICDE 2018, because I know that the work itself was magnitudes better than the work, which was accepted for ICDE 2016. Which leaves me with two options: either the topic was not relevant for the Industrial track, or we didn’t present our work well enough, so that it’s novelty would be visible.

I think its’ more that we didn’t explain ourselves well enough. I was trying not to dedicate 1/3 of the paper to  explaining the theory which lays underneath our implementation, and now I think it was a mistake. I didn’t elaborate on the fact, that our second dimension is asserted time, not system time, and what is a semantical difference. So when our our reviewers are saying – “everybody have bitemporal time” – yes, that’s correct, but our two-dimensional time  is different!

I know that the “asserted time” concept is not that easy to grasp when you read about it for the first time, and we didn’t provide any formal definitions. Nor did we provide any formal definitions for the bitemporal operations. It does not matter, that we’ve followed the asserted versioning framework bible… We should have give the formal definitions, and we should have highlighted, that it’s not “bitemporal implementation for Postgres”, but that “we use Postgres to implement the asserted versioning framework, because Postgres has some cool features, which makes it easier”.

Oh, well. There is always a next conference :). Also, I think we should separate this paper into smaller pieces – this one was an attempt to summarize three years of development.

Something to work on! And also – to continue development of the bitemporal library itself.

Leave a comment

Filed under research

From theory to practice

For the past several months I am implementing the bitemporal framework on the real life objects, not on the lab mice :). And this process was quite a revelation!

I’ve written the functions for bitemporal basic operations almost two years ago, and talked about them on several conferences and workshops. I could not imagine something can go wrong with them – and yet it did. And that’s exactly what happens when all your test cases are cloned lab mice!

One of the first errors I’ve got was an empty assertion interval, and that’s when I’ve realized than we never discussed the relations between transactions and bitemporal operations. Well, a transaction is a transaction, isn’t it? Nobody is supposed to see what’s inside, until transaction is finished – committed or rolled back. So… if there are several modifications (say INSERT, UPDATE and CORRECT for the same logical record) within one transaction… what we are supposed to see when transaction is committed? Just an INSERT, if the first operation was INSERT? But this “won’t be true”!

Yes, but on the other hand, imagine what will happen if we would record the “interim” state, and then later we would like to run a query “as asserted” at some time in the past, and at that exact moment some transactions will be in the uncommitted state? Then we will get results which will be in the inconsistent  status. As of now I didn’t come up with how I want these situations to be handled. I am almost convinced that I want to give a user an option: if you want to be “anti-transactional”, you can :)). But then you’ll need to accept the consequences.

Another set of problems is rather philosophical: do we believe in reincarnation? 🙂 More precisely, if an object is “bitemporally deleted”, and then a new object with the same business key value is created, is this “the same object” or a “new object”? Both ways can be supported, but I think that by default we should assume a “formal approach”, and say the this is “the same” object. And if the real world (i.e. business rules) is such, that the new object is a different object… well, that means, that something else should be included into the business key. For example, if the SSN is reused, then we need an extra piece of information, like person’d data of birth.

Related questions: can we update a deleted (inactive) record? What are the differences between UPDATE and CORRECTION if the date ranges are “equal”?  I can only imagine how many issues like this are just waiting to be discovered!

Leave a comment

Filed under Data management, Development and testing, research, SQL

ICDE 2017 – Day 3

This will be again more a note to myself to write in more details about what I’ve learned at ICDE 2017.

I didn’t stay the whole Day 3, but I made sure to pay for the TSA pre-check and use the fact that the conference venue was so close to the airport.  The main events of Day 3 were:

  • The keynote by Pavel Pevzner about the “New revolution” in online education.  I can’t say I liked it, because I disagree with a lot of what was said, but I it was something which would make you think
  • The Industry 2 session, which was to be honest less interesting than Industry 1, although quite educational.  The last presentation made me think again that the way we use the FDW for populating our Data Mart is something not convetional, and probably should   be publicized more.

During the conference people were asking me what y company is doing, and I’ve realized that our data modeling and predictive analytics (which I do not know much about) were of the most interest. Also, I am always saying the “we do not have any big data”, but now, seen what other people consider being “big data” I am starting to think that may be we have :).

Overall I am very excited about what I’ve learned, about the people I’ve met, adn I want to reinvent my life again, and to do all those great things…. and to submit a paper to ICDE 2018, of cause :).

Leave a comment

Filed under events, People, research

ICDE 2017 in San Diego – Day 1

I am in San Diego now, attending  ICDE 2017. As always, I will write in more details about most interesting presentations later, but for now I just wanted to say, that both Demo and Industry sessions I’ve attended yesterday, were really great.

Here is the link for Demo 1 and here is the link for the Industry 1 session.  I can’t even say which one I liked more – they were all incredibly interesting. Karthik, I know you will be reading this post today:), so here is for you. I’ve told you earlier that I like a lot how this paper was written: very clear description of the problem and your solution, making it interesting even for those who hear about it for the first time. Now I wanted to tell you, that the presentation was also great: very clear and articulate, not trying to squeeze in more information that can fit into 15 minutes, but at the same time highlighting all important points. Just perfect! (Although I am still upset you are not here :)). So here is a picture for you to be jealous – that’s where we have lunches!

2 Comments

Filed under events, research

Our bitemporal presentation at PG Open 2016

Our talk was the first talk of the third day of conference, and it went really well. By now I’ve presented bitemporal concepts at least ten times for different audiences, and I would say that this presentation was one of the best  – in terms of the interest expressed by the listeners, the questions we’ve got and overall enthusiasm this talk had generated:). Seriously, I didn’t expect that many people actually have read Snodgras works; didn’t quite expect such thoughtful questions about implementation details and performance. And it felt so good when people would approach me later in the day not just saying “great presentation” but really wanting to talk in details about our work.

The best work to describe my feelings would be – empowered!

20160915_090854

The ppt of our presentation is available here:

bi_temporal_pg_open_2016

Leave a comment

Filed under events, People, research, talks