Category Archives: 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!


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!


The ppt of our presentation is available here:


Leave a comment

Filed under events, People, research, talks

PG Open 2016 starts tomorrow!

And I will be there! I am just thinking – it’s amazing how many people who are going to attend I know, and even more amazing, that all these people belong to soooo different parts of my life, that I would never imagine them being at the same place at the same time. And yet – this will start tomorrow!

This being said… if for any reason you didn’t know until now that the PG Open starts tomorrow, and that I will be there, and if by any chance you are somewhere around Dallas… or not around but willing to travel… Just saying… I love surprises :))

PG Open 2016


Leave a comment

Filed under events, research, talks

Bi-temporal foreign keys support – reloaded

Since I’ve started my new job at the Braviant Holding, I could not find time to continue working on our bi-temporal project. And it was really sad, but to be honest I didn’t feel like I have a single brain cell left to do anything except work.

And I cant’ tell that my today’s life is less stressful than it was for the past four months, but I for some reason about a week ago I’ve resumed that work. It was very difficult to recover details of what I was doing  almost six months ago, and why I didn’t  finish some functions, and so on; especially because I’ve move to a new laptop in between, so all of the intermediate testing, “not worth saving in the git repo” was also gone…

Long story short – today I’ve completed the generator of the functions, which will be used validate bi-temporal foreign key constraints. Than was one of the most complicated pieces of code I’ve written for this project.  But although this is the most difficult part, it’s not the only thing which is necessary for full bi-temporal integrity constraint support. The good par is, that I know exactly what should be done!

Leave a comment

Filed under research, Systems

Our presentation

Once again, I was hoping to wait to any official or non-official pictures from our presentation… but I can’t 🙂

So I am posting our slides here.


Leave a comment

Filed under research, talks